Consultas de escritura del servidor ms sql. Ejecución de consultas SQL en Management Studio. Agregar un campo calculado promedio

Expresiones de tabla Se denominan subconsultas y se utilizan cuando se espera la presencia de una tabla. Hay dos tipos de expresiones de tabla:

    tablas derivadas;

    expresiones de tabla generalizadas.

Estas dos formas de expresiones de tabla se analizan en las siguientes subsecciones.

tablas derivadas

tabla derivada es una expresión de tabla incluida en la cláusula FROM de una consulta. Las tablas derivadas se pueden utilizar en los casos en los que no es posible utilizar alias de columna porque el traductor SQL procesa otra declaración antes de que se conozca el alias. El siguiente ejemplo muestra un intento de utilizar un alias de columna en una situación en la que se procesa otra cláusula antes de que se conozca el alias:

UTILICE SampleDb; SELECCIONE MES (Ingresar fecha) como enter_month DESDE Works_on GROUP BY enter_month;

Al intentar ejecutar esta consulta se producirá el siguiente mensaje de error:

Mensaje 207, nivel 16, estado 1, línea 5 Nombre de columna no válido "enter_month". (Mensaje 207: Nivel 16, Estado 1, Línea 5 Nombre de columna no válido enter_mes)

El motivo del error es que la cláusula GROUP BY se procesa antes de que se procese la lista correspondiente de la instrucción SELECT, y el alias de la columna enter_month se desconoce cuando se procesa el grupo.

Este problema se puede resolver utilizando una tabla derivada que contenga la consulta anterior (sin la cláusula GROUP BY) porque la cláusula FROM se ejecuta antes de la cláusula GROUP BY:

UTILICE SampleDb; SELECCIONE ingresar_mes DESDE (SELECCIONAR MES (Ingresar fecha) como ingresar_mes DESDE Works_on) AS m GROUP BY enter_month;

El resultado de esta consulta será así:

Normalmente, una expresión de tabla se puede colocar en cualquier lugar de una instrucción SELECT donde pueda aparecer el nombre de una tabla. (El resultado de una expresión de tabla es siempre una tabla o, en casos especiales, una expresión). El siguiente ejemplo muestra el uso de una expresión de tabla en la lista de selección de una instrucción SELECT:

El resultado de esta consulta:

Expresiones genéricas de tabla

Expresión de tabla común (OTB) es una expresión de tabla con nombre compatible con el lenguaje Transact-SQL. Las expresiones de tabla comunes se utilizan en los dos tipos de consultas siguientes:

    no recursivo;

    recursivo.

Estos dos tipos de solicitudes se analizan en las siguientes secciones.

OTB y consultas no recursivas

La forma no recursiva de OTB se puede utilizar como alternativa a las tablas y vistas derivadas. Normalmente, el OTB está determinado por CON cláusulas y una consulta adicional que hace referencia al nombre utilizado en la cláusula CON. En Transact-SQL, el significado de la palabra clave CON es ambiguo. Para evitar ambigüedades, la declaración que precede a la declaración CON debe terminar con un punto y coma.

UTILIZAR AdventureWorks2012; SELECCIONE SalesOrderID FROM Sales.SalesOrderHeader DONDE TotalDue > (SELECCIONE AVG(TotalDue) FROM Sales.SalesOrderHeader DONDE AÑO(OrderDate) = "2005") Y Flete > (SELECCIONE AVG(TotalDue) FROM Sales.SalesOrderHeader DONDE AÑO(OrderDate) = "2005 ")/2,5;

La consulta en este ejemplo selecciona pedidos cuyos impuestos totales (TotalDue) son mayores que el promedio de todos los impuestos y cuyos cargos de flete (Flete) son mayores que el 40% de los impuestos promedio. La propiedad principal de esta consulta es su longitud, ya que la subconsulta debe escribirse dos veces. Uno de formas posibles Reducir el tamaño de la construcción de la consulta sería crear una vista que contenga una subconsulta. Pero esta solución es un poco complicada porque requiere crear una vista y luego eliminarla una vez que la consulta haya terminado de ejecutarse. Un mejor enfoque sería crear una OTB. El siguiente ejemplo muestra el uso de OTB no recursivo, que acorta la definición de consulta anterior:

UTILIZAR AdventureWorks2012; CON price_calc(year_2005) AS (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader DONDE AÑO(OrderDate) = "2005") SELECCIONE SalesOrderID FROM Sales.SalesOrderHeader DONDE TotalDue > (SELECCIONE año_2005 FROM price_calc) Y Flete > (SELECCIONE año_2005 FROM price_cal c ) /2,5;

La sintaxis de la cláusula FROM en consultas no recursivas es la siguiente:

El parámetro cte_name representa el nombre de OTB que define la tabla resultante y el parámetro column_list representa la lista de columnas de la expresión de la tabla. (En el ejemplo anterior, el OTB se llama price_calc y tiene una columna, año_2005.) El parámetro internal_query representa una instrucción SELECT que especifica el conjunto de resultados de la expresión de tabla correspondiente. La expresión de tabla definida se puede utilizar en el archivo external_query. (La consulta externa en el ejemplo anterior usa OTB price_calc y su columna año_2005 para simplificar la consulta doblemente anidada).

OTB y consultas recursivas

Esta sección presenta material de mayor complejidad. Por lo tanto, al leerlo por primera vez, se recomienda omitirlo y volver a él más tarde. Los OTB se pueden utilizar para implementar recursiones porque los OTB pueden contener referencias a sí mismos. La sintaxis básica de OTB para una consulta recursiva se ve así:

Los parámetros cte_name y column_list tienen el mismo significado que en OTB para consultas no recursivas. El cuerpo de una cláusula CON consta de dos consultas combinadas por el operador UNIÓN TODOS. La primera consulta se llama solo una vez y comienza a acumular el resultado de la recursividad. El primer operando del operador UNION ALL no hace referencia a OTB. Esta consulta se denomina consulta de referencia o fuente.

La segunda consulta contiene una referencia al OTB y representa su parte recursiva. Por esto se le llama miembro recursivo. En la primera llamada a la parte recursiva, la referencia OTB representa el resultado de la consulta de referencia. El miembro recursivo utiliza el resultado de la primera llamada de consulta. Después de esto, el sistema vuelve a llamar a la parte recursiva. Una llamada a un miembro recursivo se detiene cuando una llamada anterior devuelve un conjunto de resultados vacío.

El operador UNION ALL une las filas acumuladas actualmente, así como las filas adicionales agregadas por la llamada actual al miembro recursivo. (La presencia del operador UNION ALL significa que las filas duplicadas no se eliminarán del resultado).

Finalmente, el parámetro external_query especifica la consulta externa que utiliza OTB para recuperar todas las llamadas a la unión de ambos miembros.

Para demostrar la forma recursiva de OTB, utilizamos la tabla Avión definida y completada con el código que se muestra en el siguiente ejemplo:

UTILICE SampleDb; CREAR TABLA Avión(ContainingAssembly VARCHAR(10), ContainedAssembly VARCHAR(10), CantidadContenida INT, UnitCost DECIMAL(6,2)); INSERTAR EN VALORES del avión ("Avión", "Fuselaje", 1, 10); INSERTAR EN VALORES del avión ("Avión", "Alas", 1, 11); INSERTAR EN VALORES del avión ("Avión", "Cola", 1, 12); INSERTAR EN LOS VALORES del avión ("Fuselaje", "Salón", 1, 13); INSERTAR EN LOS VALORES del avión ("Fuselaje", "Cabina", 1, 14); INSERTAR EN LOS VALORES del avión ("Fuselaje", "Nariz", 1, 15); INSERTAR EN VALORES del avión ("Cabina", NULL, 1,13); INSERTAR EN VALORES del avión ("Cockpit", NULL, 1, 14); INSERTAR EN VALORES del avión ("Nariz", NULL, 1, 15); INSERTAR EN VALORES del avión ("Alas", NULL,2, 11); INSERTAR EN VALORES del avión ("Cola", NULL, 1, 12);

