El lenguaje de consulta estructurado (SQL) es uno de los bloques de construcción fundamentales de la arquitectura de base de datos moderna. SQL define los métodos utilizados para crear y manipular bases de datos relacionales en todas las plataformas principales. A primera vista, el lenguaje puede parecer intimidante y complejo, pero no es tan difícil.
Acerca de SQL
La pronunciación correcta de SQL es un tema polémico dentro de la comunidad de bases de datos. En su estándar SQL, el American National Standards Institute declaró que la pronunciación oficial es "es queue el. "Sin embargo, muchos profesionales de bases de datos han adoptado la pronunciación de la jerga" secuela ". Al igual que con la pronunciación de GIF, no hay una respuesta correcta.
SQL viene en muchos sabores. Las bases de datos de Oracle utilizan su PL / SQL patentado. Microsoft SQL Server utiliza Transact-SQL. Todas las variaciones se basan en el estándar de la industria ANSI SQL.
Esta introducción utiliza comandos SQL compatibles con ANSI que funcionan en cualquier sistema de base de datos relacional moderno.
DDL y DML
Los comandos SQL se pueden dividir en dos sub-lenguajes principales. El lenguaje de definición de datos contiene los comandos que se utilizan para crear y destruir bases de datos y objetos de bases de datos. Una vez definida la estructura de la base de datos con DDL, los administradores y usuarios de la base de datos pueden utilizar el lenguaje de manipulación de datos para insertar, recuperar y modificar los datos que contiene.
SQL admite un tercer tipo de sintaxis llamado Lenguaje de control de datos. DCL gobierna el acceso de seguridad a los objetos dentro de la base de datos. Por ejemplo, un Secuencia de comandos DCL otorga o revoca cuentas de usuario específicas el derecho a leer o escribir en tablas dentro de una o más áreas definidas de la base de datos. En la mayoría de los entornos administrados de múltiples usuarios, los administradores de bases de datos suelen ejecutar scripts DCL.
Comandos del lenguaje de definición de datos
El lenguaje de definición de datos se utiliza para crear y destruir bases de datos y objetos de bases de datos. Estos comandos los utilizan principalmente los administradores de bases de datos durante las fases de instalación y eliminación de un proyecto de base de datos. DDL gira en torno a cuatro comandos principales:crear, usar, alterar, y soltar.
Crear
La crear comando establece bases de datos, tablas o consultas en su plataforma. Por ejemplo, el comando:
CREAR empleados de BASE DE DATOS;
crea una base de datos vacía llamada empleados en su DBMS. Después de crear la base de datos, el siguiente paso es crear tablas que contengan datos. Otra variante del crear comando logra este propósito. El comando:
CREATE TABLE personal_info (first_name char (20) no es nulo, last_name char (20) no es nulo, employee_id int no es nulo);
establece una mesa titulada información personal en la base de datos actual. En el ejemplo, la tabla contiene tres atributos: primer nombre, apellido, y ID de empleado junto con alguna información adicional.
Usar
La usar comando especifica la base de datos activa. Por ejemplo, si actualmente está trabajando en la base de datos de ventas y desea emitir algunos comandos que afectarán la base de datos de empleados, préncelos con el siguiente comando SQL:
USE empleados;
Vuelva a verificar la base de datos en la que está trabajando antes de emitir comandos SQL que manipulen datos.
Alterar
Después de haber creado una tabla dentro de una base de datos, modifique su definición mediante el alterar comando, que cambia a la estructura de una tabla sin borrarla y volver a crearla. Eche un vistazo al siguiente comando:
ALTER TABLE personal_info AÑADIR salario nulo;
Este ejemplo agrega un nuevo atributo a la tabla personal_info: el salario de un empleado. La dinero El argumento especifica que el salario de un empleado se almacena usando un formato de dólares y centavos. Finalmente, el nulo La palabra clave le dice a la base de datos que está bien que este campo no contenga ningún valor para un empleado determinado.
Soltar
El dominio final del lenguaje de definición de datos, soltar, elimina todos los objetos de la base de datos de nuestro DBMS. Por ejemplo, para eliminar permanentemente la tabla personal_info que creamos, use el siguiente comando:
DROP TABLE personal_info;
De manera similar, el siguiente comando se usaría para eliminar toda la base de datos de empleados:
DROP DATABASE empleados;
Utilice este comando con cuidado. La soltar comando elimina estructuras de datos enteras de su base de datos. Si desea eliminar registros individuales, utilice el Eliminar dominio del lenguaje de manipulación de datos.
Comandos de lenguaje de manipulación de datos
El lenguaje de manipulación de datos se utiliza para recuperar, insertar y modificar información de la base de datos. Estos comandos DML ofrecen el marco típico para interactuar con la base de datos de forma rutinaria.
Insertar
La insertar El comando agrega registros a una tabla existente. Volviendo al ejemplo personal_info de la sección anterior, imagine que nuestro departamento de recursos humanos necesita agregar un nuevo empleado a su base de datos. Utilice un comando similar a este:
INSERT INTO personal_info
valores ('bart', 'simpson', 12345, $ 45000);
Tenga en cuenta que hay cuatro valores especificados para el registro. Estos corresponden a los atributos de la tabla en el orden en que fueron definidos: primer nombre, apellido, ID de empleado y salario.
Seleccione
La Seleccione El comando es el comando más utilizado en SQL. Recupera información específica de una base de datos operativa. Eche un vistazo a algunos ejemplos, nuevamente usando la tabla personal_info de la base de datos de empleados.
El comando que se muestra a continuación recupera toda la información contenida en la tabla personal_info. El asterisco es un carácter comodín en SQL.
SELECCIONE *
FROM personal_info;
Alternativamente, limite los atributos que se recuperan de la base de datos especificando qué se selecciona. Por ejemplo, el departamento de Recursos Humanos puede requerir una lista de los apellidos de todos los empleados de la empresa. El siguiente comando SQL recuperaría solo esa información:
SELECCIONAR apellido
FROM personal_info;
La dónde La cláusula limita los registros que se recuperan a aquellos que cumplen con los criterios especificados. El director ejecutivo podría estar interesado en revisar los registros de personal de todos los empleados altamente remunerados. El siguiente comando recupera todos los datos contenidos en personal_info para registros que tienen un valor de salario superior a $ 50,000:
SELECCIONE *
FROM personal_info
DONDE salario> $ 50000;
Actualizar
La actualizar El comando modifica la información contenida en una tabla, ya sea de forma masiva o individual. Suponga que la empresa otorga a todos los empleados un aumento anual del 3 por ciento del costo de vida en su salario. El siguiente comando SQL aplica este aumento a todos los empleados almacenados en la base de datos:
ACTUALIZAR personal_info
SET salario = salario * 1.03;
Cuando el nuevo empleado Bart Simpson demuestra un desempeño más allá del llamado del deber, la gerencia desea reconocer sus logros estelares con un aumento de $ 5,000. La cláusula WHERE señala a Bart para este aumento:
ACTUALIZAR personal_info
SET salario = salario + 5000
DONDE employee_id = 12345;
Borrar
Finalmente, echemos un vistazo a Eliminar mando. Verá que la sintaxis de este comando es similar a la de los otros comandos DML. El comando DELETE, con un dónde cláusula, eliminar un registro de una tabla:
BORRAR DE personal_info
DONDE employee_id = 12345;
DML también admite campos agregados. en un Seleccione declaración, operadores matemáticos como suma y contar resumir datos dentro de una consulta. Por ejemplo, la consulta:
seleccione recuento (*) de personal_info;
cuenta el número de registros en la tabla.
Uniones de base de datos
A entrar La declaración combina datos en varias tablas para procesar de manera eficiente grandes cantidades de datos. Estas declaraciones son donde reside el verdadero poder de una base de datos.
Para explorar el uso de un básico entrar operación para combinar datos de dos tablas, continúe con el ejemplo usando la tabla personal_info y agregue una tabla adicional a la mezcla. Suponga que tiene una mesa llamada acción disciplinaria que fue creado con la siguiente declaración:
CREATE TABLE acción_disciplinaria (action_id int no nulo, employee_id int no nulo, comentarios char (500));
Esta tabla contiene los resultados de las acciones disciplinarias para los empleados de la empresa. No contiene ninguna información sobre el empleado que no sea el número de empleado.
Suponga que se le ha encomendado la tarea de crear un informe que enumere las acciones disciplinarias tomadas contra todos los empleados con un salario superior a $ 40,000. El uso de una operación JOIN, en este caso, es sencillo. Recupere esta información usando el siguiente comando:
SELECT personal_info.first_name, personal_info.last_name, disciplina_action.comments
FROM personal_info INNER ÚNETE a acción_disciplinaria ON personal_info.employee_id = disciplina_action.employee_id
DONDE personal_info.salary> 40000;
Tipos de combinaciones
Las uniones vienen en varios sabores. En la sentencia SQL, la primera tabla (normalmente llamada Cuadro A o el Mesa Izquierda) se une a la segunda tabla (normalmente llamada Cuadro B o el Mesa Derecha) de una manera consciente de la posición. Por lo tanto, si cambia el orden de las tablas en la declaración de combinación, los resultados de la operación serán diferentes. Los principales tipos de combinación incluyen:
- Unir internamente: Solo coincide con los registros en los que en condición coincide con los mismos registros en ambas tablas.
- Unión externa: Solo coincide con los registros de ambas tablas que excluir los resultados identificados en el en condición.
- Unión derecha: Coincide con todos los registros de la Tabla B más los registros de la Tabla A que coinciden en condición.
- Unión a la izquierda: Coincide con todos los registros de la Tabla A más los registros de la Tabla B que coinciden en condición.
- Unión cruzada: Coincide con todos los registros como si las tablas fueran idénticas. Este proceso genera algo llamado producto cartesiano. A menudo, las uniones cruzadas no son bienvenidas, porque coinciden con cada fila de la Tabla A, individualmente, con cada fila de la Tabla B. Por lo tanto, si la Tabla A ofrecía cinco registros y la Tabla B ofrecía 9 registros, una consulta de combinación cruzada ofrece 45 filas resultantes.