Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuáles son las declaraciones comúnmente utilizadas en SQL Server? Según función

¿Cuáles son las declaraciones comúnmente utilizadas en SQL Server? Según función

Categoría: Computadora/Red >> Programación >> Otros lenguajes de programación

Descripción del problema:

Funciones y declaraciones

Aquellos son todos?

Análisis:

1. Consulta simple

Una consulta Transact-SQL simple solo incluye una lista de selección, una cláusula FROM y una cláusula WHERE. Describen respectivamente la columna consultada, la

tabla o vista consultada y las condiciones de búsqueda. Por ejemplo, la siguiente declaración consulta el campo de apodo y el campo de correo electrónico denominados "Zhang San" en la tabla de prueba.

SELECCIONE apodo, correo electrónico

DESDE la tabla de pruebas

DONDE nombre = 'Zhang San'

(1) Lista de selección

La lista de selección (select_list) indica la columna consultada, que puede ser un conjunto de listas de nombres de columnas, asteriscos, expresiones, variables (incluidas variables locales y variables globales), etc.

1. Seleccione todas las columnas

Por ejemplo, la siguiente declaración muestra los datos de todas las columnas en la tabla testtable:

SELECT *

FROM testtable

2. Seleccione algunas columnas y especifique su orden de visualización. El orden de los datos en los resultados de la consulta*** es el mismo que el orden de los nombres de las columnas especificados en la lista de selección.

Por ejemplo:

SELECCIONE apodo, correo electrónico

FROM testtable

3. Cambie el título de la columna

Después de seleccionar En la lista, se pueden reasignar los encabezados de las columnas. El formato de la definición es:

Título de la columna = nombre de la columna

Nombre de la columna Título de la columna Si el título de la columna especificada no está en un formato de identificador estándar, se deben utilizar comillas como delimitadores, por ejemplo. Por ejemplo, la siguiente declaración utiliza caracteres chinos para mostrar los títulos de las columnas:

SELECT apodo=apodo, correo electrónico=correo electrónico

FROM testtable

4. Eliminar filas duplicadas

Utilice la opción ALL o DISTINCT en la instrucción SELECT para mostrar todas las filas que cumplan las condiciones en la tabla o eliminar filas de datos duplicadas. El valor predeterminado

es ALL. Cuando se utiliza la opción DISTINCT, solo se retiene una fila en el resultado *** devuelto por SELECT para todas las filas de datos duplicadas.

5. Limite el número de filas devueltas

Utilice la opción TOP n [PERCENT] para limitar el número de filas de datos devueltas TOP n significa que se devuelven n filas y TOP n. PERCENT significa n Sí

Representa un porcentaje, especificando el número de filas devueltas igual a qué porcentaje del número total de filas.

Por ejemplo:

SELECCIONE LOS 2 PRINCIPALES *

DE la tabla de pruebas

SELECCIONE EL 20 POR CIENTO SUPERIOR *

DE testtable