La tabla Avión tiene cuatro columnas. La columna ContainingAssembly identifica el ensamblaje y la columna ContainedAssembly identifica las piezas (una por una) que componen el ensamblaje correspondiente. La siguiente figura muestra una ilustración gráfica de un posible tipo de aeronave y sus componentes:

La tabla Avión consta de las siguientes 11 filas:

El siguiente ejemplo utiliza la cláusula CON para definir una consulta que calcula el costo total de cada compilación:

UTILICE SampleDb; CON lista_de_piezas (ensamblaje1, cantidad, costo) COMO (SELECCIONAR Conjunto que contiene, Cantidad contenida, Costo unitario DESDE el avión DONDE Conjunto contenido ES UNIÓN NULA TODO SELECCIONE a. Conjunto que contiene, a. Cantidad contenida, CAST (l. cantidad * l. costo COMO DECIMAL (6,2) ) FROM list_of_parts l, Avión a DONDE l.assembly1 = a.ContainedAssembly) SELECCIONE ensamblaje1 "Parte", cantidad "Cantidad", costo "Precio" FROM list_of_parts;

La cláusula CON define una lista OTB denominada lista_de_piezas, que consta de tres columnas: conjunto1, cantidad y costo. La primera instrucción SELECT del ejemplo se llama solo una vez para almacenar los resultados del primer paso del proceso de recursividad. La instrucción SELECT en la última línea del ejemplo muestra el siguiente resultado.

SQL o lenguaje de consulta estructurado es un lenguaje utilizado para administrar datos en un sistema de base de datos relacional (RDBMS). Este artículo cubrirá los de uso común. comandos SQL, con el que todo programador debería estar familiarizado. Este material es ideal para quienes quieran repasar sus conocimientos de SQL antes de una entrevista de trabajo. Para hacer esto, mire los ejemplos dados en el artículo y recuerde que estudió las bases de datos por parejas.

Tenga en cuenta que algunos sistemas de bases de datos requieren un punto y coma al final de cada declaración. El punto y coma es puntero estándar al final de cada declaración en SQL. Los ejemplos utilizan MySQL, por lo que se requiere un punto y coma.

Configurar una base de datos para ejemplos

Cree una base de datos para demostrar cómo trabajan los equipos. Para funcionar, necesitará descargar dos archivos: DLL.sql e InsertStatements.sql. Después de eso, abra una terminal e inicie sesión en la consola MySQL usando el siguiente comando (el artículo asume que MySQL ya está instalado en el sistema):

MySQL -u raíz -p

Luego ingrese su contraseña.

Ejecute el siguiente comando. Llamemos a la base de datos "universidad":

CREAR BASE DE DATOS universidad; Universidad de EE.UU.; FUENTE ; FUENTE

Comandos para trabajar con bases de datos.

1. Ver bases de datos disponibles

MOSTRAR BASES DE DATOS;

2. Crea una nueva base de datos

CREAR BASE DE DATOS;

3. Seleccionar una base de datos para usar

USAR ;

4. Importar comandos SQL desde un archivo .sql

FUENTE ;

5. Eliminar la base de datos

SOLTAR BASE DE DATOS ;

Trabajar con tablas

6. Ver las tablas disponibles en la base de datos.

MOSTRAR MESAS;

7. Crea una nueva tabla.

CREAR MESA ( , , CLAVE PRIMARIA ( ), CLAVE EXTERNA ( ) REFERENCIAS ());

Restricciones de integridad al utilizar CREATE TABLE

Es posible que necesites crear restricciones en determinadas columnas de una tabla. Al crear una tabla, puede establecer las siguientes restricciones:

  • una celda de una tabla no puede tener un valor NULL;
  • clave primaria - CLAVE PRIMARIA (col_name1, col_name2, ...);
  • clave externa - CLAVE EXTRANJERA (col_namex1,…, col_namexn) REFERENCIAS table_name(col_namex1,…, col_namexn).

Puede especificar más de una clave principal. En este caso, obtendrá una clave primaria compuesta.

Ejemplo

Crea una tabla "instructor":

CREAR TABLA instructor (ID CHAR(5), nombre VARCHAR(20) NOT NULL, nombre_depto VARCHAR(20), salario NUMÉRICO(8,2), CLAVE PRIMARIA (ID), CLAVE EXTRANJERA (nombre_depto) REFERENCIAS departamento(nombre_depto));

8. Información de la tabla

Puede ver diversa información (tipo de valor, clave o no) sobre las columnas de la tabla con el siguiente comando:

DESCRIBIR ;

9. Agregar datos a la tabla

INSERTAR EN (, , , ...) VALORES ( , , , …);

Cuando agrega datos a cada columna de una tabla, no necesita especificar nombres de columnas.

INSERTAR EN VALORES ( , , , …);

10. Actualización de datos de la tabla

ACTUALIZAR COLOCAR = , = , ... DÓNDE ;

11. Eliminar todos los datos de la tabla.

BORRAR DE ;

12. Eliminar una tabla

MESA PLEGABLE ;

Comandos para crear consultas.

13. SELECCIONAR

SELECT se utiliza para recuperar datos de una tabla específica:

SELECCIONAR , , … DE ;

El siguiente comando puede mostrar todos los datos de la tabla:

SELECCIONAR DE ;

14. SELECCIONAR DISTINTO

Las columnas de la tabla pueden contener datos duplicados. Utilice SELECT DISTINCT para recuperar solo datos no duplicados.

SELECCIONAR DISTINTO , , … DE ;

15. DONDE

Puede utilizar la palabra clave WHERE en SELECT para especificar condiciones en una consulta:

SELECCIONAR , , … DE DÓNDE ;

En la solicitud se pueden especificar las siguientes condiciones:

  • comparación de textos;
  • comparación de valores numéricos;
  • operadores lógicos Y (y), O (o) y NO (negación).

Ejemplo

Pruebe los siguientes comandos. Preste atención a las condiciones especificadas en DÓNDE:

SELECCIONE * DEL curso DONDE nombre_depto=’Comp. Ciencia.'; SELECCIONE * DEL curso DONDE créditos>3; SELECCIONE * DEL curso DONDE dept_name="Comp. Sci." Y créditos>3;

16. Agrupar por

El operador GROUP BY se utiliza a menudo con Funciones agregadas como COUNT, MAX, MIN, SUM y AVG para agrupar valores de salida.

SELECCIONAR , , … DE AGRUPAR POR ;

Ejemplo

Mostremos el número de cursos para cada facultad:

SELECCIONE CONTAR (id_curso), nombre_depto DEL GRUPO de cursos POR nombre_depto;

17. TENER

La palabra clave HAVING se agregó a SQL porque WHERE no se puede usar con funciones agregadas.

SELECCIONAR , , ... DE AGRUPAR POR TENIENDO

Ejemplo

Mostremos una lista de facultades que tienen más de un curso:

SELECCIONE RECUENTO (id_curso), nombre_depto DEL GRUPO de cursos POR nombre_departamento TIENDO RECUENTO (id_curso)>1;

18. ORDENAR POR

ORDER BY se utiliza para ordenar los resultados de la consulta en orden descendente o ascendente. ORDER BY ordenará en orden ascendente a menos que se especifique ASC o DESC.

SELECCIONAR , , … DE ORDENAR POR , , …ASC|DESC;

Ejemplo

Mostremos una lista de cursos en orden ascendente y descendente de créditos:

