¿Cómo consultar campos de bases de datos usando sentencias SQL?
Una consulta Transact-SQL simple solo incluye una lista de selección, una cláusula FROM y una cláusula WHERE. Describen respectivamente las columnas de la consulta, la tabla o vista de la consulta y las condiciones de búsqueda.
Por ejemplo, la siguiente declaración consulta el campo de apodo y el campo de correo electrónico llamados "Zhang San" en la tabla de prueba.
Seleccione apodo, correo electrónico
De la tabla de prueba
donde nombre = 'Zhang San'
(1) Seleccionar lista
p>
Select_list representa la columna de consulta, que puede ser una lista de nombres de columna, asteriscos, expresiones, variables (incluidas variables locales y variables globales), etc.
1. Seleccionar todas las columnas
Por ejemplo, la siguiente declaración muestra los datos de todas las columnas en la tabla de prueba:
Seleccionar *
De la tabla de prueba
2. Seleccione algunas columnas y especifique su orden de visualización.
Los datos del conjunto de resultados de la consulta se organizan en el orden de los nombres de las columnas especificadas en la lista de selección.
Ejemplo:
Seleccione Apodo, Correo electrónico
De la tabla de prueba
3. Cambie los encabezados de las columnas
En. En la lista de selección, puede reasignar encabezados de columna. El formato de definición es:
Título de columna = nombre de columna
Nombre de columna Título de columna
Si el título de columna especificado no está en el formato de identificador estándar, debería estar separados por el símbolo de comillas. Por ejemplo, la siguiente declaración muestra los encabezados de las columnas en caracteres chinos:
Seleccione Apodo = Apodo, Correo = Correo.
De la tabla de prueba
4. Eliminar filas duplicadas
Utilice la opción ALL o DISTINCT en la instrucción SELECT para mostrar todas las filas calificadas en la tabla o eliminarlas. Filas de datos duplicadas. El valor predeterminado es todo. Cuando se utiliza la opción DISTINCT, solo se retiene una fila en el conjunto de resultados devuelto por SELECT para todas las filas de datos duplicados.
5. Limite el número de filas devueltas
Utilice la opción TOP n [PERCENT] para limitar la cantidad de filas de datos devueltas, donde TOP n significa devolver n filas, cuando TOP n PERCENT significa n Cuando es 100, especifica que el número de filas devueltas es igual al porcentaje del número total de filas.
Por ejemplo:
Seleccione los 2 primeros de la tabla de pruebaSeleccione los 20 primeros de la tabla de prueba
(2) Cláusula FROM
La cláusula FROM especifica la consulta de la instrucción SELECT y las tablas o vistas relacionadas con la consulta. En la cláusula FROM, puede especificar hasta 256 tablas o vistas, separadas por comas.
Cuando se especifican varias tablas o vistas en la cláusula FROM al mismo tiempo, si hay las mismas columnas en la lista de selección, las tablas o vistas a las que pertenecen estas columnas deben calificarse por el nombre del objeto. . Por ejemplo, tanto la tabla de usuario como la tabla de ciudad tienen columnas cityid. Al consultar cityid en dos tablas, se debe utilizar el siguiente formato de declaración para las restricciones:
Seleccione el nombre de usuario citytable.cityid
De la tabla de usuarios, tabla de ciudades
donde tabla de usuario . id de ciudad = tabla de ciudad id de ciudad
Puede especificar un alias para una tabla o vista en la cláusula FROM usando los siguientes dos formatos:
Nombre de la tabla como alias
p> p>Alias de nombre de tabla
(2) Cláusula FROM
La cláusula FROM especifica la consulta de instrucción SELECT y las tablas o vistas relacionadas con la consulta. En la cláusula FROM, puede especificar hasta 256 tablas o vistas, separadas por comas.
Cuando se especifican varias tablas o vistas en la cláusula FROM al mismo tiempo, si hay las mismas columnas en la lista de selección, las tablas o vistas a las que pertenecen estas columnas deben calificarse por el nombre del objeto. .
Por ejemplo, tanto la tabla de usuario como la tabla de ciudad tienen columnas cityid. Al consultar cityid en dos tablas, se debe utilizar el siguiente formato de declaración para las restricciones:
Seleccione el nombre de usuario citytable.cityid
De la tabla de usuarios, tabla de ciudades
donde tabla de usuario . id de ciudad = tabla de ciudad id de ciudad
Puede especificar un alias para una tabla o vista en la cláusula FROM usando los siguientes dos formatos:
Nombre de la tabla como alias
p> p>Alias de nombre de tabla
Por ejemplo, la declaración anterior se puede expresar en el formato de alias de tabla de la siguiente manera:
Seleccione el nombre de usuario b.cityid p>
Desde la tabla de usuario a, tabla de ciudad b
donde a.cityid=b.cityid
SELECT no solo puede recuperar datos de tablas o vistas, sino también consultar datos de conjuntos de resultados devueltos por otras declaraciones de consulta.
Por ejemplo:
Seleccione a.au_fname a.au_lname
Del autor a, título del libro autor ta
(SELECT title_id, título
Desde título
donde ytd_sales gt10000
) como t
donde a.au_id=ta.au_id
Y ta.title_id=t.title_id
En este ejemplo, al conjunto de resultados devuelto por SELECT se le asigna un alias T, y luego se recuperan los datos de él.
(C) Utilice la cláusula WHERE para establecer condiciones de consulta.
La cláusula WHERE establece condiciones de consulta y filtra filas de datos innecesarias. Por ejemplo, la siguiente declaración consulta datos de hace 20 años:
Seleccione *
De la tabla de usuarios
donde la edad es gt20
Cláusula WHERE Puede incluir varios operadores condicionales:
Operadores de comparación (comparación de tamaños): >, >=, =, lt, lt=, lt gt, ! operador (si el valor de la expresión está dentro del rango especificado): entre... y...
No entre... y...
Operador de lista (determina si el valor de la expresión está dentro del rango especificado): entre... y...
No entre... y...
Operador de lista (determina si el expresión es elemento especificado en la lista): en (elemento 1, elemento 2...)
No en (elemento 1, elemento 2...)
Cotejador de patrones (determina si el valor coincide con el formato comodín de caracteres especificado): COMO, NO COMO.
Discriminador nulo (para determinar si la expresión está vacía): ES NULO, NO ES NULO.
Operadores lógicos (para conexiones lógicas de múltiples condiciones): NOT, AND, o
1, ejemplo de operador de alcance: la edad entre EN 10 y 30 equivale a edad > =10; y agelt=30
2 Ejemplos de operadores de lista: países (Alemania, China)
3 Ejemplos de comparadores de patrones: se utilizan a menudo para búsquedas difusas, para juzgar si el valor coincide. el formato de cadena especificado. Se puede utilizar para consultas char, varchar, text, ntext, datetime y smalldatetime.
Se pueden utilizar los siguientes caracteres comodín:
Signo de porcentaje: puede coincidir con cualquier tipo y longitud de caracteres. Si es chino, utilice el símbolo del dos por ciento.
Subrayado _: coincide con un único carácter arbitrario, normalmente utilizado para limitar la longitud de los caracteres de las expresiones.
Corchetes []: especifique un carácter, cadena o rango, y el objeto coincidente debe ser cualquiera de ellos. []: Su valor es el mismo que [], pero requiere que el objeto coincidente sea cualquier carácter distinto del especificado.
Por ejemplo:
Si la restricción termina con la publicación, use LIKE "Publicación"
La restricción comienza con:, como "[A]"
Restricciones que comienzan con a: como "[a]"
4. Ejemplo de juicio de valor nulo cuando la edad está vacía
5. no, y, o.
(4) Ordenación de los resultados de la consulta
Utilice la cláusula ORDER BY para ordenar los resultados devueltos por la consulta por una o más columnas. El formato de sintaxis de la cláusula ORDER BY es:
ORDER BY { nombre_columna[ASC|desc]}[,...n]
donde ASC representa el orden ascendente y es el valor predeterminado valor, DESC Representa orden descendente. ORDER BY no puede ordenar por tipos de datos ntext, texto e imagen.
Por ejemplo:
Seleccione *
De la tabla de usuarios
Ordenar descripción por edad, ID de usuario ASC
Además, puedes ordenar por expresión.
Texto] Para comprar una computadora llama al 800-858-0410 El precio más bajo del país Hay descuentos en la página anterior, 1 2 3.
2. Consulta de unión
El operador UNION puede combinar los conjuntos de resultados de la consulta de dos o más declaraciones SELECT en un conjunto de resultados para su visualización, es decir, realizar una consulta conjunta. El formato de sintaxis de UNION es:
select_statement
UNION[ALL]sentencia de selección
[UNION[ALL]sentencia de selección][…n] p >
Donde SELECTstatement es la declaración de consulta de selección que se combinará.
La opción TODO significa que todas las filas se fusionan en el conjunto de resultados. Si no se especifica, solo se conservará una fila para las filas duplicadas en el conjunto de resultados de la consulta combinado.
En una consulta conjunta, los encabezados de las columnas de los resultados de la consulta son los encabezados de las columnas de la primera declaración de la consulta. Por lo tanto, para definir encabezados de columna, se deben definir en la primera declaración de consulta. Al ordenar los resultados de una consulta de unión, también debe utilizar nombres de columna, encabezados de columna o números de columna en la primera declaración de consulta.
Cuando utilice el operador UNION, debe asegurarse de que haya el mismo número de expresiones en la lista de selección de cada declaración de consulta de unión, y cada expresión de selección de consulta debe tener el mismo tipo de datos o puede ser automáticamente convertido al mismo tipo de datos. Durante el proceso de conversión automática, para tipos numéricos, el sistema convierte tipos de datos de baja precisión en tipos de datos de alta precisión.
En una declaración UNION que contiene múltiples consultas, el orden de ejecución es de izquierda a derecha y se pueden usar paréntesis para cambiar el orden de ejecución. Por ejemplo:
Consulta 1 Unión (Consulta 2 Unión Consulta 3)
3. Consulta de unión
Se pueden realizar varias consultas de tabla a través del operador de unión. Las conexiones son la característica principal del modelo de base de datos relacional y lo que lo distingue de otros tipos de sistemas de gestión de bases de datos.
En un sistema de gestión de bases de datos relacionales, no es necesario determinar la relación entre los datos al establecer una tabla. Toda la información sobre una entidad suele almacenarse en una sola tabla. Al recuperar datos, puede encontrar información sobre diferentes entidades almacenadas en varias tablas mediante operaciones de unión. Las operaciones de unión brindan a los usuarios una gran flexibilidad; pueden agregar nuevos tipos de datos en cualquier momento. Cree nuevas tablas para diferentes entidades y consúltelas mediante combinaciones.
Se puede establecer una unión en la cláusula FROM o en la cláusula WHERE de una instrucción SELECT. Cuando se indica en la cláusula FROM, es útil distinguir la operación de unión de las condiciones de búsqueda en la cláusula WHERE. Por lo tanto, se recomienda utilizar este método en Transact-SQL.
El formato de sintaxis de conexión de la cláusula FROM definida por el estándar SQL-92 es:
Desde la tabla de conexiones tipo de conexión tabla de conexiones
[Abrir (condición de conexión) )]
Join_table representa el nombre de la tabla que participa en la operación de unión. La unión puede operar en la misma tabla o en varias tablas. Las uniones que operan en la misma tabla también se denominan autouniones.
Join_type indica el tipo de conexión, que se puede dividir en tres tipos: conexión interna, conexión externa y conexión cruzada. Las uniones internas utilizan operadores de comparación para comparar ciertas columnas de datos entre tablas y enumerar las filas de datos en aquellas tablas que cumplen con los criterios de unión. Dependiendo del método de comparación utilizado, las conexiones internas se pueden dividir en conexiones iguales, conexiones naturales y conexiones desiguales. Las uniones externas se pueden dividir en uniones externas izquierdas (uniones externas izquierdas o uniones izquierdas), uniones derechas (uniones externas derechas o uniones derechas) y uniones externas completas (uniones externas completas o uniones completas). A diferencia de las uniones internas, las uniones externas no solo enumeran las filas que cumplen las condiciones de unión, sino que también enumeran las filas que cumplen las condiciones de búsqueda en la tabla izquierda (unión externa izquierda), la tabla derecha (unión derecha) o ambas tablas (unión externa completa). unirse) todas las filas de datos.
La unión cruzada no tiene una cláusula WHERE, devuelve el producto cartesiano de todas las filas de datos de la tabla unida. El número de filas de datos en el conjunto de resultados es igual al número de filas de datos de la primera tabla multiplicado por el número de filas de datos de la segunda tabla que cumplen las condiciones de la consulta.
La cláusula ON (join_condition) en la operación de unión representa la condición de unión, que consta de columnas en la tabla de unión, operadores de comparación y operadores lógicos.
Las columnas de tipo de datos text, ntext e image no se pueden conectar directamente a través de ningún tipo de conexión, pero se pueden conectar indirectamente. Por ejemplo:
SELECT p1.pub_id, p2.pub_id, p1.pr_info
DESDE pub_info AS p 1 INNER JOIN pub_info AS p2
Acerca de la longitud de los datos ( p 1 . pr _ info) = longitud de datos (p2.pr_info)
(1) Conexión interna
La operación de consulta de unión interna enumera las filas de datos que cumplen con las condiciones de unión, y utilice operadores de comparación para comparar los valores de las columnas unidas. Hay tres tipos de combinaciones internas:
1. equijoin: utilice el operador de signo igual (=) en la condición de combinación para comparar los valores de las columnas unidas. Los resultados de la consulta enumeran todas las columnas. la tabla unida, incluidos los duplicados.
2. Unión desigual: bajo la condición de unión, los valores de las columnas unidas se comparan con otros operadores de comparación excepto el operador de signo igual. Estos operadores incluyen >, >=, lt=, lt, ! gt, ! lt y
3. Unión natural: en la condición de unión, el operador de signo igual (=) se utiliza para comparar las columnas de unión. valores de columna, pero utiliza una lista de selección para indicar qué columnas se incluyen en el conjunto de resultados de la consulta y elimina columnas duplicadas en la tabla de combinación.
Por ejemplo, equijoin se utiliza para enumerar autores y editores en la misma ciudad en las tablas de autores y editores:
Seleccione *
Unir publicaciones de autores como Cociente interno como p
en a.city=p.city
Otro ejemplo es usar uniones naturales para eliminar columnas duplicadas (ciudad y estado) en las tablas de autores y editores en el lista de selección:
SELECCIONE a.*, p.pub_id, p.pub_name, p.country
DEL AUTOR COMO INTERNO ÚNASE AL EDITOR COMO p
EN a .city =p.city
(2) Conexión externa
Conexión interna, solo se devuelven las filas que cumplen con las condiciones de consulta (DONDE condiciones de búsqueda o HAVING condiciones) y las condiciones de conexión en el conjunto de resultados de la consulta.
Cuando se utiliza una combinación externa, no solo devuelve las filas que cumplen las condiciones de la combinación, sino que también devuelve la tabla izquierda (cuando la combinación externa es la izquierda), la tabla derecha (cuando la combinación derecha es la derecha) o la combinación de dos bordes. tablas (cuando la combinación externa son todas las filas de datos). Utilice el enlace externo de la izquierda para conectar el contenido del foro y la información del autor, como se muestra a continuación:
Seleccione a.*, b.* como b en la tabla de unirse a usuarios de la izquierda
En nombre de usuario = en nombre de usuario
Usemos una combinación externa completa para unir a todos los autores en la tabla de ciudades y a todos los autores en la tabla de usuarios, y sus ciudades:
Seleccione a.*, b. *
De la ciudad como usuario de unión externa completa a la ciudad como b
en nombre de usuario=nombre de usuario
(3) Unión cruzada
Cruzada las uniones no tienen una cláusula WHERE. Devuelve el producto cartesiano de todas las filas de datos de las dos tablas unidas. El número de filas de datos devueltas al conjunto de resultados es igual al número de filas de datos de la primera tabla que cumplen las condiciones de la consulta multiplicado por el número de filas de datos de la segunda tabla que cumplen las condiciones de la consulta. Por ejemplo, hay 6 tipos de libros en la tabla de títulos y 8 editoriales en la tabla de editoriales, por lo que la cantidad de registros recuperados mediante la siguiente combinación cruzada será igual.
En 6*8=48 líneas.
Seleccionar tipo, nombre de publicación
Conectar editor desde título
Ordenar por tipo