(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. Se pueden especificar hasta 256 tablas o vistas en la cláusula FROM, separadas por comas. Cuando la cláusula FROM especifica varias tablas o vistas al mismo tiempo, si hay columnas con el mismo nombre en la lista de selección, los nombres de los objetos deben usarse para calificar las tablas o vistas a las que pertenecen estas columnas.

Por ejemplo, si la columna cityid existe en las tablas usertable y citytable, al consultar el cityid en las dos tablas, debe

usar el siguiente formato de declaración para calificarlo:

SELECCIONE nombre de usuario,citytable.cityid

FROM usertable,citytable

DONDE usertable.cityid=citytable.cityid

Puede especificar un alias para una tabla o vista en la cláusula FROM en los dos formatos siguientes:

Nombre de la tabla como alias

Alias ​​del nombre de la tabla

(2) Cláusula FROM

La La cláusula FROM especifica la consulta de la instrucción SELECT y la consulta Tablas o vistas relacionadas. Se pueden especificar hasta 256 tablas o vistas en la cláusula FROM, separadas por comas. Cuando la cláusula FROM especifica varias tablas o vistas al mismo tiempo, si hay columnas con el mismo nombre en la lista de selección, los nombres de los objetos deben usarse para calificar las tablas o vistas a las que pertenecen estas columnas.

Por ejemplo, si la columna cityid existe en las tablas usertable y citytable, se debe utilizar el siguiente formato de declaración para calificar la consulta cityid en las dos tablas:

SELECT nombre de usuario,citytable.cityid

FROM usertable,citytable

WHERE usertable.cityid=citytable.cityid

Puede especificar un alias para una tabla o vista en la cláusula FROM en los dos formatos siguientes:

Nombre de la tabla como alias

Alias ​​del nombre de la tabla

Por ejemplo, la declaración anterior se puede expresar en el formato de alias de la tabla como:

SELECT nombre de usuario,b.cityid

FROM usertable a,citytable b

WHERE a.cityid=b.cityid

SELECT no solo puede recuperar datos de tablas o vistas, también puede recuperar datos de otras declaraciones de consulta en Result***.

Por ejemplo:

SELECCIONE a.au_fname+a.au_lname

FROM autores a,titleauthor ta

(SELECT title_id,title

DESDE títulos

DONDE ytd_sales>10000

) COMO t

DONDE a.au_id=ta.au_id

AND ta.title_id=t.title_id

En este ejemplo, al resultado *** devuelto por SELECT se le asigna un alias t, y luego los datos se recuperan de él.

(3) 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 cuya edad es mayor que 20:

SELECT *

FROM usertable

WHERE edad>20

La cláusula WHERE puede incluir varios operadores condicionales:

Operadores de comparación (comparación de tamaños): >, >=, =, <, <=, <>, !>, !<

Operador de rango (si el valor de la expresión está dentro del rango especificado): ENTRE…Y…

NO ENTRE…Y…

Operador de lista (determina si la expresión es un elemento específico en la lista): IN (elemento 1, elemento 2...)

NO EN (elemento 1, elemento 2...)

Comparador de patrones (determina si el valor tiene comodines con el carácter especificado El formato coincide): COMO, NO COMO

Juez de valor nulo (para juzgar si la expresión está vacía): ES NULO, NO ES NULO

Operador lógico (para Conexión lógica multicondición): NOT, AND, OR

1. Ejemplo de operador de rango: edad ENTRE 10 Y 30 es equivalente a edad>=10 Y edad<=30

2 Operación de lista Ejemplo de símbolo: país IN ('Alemania','China')

3. Ejemplo de símbolo de coincidencia de patrón: se utiliza a menudo para búsquedas difusas y determina si el valor de la columna coincide con el formato de cadena especificado. Se puede utilizar para consultas de tipos char,

varchar, text, ntext, datetime y *** alldatetime.

Se pueden utilizar los siguientes caracteres comodín:

Signo de porcentaje %: puede coincidir con caracteres de cualquier tipo y longitud. Si es chino, utilice dos signos de porcentaje, concretamente %%.

Guión bajo_: coincide con un único carácter arbitrario, que a menudo se usa para limitar la longitud de los caracteres de las expresiones.

Corchetes []: Especifica un carácter, cadena o rango, requiriendo que el objeto coincidente sea 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 Publicación, use LIKE '%Publishing'

Si la restricción comienza con A: LIKE '[A]% '

Excepto las restricciones que comienzan con A: LIKE '[^A]%'

4. Ejemplos de símbolos de juicio de valor nulo DONDE la edad ES NULL

5 Operadores lógicos: prioridad Para NOT, AND, OR

(4) Ordenar 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 {column_name [ASC|DESC]} [,...n]

Entre ellos, ASC significa orden ascendente, que es el valor predeterminado y DESC significa orden descendente. ORDER BY no puede ordenar por tipos de datos ntext, text e image

.

Por ejemplo:

SELECCIONAR *

FROM tabla de usuarios

ORDENAR POR edad desc,id de usuario ASC

En Además, se puede ordenar según la expresión.

2. Consulta de unión

El operador UNION puede combinar los resultados de la consulta de dos o más declaraciones SELECT en un resultado para mostrar, es decir, realizar una unión

Consulta combinada.

El formato de sintaxis de UNION es:

select_statement

UNION [ALL] selectstatement

[UNION [ALL] selectstatement][…n]

Entre ellos, selectstatement es la declaración de consulta SELECT que se combinará.

La opción TODO significa fusionar todas las filas en el resultado ***. Cuando no se especifica este elemento, solo se conservará una fila de filas duplicadas en los resultados combinados de la consulta ***. 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, los encabezados de las columnas deben definirse en la primera declaración de consulta. Al ordenar los resultados de una consulta conjunta, también se debe utilizar el nombre de la columna, el título de la columna o el número de la columna en la primera declaración de la consulta. Al utilizar el operador UNION, debe asegurarse de que haya la misma cantidad de expresiones en la lista de selección de cada declaración de consulta de unión, y que cada expresión de selección de consulta debe tener el mismo tipo de datos, o se pueden convertir automáticamente a los mismos datos. tipo. Durante la 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 incluye varias consultas, el orden de ejecución es de izquierda a derecha. Utilice paréntesis para cambiar el orden de ejecución. Por ejemplo:

Consulta 1 UNION (Consulta 2 UNION Consulta 3)

3. Consulta de conexión Se pueden implementar múltiples consultas de tablas a través de operadores de conexió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 cada dato cuando se crea la tabla. Toda la información de una entidad a menudo se almacena en una tabla. Al recuperar datos, la información sobre diferentes entidades almacenadas en varias tablas se consulta mediante operaciones de unión. La operación de unión brinda una gran flexibilidad a los usuarios, quienes pueden agregar nuevos tipos de datos en cualquier momento. Cree nuevas tablas para diferentes entidades y luego consúltelas mediante combinaciones

.

La conexión se puede establecer en la cláusula FROM o en la cláusula WHERE de la instrucción SELECT. Es útil especificar la conexión en la cláusula FROM

Contraste la operación de conexión con la. Cláusula WHERE. Criterios de búsqueda. Por lo tanto, se recomienda este método en Transact-SQL.

El formato de sintaxis de unión de la cláusula FROM definida por el estándar SQL-92 es:

FROM join_table join_type join_table

[ON (join_condition)]

Entre ellos, join_table indica el nombre de la tabla que participa en la operación de conexión. La conexión puede operar en la misma tabla o en varias tablas. La conexión en la misma tabla

también se denomina. autounirse.

join_type indica el tipo de conexión, que se puede dividir en tres tipos: unión interna, unión externa y unión cruzada. Inner JOIN utiliza operadores de comparación para comparar determinadas columnas de datos entre tablas y enumera las filas de datos de estas tablas que coinciden con las condiciones de unión. Según los diferentes métodos de comparación utilizados, las uniones internas se dividen en tres tipos: uniones iguales, uniones naturales y uniones desiguales.

Las uniones externas se dividen en uniones externas izquierdas (LEFT OUTER JOIN o LEFT JOIN), uniones externas derechas (RIGHT OUTER JOIN o RIGHT JOIN)

y uniones externas completas (FULL OUTER JOIN o FULL JOIN) tres tipos. A diferencia de las uniones internas, las uniones externas no solo enumeran las filas que coinciden con las condiciones de la unión

, sino que también enumeran la tabla izquierda (cuando se combina con el exterior izquierdo), la tabla derecha (cuando se combina con el exterior derecho) o Todo

filas de datos en las dos tablas (unión externa completa) que coinciden con las condiciones de búsqueda.

La unión cruzada (CROSS JOIN) no tiene una cláusula WHERE. Devuelve el producto cartesiano de todas las filas de datos en la tabla conectada. El resultado es el número de

filas de datos. en *** es igual a El número de filas de datos en una tabla que coinciden con las condiciones de la consulta se multiplica por el número de filas de datos en la segunda tabla que coinciden con las condiciones de la consulta.

La cláusula ON (join_condition) en la operación de unión indica la condición de unión, que consta de columnas en la tabla unida, operadores de comparación, operadores lógicos

, etc.

No importa qué tipo de conexión, las columnas de tipo de datos text, ntext e image no se pueden conectar directamente, pero estas tres columnas se pueden conectar indirectamente

. Por ejemplo:

SELECCIONE p1.pub_id,p2.pub_id,p1.pr_info

DESDE pub_info COMO p1 INNER JOIN pub_info COMO p2

EN DATALENGTH(p1. pr_info )=DATALENGTH(p2.pr_info)

(1) Unión interna

La operación de consulta de unión interna enumera las filas de datos que coinciden con las condiciones de unión. Utiliza operadores de comparación para comparar. columnas unidas. Hay tres tipos de combinaciones internas:

1. Combinación equivalente: utilice el operador de signo igual (=) en la condición de combinación para comparar los valores de las columnas unidas en los resultados de la consulta. columnas en la tabla unida, incluidas las columnas duplicadas.

2. Conexión desigual: utilice otros operadores de comparación excepto el operador igual en la condición de conexión para comparar los valores de las columnas conectadas. Estos operadores

incluyen >, >=, <=, <, !>, !< y <>.

3. Unión natural: utiliza el operador igual (=) en la condición de unión para comparar los valores de las columnas conectadas, pero utiliza una lista de selección para indicar la consulta.

El resultado es *** Columnas incluidas y elimina columnas duplicadas en la tabla de combinación.

Por ejemplo, lo siguiente utiliza una unión equivalente para enumerar los autores y editores ubicados en la misma ciudad en las tablas de autores y editores:

SELECT *

FROM autores COMO INNER JOIN editores COMO p

ON a.city=p.city

Otro ejemplo es usar uniones naturales para eliminar columnas duplicadas (ciudad y estado) en los autores y tablas de editores en la lista de selección:

SELECCIONE a.*,p.pub_id,p.pub_name,p.country

FROM autores COMO INNER JOIN editores COMO p

ON a. city=p.city

(2) Conexión externa

Durante la conexión interna, solo los resultados de la consulta *** que cumplen con las condiciones de la consulta (DONDE buscar). condiciones o TENER condiciones) y línea Condición de unión