SELECCIONAR * DEL curso ORDENAR POR créditos; SELECCIONAR * DEL curso ORDENAR POR créditos DESC;

19. ENTRE

ENTRE se utiliza para seleccionar valores de datos de un rango específico. numérico y valores de texto, así como fechas.

SELECCIONAR , , … DE DÓNDE ENTRE Y ;

Ejemplo

Mostremos una lista de instructores cuyo salario es superior a 50.000, pero inferior a 100.000:

SELECCIONE * DEL instructor DONDE salario ENTRE 50000 Y 100000;

20. ME GUSTA

El operador LIKE se utiliza en WHERE para especificar un patrón de búsqueda para un valor similar.

Hay dos operadores gratuitos que se utilizan en LIKE:

  • % (ninguno, uno o más caracteres);
  • _ (un carácter).
SELECCIONAR , , … DE DÓNDE COMO ;

Ejemplo

Mostremos una lista de cursos cuyos nombres contienen "to" y una lista de cursos cuyos nombres comienzan con "CS-":

SELECCIONE * DEL curso DONDE título COMO '%to%'; SELECCIONE * DEL curso DONDE course_id COMO "CS-___";

21. EN

Usando IN puedes especificar múltiples valores para la cláusula WHERE:

SELECCIONAR , , … DE DÓNDE EN ( , , …);

Ejemplo

Mostremos una lista de estudiantes de carreras de Comp. Ciencias, Física y Electrónica. Ing.:

SELECCIONE * DEL estudiante DONDE nombre_depto IN ('Comp. Sci.', 'Física', 'Elec. Eng.');

22. ÚNETE

JOIN se utiliza para vincular dos o más tablas utilizando atributos comunes dentro de ellas. La siguiente imagen muestra varias maneras se une en SQL. Tenga en cuenta la diferencia entre una unión exterior izquierda y una unión exterior derecha:

SELECCIONAR , , … DE UNIRSE EN = ;

Ejemplo 1

Mostraremos una lista de todos los cursos e información relevante sobre las facultades:

SELECCIONAR * DEL curso UNIRSE al departamento EN curso.dept_name=departamento.dept_name;

Ejemplo 2

Mostraremos una lista de todos los cursos requeridos y detalles sobre ellos:

SELECCIONE prereq.course_id, título, nombre_depto, créditos, prereq_id DESDE prereq IZQUIERDO UNIRSE AL EXTERNO al curso EN prereq.course_id=course.course_id;

Ejemplo 3

Mostraremos una lista de todos los cursos, independientemente de si son obligatorios o no:

SELECCIONE curso.curso_id, título, nombre_depto, créditos, prereq_id DESDE prereq EXTERIOR DERECHO UNIRSE al curso EN prereq.course_id=curso.curso_id;

23. Ver

La vista es una tabla SQL virtual creada como resultado de la ejecución de una expresión. Contiene filas y columnas y es muy similar a una tabla SQL normal. La vista siempre muestra la información más reciente de la base de datos.

Creación

CREAR VISTA COMO SELECCIONAR , , … DE DÓNDE ;

Eliminación

VISTA CAÍDA ;

Ejemplo

Creemos una vista que consta de cursos con 3 créditos:

24. Funciones agregadas

Estas funciones se utilizan para obtener un resultado agregado relacionado con los datos en cuestión. Las siguientes son funciones agregadas de uso común:

  • COUNT (col_name): devuelve el número de filas;
  • SUMA (col_name): devuelve la suma de los valores de esta columna;
  • AVG (col_name): devuelve el valor promedio de una columna determinada;
  • MIN (col_name): devuelve el valor más pequeño de una columna determinada;
  • MAX (col_name): devuelve el valor más grande de una columna determinada.

25. Subconsultas anidadas

Las subconsultas anidadas son consultas SQL que incluyen cláusulas SELECT, FROM y WHERE anidadas dentro de otra consulta.

Ejemplo

Busquemos cursos que se impartieron en el otoño de 2009 y la primavera de 2010:

SELECCIONE DISTINTO id_curso DE la sección DONDE semestre = 'Otoño' Y año = 2009 Y id_curso EN (SELECCIONE id_curso DE la sección DONDE semestre = 'Primavera' Y año = 2010);

SQL- Lenguaje de consulta estructurado.
EN esta reseña Veremos los tipos más comunes de consultas SQL.
El estándar SQL está definido. ANSI(Instituto Americano de Estándares Nacionales).
SQL es un lenguaje dirigido específicamente a bases de datos relacionales.

Partición SQL:


DDL
(Lenguaje de definición de datos) - el llamado lenguaje de descripción de esquemas en ANSI, consta de comandos que crean objetos (tablas, índices, vistas, etc.) en la base de datos.
DML(Lenguaje de manipulación de datos) es un conjunto de comandos que determinan qué valores se representan en las tablas en un momento dado.
DCD(Lenguaje de gestión de datos) consta de funciones que determinan si se permite a un usuario realizar determinadas acciones o no. Son parte de ANSI DDL. No olvides estos nombres. Estos no son lenguajes diferentes, sino secciones de comandos SQL agrupadas por sus funciones.

Tipos de datos:

Servidor SQL: tipos de datos

Descripción

Empezando (entero 8)

Empezando (entero 8)

binario(norte)

binario(ni imagen

personaje
(sinónimo carbonizarse)

nacional personaje o ntexto

carácter variable(sinónimo char variando varchar)

carácter nacional variable o ntexto

Fecha y hora

fecha y hora

decimal

alias numérico

Precisión doble

Precisión doble

entero (entero 4) (sinónimo: En t)

entero (entero 4)

caracter nacional(sinónimo: caracter nacional, nchar)

caracter nacional

Numérico(sinónimos: decimal, dic)

carácter nacional variable(sinónimos: carácter nacional variable, nvarchar)

Carácter nacional variable

hora de cita pequeña

fecha y hora

pequeño (entero 2)

pequeño (entero 2)

Poco dinero

variante_sql

Ya no es compatible

Ntexto
A partir de SQL Server 2005, no se recomienda su uso.

Marca de tiempo

No soportado

diminuto (entero 1)

diminuto (entero 1)

Identificador único

identificador único

varbinario(norte)

varbinario(ni imagen

pequeña fecha y hora

fecha y hora

pequeño (entero 2)

pequeño (entero 2)

poco dinero

variante_sql

No soportado

marca de tiempo

No soportado

diminuto (entero 1)

diminuto (entero 1)

identificador único

identificador único

varbinario(norte)

varbinario(ni imagen

Tabla de tipos de datos en SQL Server 2000

¿QUÉ ES UNA SOLICITUD?

Pedido es un comando que le das a tu programa de base de datos. Las consultas son parte del lenguaje DML. Todas las consultas SQL constan de un único comando. La estructura de este comando es engañosamente simple porque debe extenderla para realizar evaluaciones y manipulaciones de datos altamente complejas.

comando SELECCIONAR:

SELECCIONAR"Seleccionar" es el comando más utilizado; se utiliza para seleccionar datos de la tabla.
Tipo de consulta usando SELECT:

SELECCIONE ID, nombre de usuario, ciudad, día de nacimiento DESDE la base de usuarios;

Dicha consulta mostrará desde la tabla user_base todos los valores de las columnas especificadas separados por comas después SELECCIONAR comandos. Además, puede mostrar todas las columnas con un carácter, * es decir. SELECCIONAR * DE base_usuarios; - dicha consulta mostrará todos los datos de la tabla.

SELECCIONAR estructura de comando:

SELECT (Nombres de columnas separados por comas que deben mostrarse en la consulta) FROM (nombre de la tabla en la base de datos)
- Este es el tipo de solicitud más sencillo. Hay comandos adicionales para una cómoda recuperación de datos (ver más abajo "Funciones")

Comandos DML:

Los valores se pueden colocar y eliminar de los campos mediante tres comandos DML (lenguaje de manipulación de datos):
INSERTAR(Insertar)
ACTUALIZAR(Actualización, modificación),
BORRAR(Borrar)

INSERTAR comando:

INSERTAR EN base_usuarios (nombre_usuario, ciudad, día_cumpleaños) VALORES ('Alexander', 'Rostov', '20/06/1991');

El comando INSERT viene con el prefijo INTO (en a), luego entre paréntesis están los nombres de las columnas en las que debemos insertar datos, luego viene el comando VALUES (valores) y entre paréntesis vienen los valores por turno (es Es necesario observar el orden de los valores con las columnas, los valores deben estar en el mismo orden que las columnas que especificaste).

Comando ACTUALIZAR:

ACTUALIZAR base_usuarios SET nombre_usuario = 'Alexey';

El comando ACTUALIZAR actualiza los valores de una tabla. Primero viene el comando ACTUALIZAR, luego el nombre de la tabla, después del comando SET (set), luego el nombre de la columna y su valor entre comillas (las comillas se colocan si el valor está en formato de cadena, si es un valor numérico y la columna no está vinculado al tipo de datos vchar ni a ningún otro tipo de cadena, las comillas no tienen significado).

comando ELIMINAR:

ELIMINAR DE base_usuarios DONDE nombre_usuario = 'Vasily';

El comando ELIMINAR elimina la fila completa e identifica la fila usando el criterio WHERE. En este caso, esta consulta eliminaría todas las filas en las que el valor de la columna nombre de usuario fuera Vasily. Hablaremos sobre el criterio DÓNDE y otros un poco más adelante.

Criterios, funciones, condiciones, etc. lo que nos ayuda en SQL:

La cláusula WHERE es una cláusula del comando SELECT y otros comandos DML que le permite establecer predicados cuya condición puede ser verdadera o falsa para cualquier fila de la tabla. El comando recupera sólo aquellas filas de la tabla para las cuales esta afirmación es verdadera.
Ejemplo:
SELECCIONE identificación, ciudad, día de nacimiento DESDE base_usuarios DONDE nombre_usuario = 'Alexey';- dicha consulta mostrará solo aquellas filas que coincidan con la condición WHERE, es decir, todas las filas en las que la columna nombre de usuario tenga el valor Alexey.

ORDER BY: condición para ordenar las filas seleccionadas. Tiene 2 criterios ASC y DESC. ASC (ordenando de A a Z o de 0 a 9)

DESC (opuesto a ASC).
Ejemplo:
SELECCIONE ID, ciudad, día de nacimiento DESDE la base de usuarios ORDENAR POR nombre de usuario ASC; - dicha consulta mostrará valores ordenados por la columna nombre de usuario de la A a la Z (A-Z; 0-9)

Esta condición también se puede utilizar junto con la cláusula WHERE.
Ejemplo:
SELECCIONE id, ciudad, día de nacimiento DESDE la base de usuarios DONDE nombre_usuario = 'Alexey' ORDEN POR id ASC;

DISTINCT es un argumento que le proporciona una forma de eliminar valores dobles de su cláusula SELECT. Aquellos. si tiene valores duplicados en una columna, digamos nombre_usuario, entonces DISTINCT le mostrará solo un valor, por ejemplo, tiene 2 personas llamadas Alexey en su base de datos, entonces una consulta usando la función DISTINCT le mostrará solo 1 valor eso se encuentra primero...
Ejemplo:
SELECCIONE DISTINTO nombre_usuario DE base_usuarios;- dicha consulta nos mostrará los valores de todos los registros en la columna nombre_usuario, pero no se repetirán, es decir si tuvieras un número infinito de valores repetidos, entonces no se mostrarán...

Y: toma dos argumentos booleanos (en la forma A Y B) y los evalúa frente a la verdad para ver si ambos son verdaderos.
Ejemplo:
SELECCIONE * DE base_usuario DONDE ciudad = 'Rostov' Y nombre_usuario = 'Alexander';- mostrará todos los valores de la tabla donde aparece el nombre de la ciudad en una línea (en este caso, Rostov y el nombre de usuario Alexander.

OR: toma dos booleanos (en la forma A O B) como argumentos y evalúa si uno de ellos es correcto.

SELECCIONE * DE base_usuarios DONDE ciudad = 'Rostov' O nombre_usuario = 'Alexander';- mostrará todos los valores de la tabla donde aparece en la línea el nombre de la ciudad de Rostov o el nombre de usuario Alexander.

NOT: toma un único valor booleano (en la forma NOT A) como argumento y cambia su valor de falso a verdadero o de verdadero a falso.
SELECCIONE * DE base_usuarios DONDE ciudad = 'Rostov' O NO nombre_usuario = 'Alexander';- mostrará todos los valores de la tabla donde aparece el nombre de la ciudad de Rostov en una línea o el nombre de usuario no es exactamente Alexander.

IN: define un conjunto de valores en los que un valor determinado puede incluirse o no.
SELECCIONE * DE base_usuarios DONDE ciudad EN ('Vladivostok', 'Rostov');- dicha consulta mostrará todos los valores de la tabla que contienen los nombres de las ciudades especificadas en la columna de ciudad

Between es similar al operador IN. A diferencia de definir por números de un conjunto, como lo hace IN, BETWEEN define un rango cuyos valores deben disminuir para que el predicado sea verdadero.
SELECCIONE * DE base_usuarios DONDE id ENTRE 1 Y 10;- muestra todos los valores de la tabla que estarán en el rango de 1 a 10 en la columna de identificación

COUNT: produce los números de fila o valores no NULL de los campos que seleccionó la consulta.
SELECCIONE RECUENTO (*) DE usuarios_base;- mostrará el número de filas en esta tabla.
SELECCIONE RECUENTO (nombre_usuario DISTINTO) DE base_usuarios;- mostrará el número de líneas con nombres de usuario (no repetidos)

SUMA: produce la suma aritmética de todos los valores seleccionados para un campo determinado.
SELECCIONE SUMA (id) DE base_usuarios;- mostrará la suma de los valores de todas las filas de la columna de identificación.

AVG: promedia todos los valores seleccionados de este campo.
SELECCIONE AVG (id) DE base_usuarios;- mostrará el promedio de todos los valores seleccionados de la columna de identificación

MAX: produce el mayor de todos los valores seleccionados para este campo.

MIN: produce el más pequeño de todos los valores seleccionados para este campo.

Creando tablas:

CREAR TABLA base_usuarios (id entero, texto del nombre de usuario, texto de la ciudad, fecha y hora del día de nacimiento);- ejecutar dicho comando conducirá a la creación de la tabla para la cual di ejemplos... Aquí todo es simple, escribimos el comando CREAR TABLA, seguido del nombre de la tabla que queremos crear, luego entre paréntesis, separados por comas, los nombres de las columnas y su tipo de datos. Esta es la forma estándar de crear una tabla en SQL. Ahora daré un ejemplo de cómo crear tablas en SQL Server 2005:

ESTABLECER ANSI_NULLS EN
IR
ESTABLECER QUOTED_IDENTIFIER EN
IR
SI NO EXISTE (SELECCIONE * DESDE sys.objects DONDE object_id = OBJECT_ID(N."") Y escriba (N"U"))
COMENZAR
CREAR MESA .(

NO NULO,
NO NULO,
NO NULO,
CLAVE PRIMARIA AGRUPADA
A.S.C.


FIN
IR
ESTABLECER ANSI_NULLS EN
IR
ESTABLECER QUOTED_IDENTIFIER EN
IR
SI NO EXISTE (SELECCIONE * DESDE sys.objects DONDE object_id = OBJECT_ID(N."") Y escriba (N"U"))
COMENZAR
CREAR MESA .(
IDENTIDAD(1,1) NO NULA,
NULO,
NULO,
CLAVE PRIMARIA AGRUPADA
A.S.C.
)CON (IGNORE_DUP_KEY = APAGADO) ENCENDIDO
) EN TEXTIMAGE_ON
FIN
IR
ESTABLECER ANSI_NULLS EN
IR
ESTABLECER QUOTED_IDENTIFIER EN
IR
SI NO EXISTE (SELECCIONE * DESDE sys.objects DONDE object_id = OBJECT_ID(N."") Y escriba (N"U"))
COMENZAR
CREAR MESA .(
IDENTIDAD(1,1) NO NULA,
NULO,
NULO,
CLAVE PRIMARIA AGRUPADA
A.S.C.
)CON (IGNORE_DUP_KEY = APAGADO) ENCENDIDO
) EN
FIN

La sintaxis en SQL Server 2005 es otro tema, solo quería mostrar que describí los conceptos básicos de la programación SQL, puedes llegar a la cima por tu cuenta conociendo los conceptos básicos.

Si tienes alguna pregunta sobre este tema, escríbeme.

Desarrollar una aplicación que demuestre operaciones básicas sobre datos en una base de datos como MS SQL Server, a saber:

  • conectar la base de datos a la aplicación;
  • mostrar tablas de bases de datos en el formulario;
  • suma nueva entrada a la base de datos;
  • editar un registro;
  • eliminar una entrada.

Se toma como base la base de datos Education.dbo, cuyo proceso de creación se describe en detalle.

La Figura 1 muestra la estructura de la base de datos Education.dbo. Como puede verse en la figura, la base de datos se llama:

sasha-pc\sqlexpress.Education.dbo

Aquí "sasha-pc" es el identificador de la computadora en la red, "sqlexpress" es el nombre del servidor de la base de datos, "Education.dbo" es el nombre de la base de datos.

Arroz. 1. Base de datos Education.dbo

La base de datos contiene dos tablas: Estudiante y Sesión. La estructura de las tablas es la siguiente.

Mesa de estudiantes.

Mesa de sesiones.

Actuación

1. Cree un nuevo proyecto en MS Visual Studio como aplicación de Windows Forms.

Cree un nuevo proyecto de tipo Aplicación de Windows Forms. Se describe en detalle un ejemplo de creación de un nuevo proyecto.

2. Cree una nueva vista para mostrar datos de la tabla de Estudiantes.

Para mostrar datos de tablas de bases de datos, puede utilizar diferentes caminos. Uno de ellos es la creación de vistas, que se generan utilizando MS Visual Studio.

En nuestro caso los datos de la tabla se mostrarán en el formulario en un control del tipo DataGridView. Después de crear vistas, es muy conveniente asociarlas con elementos DataGridView.

Para crear una vista, debe llamar al comando "Agregar nueva vista" desde el menú contextual, que se llama haciendo clic derecho en el elemento "Vistas" de la base de datos Education.dbo (Figura 2).

Arroz. 2. Llamar al comando para agregar una nueva vista.

Como resultado, se abrirá la ventana "Agregar tabla" (Figura 3). En la ventana debe seleccionar las tablas que se agregan a la vista.

Arroz. 3. Seleccionar las tablas en las que se basará la nueva vista

En nuestro caso, seleccione la tabla Estudiante y confirme su elección haciendo clic en el botón Agregar. El siguiente paso es cerrar la ventana seleccionando el botón Cerrar.

Después de completar los pasos, se generará una ventana en la que deberá seleccionar los campos que deben mostrarse en la vista (en el formulario). Seleccione todos los campos (Figura 4).

Cuando selecciona campos, los campos de la tabla Estudiante se muestran en la parte superior del área de trabajo. Usando el mouse, puede seleccionar los campos deseados para la presentación.

En consecuencia, el área central de la ventana muestra los nombres de los campos seleccionados, la tabla en la que existen (ver Fig. 4), la capacidad de ordenar, filtrar, etc.

La parte inferior del área muestra el texto de consulta SQL correspondiente que se utiliza para crear la vista.

Arroz. 4. Seleccionar los campos de la tabla de estudiantes para mostrar en la vista

Después de elegir un equipo

Archivo->Guardar todo Archivo->Guardar vista1

Se abrirá una ventana en la que deberá especificar el nombre de la vista. Establezca el nombre "Ver estudiante" (Figura 5).

Arroz. 5. Especificar un nombre para la vista

Después de completar los pasos, la ventana de presentación tendrá el aspecto que se muestra en la Figura 6.

Arroz. 6. Ver la representación de los estudiantes en la base de datos.

Ahora puede alojar un control DataGridView y asociarlo con una vista.

3. Colocar el control DataGridView y configurar la conexión con la base de datos.

Antes de colocar el control DataGridView, debe ingresar al modo de diseño de formulario "Form1.cs".

El elemento DataGridView es una tabla que puede mostrar datos. Este control está ubicado en el panel ToolBox. Primero, ajustamos ligeramente el tamaño del formulario y luego colocamos el control DataGridView en él (Figura 7). Esto creará una instancia de objeto llamada dataGridView1 de forma predeterminada.

Arroz. 7. Ventana de selección de fuente de datos y control DataGridView

Luego de colocar el control DataGridView en el formulario, en la esquina superior derecha puedes elegir configurar la fuente de datos. En consecuencia, se abrirá la ventana "Tareas de DataGridView". En esta ventana, debe seleccionar el menú emergente "Elegir fuente de datos".

En el menú que se abre, seleccione el comando "Agregar fuente de datos del proyecto..." (Fig. 7). Después de esto, se abre una ventana del asistente, en la que se selecciona secuencialmente la fuente de datos.

La figura 8 muestra el " Asistente de configuración de origen de datos“, en el que se selecciona el tipo de fuente de datos. En nuestro caso, instalamos “Base de datos”.

Arroz. 8. Seleccionar un tipo de fuente de datos

En la siguiente ventana (Figura 9) se selecciona el modelo de fuente de datos. Debe seleccionar Conjunto de datos.

Arroz. 9. Seleccionar un modelo de fuente de datos

En la ventana que se muestra en la Figura 10, debe especificar la conexión de datos que desea utilizar para conectarse a la base de datos. En nuestro caso, debemos seleccionar la base de datos " sasha-pc\sqlexpress\Educación.dbo«.

Arroz. 10. Seleccionar una conexión de datos

La siguiente ventana (Figura 11) sugiere guardar la cadena de conexión en el archivo de configuración de la aplicación. Dejamos todo como está y pasamos a la siguiente ventana.

Arroz. 11. Propuesta para guardar la cadena de conexión de la base de datos Cadena de conexión en el archivo de configuración de la aplicación

Después de crear una conexión de base de datos, se muestran una variedad de objetos de base de datos (Figura 12). En nuestro caso, debemos seleccionar la vista "Ver estudiante" y todos los campos de ella. Los campos marcados se mostrarán en el componente de tipo DataGridView.

Arroz. 12. Seleccionar los objetos de la base de datos para mostrar en DataGridView

Después de seleccionar el botón Finalizar, se mostrarán los objetos seleccionados (vista Ver Estudiante) de la base de datos Education.dbo (Figura 13).

Arroz. 13. Control DataGridView con campos seleccionados de View Student

De manera similar, puede configurar vistas que contengan cualquier campo de cualquier tabla de base de datos. Además, los campos de diferentes tablas se pueden mostrar en una sola vista.

4. Configurar la apariencia del control DataGridView.

Si ejecuta la aplicación, recibirá datos de la vista Ver Estudiante, que corresponde a la tabla de Estudiantes en la base de datos (Figura 14).

Arroz. 14. Lanzamiento de la aplicación para su ejecución.

Como puede ver en la Figura 14, los datos en la tabla dataGridView1 se muestran normalmente, pero el diseño se puede ajustar.

Un control del tipo DataGridView permite ajustar la apariencia de los campos que se muestran.

Para llamar comandos para editar campos, simplemente llame al menú contextual haciendo clic derecho en el control dataGridView1.

El menú tiene varios comandos útiles, que le permiten controlar la apariencia y el funcionamiento de DataGridView:

  • comando para bloquear el control (Controles de bloqueo);
  • comando para editar los campos que se muestran en la vista (Editar columnas...);
  • comando para agregar nuevos campos, por ejemplo los calculados (Agregar columna).

En nuestro caso, debe seleccionar el comando "Editar columnas..." (Figura 15).

Arroz. 15. Comando "Editar columnas..." desde el menú contextual

Como resultado, se abrirá la ventana “Editar columnas”, en la que podrás personalizar la apariencia de los campos de presentación a tu gusto (Figura 16).

Arroz. 16. Ventana para configurar la vista de campos en la vista “Ver Estudiante”

En la ventana de la Figura 16, para cualquier campo puede configurar el nombre, alineación, ancho, capacidad de editar datos, etc.

5. Cadena de conexión

Para realizar cambios en la base de datos, necesita obtener una cadena de conexión a la base de datos. Cadena de conexión.

Hay diferentes formas de obtener la cadena de conexión de la base de datos. Uno de ellos se basa en leer esta línea en la ventana Propiedades de la base de datos Education.dbo (Fig. 17).

Arroz. 17. Definición de una cadena de conexión

Para guardar la cadena en el programa, una variable interna del tipo cadena. Usando el portapapeles, copie la cadena de conexión en la variable de cadena descrita.

En el texto del archivo "Form1.cs" al comienzo de la descripción de la clase Form1, debe describir la variable:

cadena conn_string =;

Por el momento el texto de la clase Form1 es el siguiente:

clase parcial pública Form1: Formulario { cadena conn_string = @"Fuente de datos=(local)\SQLEXPRESS;Catálogo inicial=Educación;Seguridad integrada=Verdadero;Pooling=False"; Formulario público1() { InicializarComponente(); } privado vacío Form1_Load (remitente del objeto, EventArgs e) { // TODO: esta línea de código carga datos en la tabla "educationDataSet.View_Student". Puede muévalo o retírelo, según sea necesario. } }

6. Creación nueva forma para demostrar comandos de manipulación de datos.

Para poder procesar los datos del registro actual, es necesario crear un nuevo formulario. El proceso de creación de un nuevo formulario en MS Visual Studio - C# se describe en detalle.

Agregar un nuevo formulario se realiza con el comando:

Proyecto -> Agregar formulario de Windows...

En la ventana "Nuevo elemento" que se abre, debe seleccionar el elemento "Formulario de Windows".

Deje el nuevo nombre de archivo del formulario como predeterminado "Form2.cs".

La Figura 18 muestra una vista del nuevo formulario.

Colocamos los siguientes tipos de controles en el formulario:

  • Dos controles de botones (botones Aceptar y Cancelar). En consecuencia, se recibirán dos objetos denominados botón1 y botón2;
  • cuatro controles de etiquetas para crear mensajes informativos;
  • cuatro controles del tipo TextBox para ingresar datos en los campos Num_book, Nombre, Grupo, Año.

Debe configurar las siguientes propiedades de los controles:

  • en la propiedad del botón de control1 Texto = “OK”;
  • en la propiedad de control del botón2 Texto = “Cancelar”;
  • en la propiedad del botón de control1 DialogResult = "OK";
  • en la propiedad del botón de control2 DialogResult = "Cancelar";
  • en el control propiedad label1 Text = "Num_book";
  • en el control propiedad label2 Texto = "Nombre";
  • en el control propiedad label3 Texto = "Grupo";
  • en el control label4 la propiedad Texto = "Año".

También configuramos la visibilidad de los controles TextBox. Para hacer esto, en todos los controles textBox1, textBox2, textBox3, textBox4, el valor de la propiedad Modificadores = “público”.

Arroz. 18. Vista del formulario recién creado.

7. Agregar botones para llamar comandos para manipular datos de la tabla de Estudiantes.

Para seguir trabajando, debe utilizar el mouse para cambiar al formulario principal Form1.

Agregue tres botones al formulario principal de la aplicación Form1 (Botón). Se crearán automáticamente tres variables de objeto con los nombres botón1, botón2, botón3. En cada uno de estos botones realizamos las siguientes configuraciones (ventana Propiedades):

  • en el botón botón1 propiedad Texto = “Insertar…” (insertar registro);
  • en el botón botón2 propiedad Texto = “Editar…” (cambiar entrada);
  • en el botón botón3 propiedad Texto = "Eliminar".

Como resultado de los cambios realizados, el formulario principal tendrá el aspecto que se muestra en la Figura 19.

Arroz. 19. Forma principal de la solicitud.

8. Programar un evento de clic en el botón “Insertar...”.

El controlador de eventos de clic en el botón "Insertar..." tiene este aspecto:

botón de anulación privado1_Click_1 (remitente del objeto, EventArgs e) { cadena cmd_text; Formulario2 f2 = nuevo Formulario2(); si (f2.ShowDialog() == DialogResult .OK) { cmd_texto = "INSERTAR EN VALORES del estudiante (" + """ + f2.textBox1.Text + "" , "" + f2.textBox2.Text + "" , "" + f2.textBox3.Text + "", " + f2.textBox4.Text + ")" ; // crear una conexión a la base de datos SqlConnection sql_conn = nueva SqlConnection(conn_string); // crear un comando en lenguaje SQL SqlCommand sql_comm = nuevo SqlCommand(cmd_text, sql_conn); sql_conn.Open(); // abrir conexión sql_comm.ExecuteNonQuery(); // ejecutar comando en lenguaje SQL sql_conn.Close(); // conexión cercana este .view_StudentTableAdapter.Fill (este .educationDataSet.View_Student); } }

Form2 se llama primero. Después de recibir el resultado "OK" (presionando el botón correspondiente), en Form2 los campos completados en elementos del tipo TextBox se incluyen en la cadena de consulta SQL. La consulta SQL para agregar una nueva fila tiene el siguiente aspecto:

INSERTAR EN Estudiante VALORES (valor1, valor2, valor3, valor4)

donde valor1 corresponde al número del libro de calificaciones; valor2 – apellido del estudiante; valor3 – grupo en el que estudia el estudiante; valor4 – año de entrada.

La cadena de conexión de la base de datos Connection String se describe en la variable conn_string (ver párrafo 5). El objeto de clase SqlConnection conecta la aplicación a las fuentes de datos. Además, la clase Connection maneja la autenticación de usuarios, la creación de redes, la identificación de bases de datos, el almacenamiento en búfer de conexiones y el procesamiento de transacciones.

El comando SQL que agrega un registro a una tabla está encapsulado en la clase SqlCommand. El constructor de la clase SqlCommand toma dos parámetros: una cadena de consulta SQL (variable cmd_text) y un objeto de la clase SqlConnection.

El método ExecuteNonQuery() se implementa en la interfaz IDBCommand. El método implementa comandos SQL que no devuelven datos. Dichos comandos incluyen comandos INSERTAR, ELIMINAR, ACTUALIZAR, así como procedimientos almacenados que no devuelven datos. El método ExecuteNonQuery() devuelve el número de registros involucrados.

9. Programar un evento de clic en el botón “Editar...”.

El controlador de eventos de clic en el botón "Editar..." se ve así:

botón vacío privado2_Click (remitente del objeto, EventArgs e) (cadena cmd_text; Form2 f2 = nuevo Form2 (); int index; string num_book; index = dataGridView1.CurrentRow.Index; num_book = Convert .ToString(dataGridView1.Value); f2.textBox1 .Text = num_book;f2.textBox2.Text = Convertir .ToString(dataGridView1.Value);f2.textBox3.Text = Convertir .ToString(dataGridView1.Value);f2.textBox4.Text = Convertir .ToString(dataGridView1.Value); si (f2.ShowDialog() == DialogResult .OK) ( cmd_text = "ACTUALIZAR Estudiante SET Num_book = ""+ f2.textBox1.Text + "", " + " = "" + f2.textBox2.Text + "", " + " = "" + f2.textBox3.Text + "", " + "Año = " + f2 .TextBox4.Text + "What num_book =" " + num_book +" "" "" SQLConNection SQL_Conn = Nuevo SQLConNECTION (Conn_String); SQLCMAND SQL_comm = Nuevo SQLCMANT (CMD_TEXT, sql_conn); sql_conn.open (); sql_comm.executenonquery () ; sql_conn.Close(); este .view_StudentTableAdapter.Fill(este .educationDataSet.View_Student); ) )

Este controlador ejecuta un comando UPDATE SQL que cambia el valor actual del registro activo.

10. Programar un evento de clic en el botón “Eliminar”.

El controlador de eventos de clic en el botón "Eliminar" se ve así:

botón vacío privado3_Click (remitente del objeto, EventArgs e) (cadena cmd_text = "BORRAR DEL Estudiante"; int index; string num_book; index = dataGridView1.CurrentRow.Index; num_book = Convert.ToString(dataGridView1.Value); cmd_text = "ELIMINAR DEL Estudiante DONDE. = ""+ num_book + """ ; SqlConnection sql_conn = nueva SqlConnection (conn_string); SqlCommand sql_comm = nueva SqlCommand (cmd_text, sql_conn); sql_conn.Open(); sql_comm.ExecuteNonQuery(); sql_conn.Close(); este adaptador .view_StudentTable. Rellenar (este .educationDataSet.View_Student); )

Este controlador ejecuta el comando SQL DELETE para eliminar un registro.

Temas relacionados

  • Generar una tabla de base de datos de Microsoft Access

SQL Server Management Studio proporciona una herramienta completa para crear todo tipo de consultas. Con su ayuda puedes crear, guardar, cargar y editar consultas. Además, podrás trabajar en consultas sin necesidad de conectarte a ningún servidor. Esta herramienta también brinda la posibilidad de desarrollar consultas para diferentes proyectos.

Puede trabajar con consultas utilizando el Editor de consultas o el Explorador de soluciones. Este artículo cubre ambas herramientas. Además de estos dos componentes de SQL Server Management Studio, veremos la depuración de código SQL utilizando el depurador integrado.

editor de consultas

Para abrir el panel Editor de consultas Editor de consultas, en la barra de herramientas de SQL Server Management Studio, haga clic en el botón Nueva consulta. Este panel se puede ampliar para mostrar botones para crear todas las consultas posibles, no solo consultas del Motor de base de datos. Por defecto se crea nueva solicitud Componente Motor de base de datos, pero al hacer clic en el botón correspondiente en la barra de herramientas, también puede crear consultas MDX, XMLA, etc.

La barra de estado en la parte inferior del panel del Editor de consultas indica el estado de la conexión del editor al servidor. Si no se conecta al servidor automáticamente, cuando inicia el Editor de consultas, aparece un cuadro de diálogo Conectar al servidor, que le permite seleccionar el servidor al que conectarse y el modo de autenticación.

La edición de consultas sin conexión proporciona más flexibilidad que cuando está conectado a un servidor. Para editar consultas, no es necesario conectarse al servidor, y la ventana del editor de consultas se puede desconectar de un servidor (usando el comando de menú Consulta --> Conexión --> Desconectar) y conectarse a otro sin abrir otra ventana del editor. Para seleccionar el modo de edición sin conexión, utilice el cuadro de diálogo Conectar al servidor que se abre cuando inicia el editor. tipo específico solicitudes, simplemente haga clic en el botón Cancelar.

Puede utilizar el Editor de consultas para realizar las siguientes tareas:

    crear y ejecutar declaraciones Transact-SQL;

    guardar declaraciones de lenguaje Transact-SQL creadas en un archivo;

    crear y analizar planes de ejecución para consultas comunes;

    ilustrando gráficamente el plan de ejecución de la consulta seleccionada.

El editor de consultas contiene una función integrada. editor de texto y una barra de herramientas con un conjunto de botones para diferentes acciones. La ventana principal del editor de consultas está dividida horizontalmente en un panel de consulta (en la parte superior) y un panel de resultados (en la parte inferior). Las declaraciones Transact-SQL (es decir, consultas) que se ejecutarán se ingresan en el panel superior y los resultados del procesamiento de esas consultas por parte del sistema se muestran en el panel inferior. La siguiente figura muestra un ejemplo de cómo ingresar una consulta en el editor de consultas y los resultados de ejecutar esa consulta:

La primera declaración de solicitud USE especifica el uso de la base de datos SampleDb como base de datos actual. La segunda declaración, SELECT, recupera todas las filas de la tabla Empleado. Para ejecutar esta consulta y mostrar los resultados, en la barra de herramientas del Editor de consultas, haga clic en el botón Ejecutar o presione F5.

Puede abrir varias ventanas del Editor de consultas, es decir realizar múltiples conexiones a una o más instancias del motor de base de datos. Se crea una nueva conexión haciendo clic en el botón Nueva consulta en la barra de herramientas de SQL Server Management Studio.

La barra de estado en la parte inferior de la ventana del Editor de consultas muestra la siguiente información relacionada con la ejecución de declaraciones de consulta:

    el estado de la operación actual (por ejemplo, "Solicitud completada con éxito");

    nombre del servidor de base de datos;

    nombre de usuario actual e ID del proceso del servidor;

    nombre de la base de datos actual;

    tiempo dedicado a ejecutar la última solicitud;

    número de líneas encontradas.

Una de las principales ventajas de SQL Server Management Studio es su facilidad de uso, que también se aplica al Editor de consultas. El Editor de consultas proporciona muchas funciones para facilitar la codificación de declaraciones Transact-SQL. En particular, utiliza resaltado de sintaxis para mejorar la legibilidad de las declaraciones Transact-SQL. Todas las palabras reservadas se muestran en azul, las variables en negro, las cadenas en rojo y los comentarios en verde.

Además, el editor de consultas está equipado con una ayuda contextual llamada Ayuda dinámica, a través del cual se puede obtener información sobre una instrucción específica. Si no conoce la sintaxis de una instrucción, selecciónela en el editor y luego presione la tecla F1. También puede resaltar los parámetros de varias instrucciones Transact-SQL para obtener ayuda sobre ellos en los Libros en pantalla.

SQL Management Studio es compatible con SQL Intellisense, que es un tipo de herramienta de autocompletar. En otras palabras, este módulo sugiere la finalización más probable de elementos de declaración Transact-SQL ingresados ​​parcialmente.

El explorador de objetos también puede ayudarle a editar consultas. Por ejemplo, si desea saber cómo crear una instrucción CREATE TABLE para la tabla Empleado, haga clic derecho en la tabla en el Explorador de objetos y el resultado Menú de contexto seleccione Tabla de secuencia de comandos como --> CREAR en --> Nueva ventana del editor de consultas. La ventana del Editor de consultas que contiene la instrucción CREATE TABLE creada de esta manera se muestra en la siguiente figura. Esta característica también se aplica a otros objetos, como funciones y procedimientos almacenados.

El Explorador de objetos es muy útil para mostrar gráficamente el plan de ejecución de una consulta en particular. El plan de ejecución de consultas es la opción de ejecución seleccionada por el optimizador de consultas entre varias opciones posibles cumplir con una solicitud específica. Ingrese la consulta requerida en el panel superior del editor, seleccione una secuencia de comandos del menú Consulta --> Mostrar plan de ejecución estimado y el plan de ejecución para esta consulta se mostrará en el panel inferior de la ventana del editor.

Explorador de la solución

La edición de consultas en SQL Server Management Studio se basa en el método de soluciones. Si crea una consulta vacía usando el botón Nueva consulta, se basará en una solución vacía. Puede ver esto ejecutando una secuencia de comandos desde el menú Ver --> Explorador de soluciones inmediatamente después de abrir una consulta vacía.

La decisión puede estar relacionada con ninguno, uno o varios proyectos. Una solución vacía, no asociada a ningún proyecto. Para asociar un proyecto con una solución, cierre la solución vacía, el Explorador de soluciones y el Editor de consultas, y cree un nuevo proyecto ejecutando Archivo --> Nuevo --> Proyecto. En la ventana Nuevo proyecto que se abre, seleccione la opción Scripts de SQL Server en el panel central. Un proyecto es una forma de organizar archivos en una ubicación específica. Puede asignar un nombre al proyecto y elegir una ubicación para su ubicación en el disco. Cuando crea un nuevo proyecto, se lanza automáticamente una nueva solución. El proyecto se puede agregar a solución existente utilizando el Explorador de soluciones.

Para cada proyecto creado, el Explorador de soluciones muestra las carpetas Conexiones, Consultas y Varios. Para abrir una nueva ventana del Editor de consultas para un proyecto determinado, haga clic derecho en su carpeta Consultas y seleccione Nueva consulta en el menú contextual.

Depuración de SQL Server

SQL Server, a partir de SQL Server 2008, tiene un depurador de código incorporado. Para comenzar una sesión de depuración, seleccione Depurar --> Iniciar depuración en el menú principal de SQL Server Management Studio. Veremos cómo funciona el depurador usando un ejemplo usando un lote de comandos. Un lote es una secuencia lógica de declaraciones SQL y extensiones de procedimientos que se envía al motor de base de datos para ejecutar todas las declaraciones que contiene.

La siguiente figura muestra un paquete que cuenta la cantidad de empleados que trabajan en el proyecto p1. Si este número es 4 o más, se muestra el mensaje correspondiente. De lo contrario, se muestran los nombres y apellidos de los empleados.

Para detener la ejecución de un paquete en una instrucción específica, puede establecer puntos de interrupción, como se muestra en la figura. Para hacer esto, haga clic a la izquierda de la línea en la que desea detenerse. Cuando comienza la depuración, la ejecución se detiene en la primera línea de código, que está marcada con una flecha amarilla. Para continuar con la ejecución y la depuración, seleccione el comando de menú Depurar --> Continuar. Las instrucciones por lotes continuarán ejecutándose hasta el primer punto de interrupción y la flecha amarilla se detendrá en ese punto.

La información relacionada con el proceso de depuración se muestra en dos paneles en la parte inferior de la ventana del Editor de consultas. Información sobre diferentes tipos La información de depuración se agrupa en estos paneles en varias pestañas. El panel izquierdo contiene la pestaña Autos, la pestaña Locales y hasta cinco pestañas Watch. El panel derecho contiene las pestañas Pila de llamadas, Subprocesos, Puntos de interrupción, Ventana de comandos, Ventana inmediata y Salida. La pestaña Locales muestra valores de variables, la pestaña Pila de llamadas muestra valores de la pila de llamadas y la pestaña Puntos de interrupción muestra información de puntos de interrupción.

Para finalizar el proceso de depuración, ejecute una secuencia de comandos desde el menú principal Depurar --> Detener depuración o haga clic en el botón azul en la barra de herramientas del depurador.

SQL Server 2012 agrega varias características nuevas al depurador integrado en SQL Server Management Studio. Ahora puede realizar varias de las siguientes operaciones en él:

    Especifique una condición de punto de interrupción. Condición de punto de interrupción es una expresión SQL cuyo valor evaluado determina si la ejecución del código se detendrá en un punto determinado o no. Para especificar una condición de punto de interrupción, haga clic derecho en el icono de punto de interrupción rojo y seleccione Condición en el menú contextual. Se abre el cuadro de diálogo Condición de punto de interrupción, que le permite ingresar la expresión booleana requerida. Además, si necesita detener la ejecución si la expresión es verdadera, debe configurar el interruptor Es verdadero. Si es necesario detener la ejecución si la expresión ha cambiado, entonces debe configurar el interruptor Cuando se cambió.

    Especifique el número de visitas al punto de interrupción. El recuento de aciertos es la condición para detener la ejecución en un punto determinado en función del número de veces que se alcanzó ese punto de interrupción durante la ejecución. Cuando se alcanza el número especificado de pases y cualquier otra condición especificada para un punto de interrupción determinado, el depurador realiza la acción especificada. La condición de aborto de ejecución basada en el número de aciertos puede ser una de las siguientes:

    1. incondicional (acción predeterminada) (romper siempre);

      si el número de visitas es igual al valor especificado (se interrumpe cuando su recuento es igual a un valor especificado);

      si el número de visitas es un múltiplo de un valor especificado (se interrumpe cuando el recuento de visitas es igual a un múltiplo de un valor especificado);

      Se rompe cuando su recuento es mayor o igual a un valor específico.

    Para establecer el número de aciertos durante la depuración, haga clic con el botón derecho en el icono del punto de interrupción requerido en la pestaña Puntos de interrupción, seleccione Recuento de aciertos en el menú contextual y luego seleccione una de las condiciones en el cuadro de diálogo Recuento de aciertos del punto de interrupción que se abre en la lista anterior. Para las opciones que requieren un valor, ingréselo en el cuadro de texto a la derecha de la lista desplegable de condiciones. Para guardar las condiciones especificadas, haga clic en Aceptar.

    Especifique un filtro de punto de interrupción. Un filtro de punto de interrupción limita la operación del punto de interrupción solo a computadoras, procesos o subprocesos específicos. Para establecer un filtro de punto de interrupción, haga clic con el botón derecho en el punto de interrupción que desee y seleccione Filtrar en el menú contextual. Luego, en el cuadro de diálogo Filtros de punto de interrupción que se abre, especifique los recursos a los que desea restringir la ejecución de este punto de interrupción. Para guardar las condiciones especificadas, haga clic en Aceptar.

    Especifique una acción en un punto de interrupción. La condición When Hit especifica la acción que se debe realizar cuando la ejecución por lotes alcanza un punto de interrupción determinado. De forma predeterminada, cuando se cumplen tanto la condición de recuento de visitas como la condición de detención, se cancela la ejecución. Alternativamente, se puede mostrar un mensaje preespecificado.

    Para especificar qué hacer cuando se alcanza un punto de interrupción, haga clic con el botón derecho en el icono rojo del punto de interrupción y seleccione Cuando se alcanza en el menú contextual. En el cuadro de diálogo Cuando se alcanza el punto de interrupción que se abre, seleccione la acción que desea realizar. Para guardar las condiciones especificadas, haga clic en Aceptar.

    Utilice la ventana de visualización rápida. Puede ver el valor de una expresión Transact-SQL en la ventana QuickWatch y luego guardar la expresión en la ventana Inspección. Para abrir la ventana Quick Watch, seleccione Quick Watch en el menú Depurar. La expresión en esta ventana se puede seleccionar de la lista desplegable Expresión o ingresar en este campo.

    Utilice la información sobre herramientas de Información rápida. Cuando pasa el mouse sobre un ID de código, aparece Información rápida ( Breve información) muestra su anuncio en una ventana emergente.




Arriba