. Cuando se utilizan combinaciones externas, los resultados de la consulta devueltos por *** no solo incluyen filas que cumplen con las condiciones de combinación, sino que también incluyen la tabla izquierda (cuando se une el exterior izquierdo

), la tabla derecha (cuando se une el exterior izquierdo

), la tabla derecha (cuando se une el exterior izquierdo

) externo)) o todas las filas de datos en dos tablas perimetrales (unión externa completa).

Como se muestra a continuación, utilice la unión externa izquierda para conectar el contenido del foro y la información del autor:

SELECCIONE a.*,b.* FROM luntan LEFT JOIN usertable as b

ON a.username=b.username

Lo siguiente utiliza una combinación externa completa para enumerar todos los autores en la tabla de ciudades y todos los autores en la tabla de usuarios, así como las ciudades donde se encuentran. ubicado:

SELECCIONE a.*,b.*

DESDE la ciudad como usuario EXTERIOR COMPLETO ÚNETE como b

EN a.username=b.username

(3) Unión cruzada

La unión cruzada no tiene una cláusula WHERE. Devuelve el producto cartesiano de todas las filas de datos de las dos tablas que se unen y devuelve las filas de datos en la tabla. resultado***

El número 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 categorías de libros en la tabla de títulos y 8 editoriales en la tabla de editoriales, entonces el número de registros recuperados por la siguiente conexión cruzada será igual a 6*8=

48 líneas.

SELECCIONAR tipo, nombre_pub

DE títulos CRUZAR UNIRSE a editores

ORDENAR POR tipo