SQL es el lenguaje de consulta estructurado. Fue creado específicamente para administrar y acceder a datos almacenados en bases de datos relacionales. La primera empresa comercial en utilizar SQL fue Oracle, que todavía tiene su lenguaje de consulta SQL * Plus como base de todo su sistema de gestión de bases de datos relacionales (RDMS).
Hoy, MySQL, SQL Server, SAP y Sybase utilizan SQL para acceder a la base de datos. En esta guía, le ofreceremos la versión estándar de los comandos SQL, prestando especial atención a la implementación de Oracle en SQL * Plus.
ELECCIÓN DEL EDITOR: Recomendamos las herramientas de administración de infraestructura de SolarWinds para monitorear todas sus herramientas de Microsoft, incluido SQL Server. Necesita un conjunto de utilidades de monitoreo que puedan interactuar para cubrir todas las instalaciones que admiten su base de datos relacional.
Bases de datos relacionales
SQL gestiona bases de datos relacionales. Una base de datos relacional contiene tablas que están separadas para reducir la repetición de datos. El proceso de decidir sobre las agrupaciones adecuadas de categorías de datos se denomina “normalización.”En algunos casos, las demandas de rendimiento pueden dictar que las tablas funcionen mejor si no están completamente normalizadas. Este proceso se llama “desnormalización” y es una ocurrencia rara.
Cada tabla necesita una columna que identifique de forma única cada fila. Esto se llama “Clave primaria.”Las otras tablas que pueden unirse a esa entidad deben contener una referencia a la clave primaria en cada registro. Esa referencia se llama “clave externa.” Usted unirse tablas juntas haciendo coincidir la clave externa en una tabla con la clave primaria en otra. Esta acción se realiza con SQL. El Diagrama de entidad-relación es una referencia útil cuando decide cómo estructurar su declaración SQL.
Para acelerar el acceso, es normal colocar un índice en cada clave primaria en la base de datos. También es posible almacenar combinaciones de uso frecuente para crear tablas virtuales, que se denominan “puntos de vista.”
Un objeto de base de datos más es un desencadenar. Este es un fragmento de SQL que se inicia cada vez que se agrega un valor a una columna o se cambia. Un activador actualizará los valores en una columna en una tabla diferente u otras columnas en la misma tabla. Esto sucede si se agrega o cambia un valor en la columna en la que se coloca el disparador. También puede restringir los valores que se pueden ingresar en una columna.
DQL, DDL, DCL y DML
SQL incluye cuatro subconjuntos de comandos. Estos son Lenguaje de consulta de datos (DQL), Lenguaje de descripción de datos (DDL), Lenguaje de control de datos (DCL) y Lenguaje de manipulación de datos (DML).
En la mayoría de los proyectos, el Administrador de base de datos (DBA) es el único miembro del equipo que tiene los privilegios de usar DDL. Este grupo de comandos crea, cambia y elimina tablas, índices, disparadores y vistas..
DML se usa para agregar, cambiar o eliminar registros de tablas en la base de datos. El acceso a estas funciones SQL generalmente está restringido al personal de soporte o a los miembros principales y responsables de la comunidad de usuarios.
DQL se usa para generar informes desde la base de datos. Los programadores utilizan este subconjunto de comandos y también se puede poner a disposición de los usuarios finales para que puedan realizar sus propias consultas..
La gestión de los privilegios del usuario se almacena en la misma base de datos que los datos. Sin embargo, el acceso a estas tablas generalmente está restringido al DBA. La gestión del acceso del usuario se implementa a través de DCL.
Hay un comando SQL útil que no se incluye en las clasificaciones de DQL, DDL, DCL o DML. Esto es “describir“Que generalmente se implementa como DESC. Esto muestra la estructura de un objeto en la base de datos. En el caso de una tabla, mostrará una lista de columnas y el tipo de datos y el tamaño de cada una. Mostrará el SQL que creó una vista o un disparador y mostrará las columnas que están involucradas en un índice dado.
Operadores relacionales
La teoría detrás de las bases de datos relacionales fue definida por E. F. Codd en 1970. Dentro de la definición de Codd se encuentra el requisito de una herramienta de consulta que debe implementar ocho operaciones relacionales esenciales. Estos son:
- SELECCIONE
- PROYECTO
- UNIRSE
- PRODUCTO
- UNIÓN
- INTERSECARSE
- DIFERENCIA
- DIVIDIR
Debe dominar cada una de estas operaciones para acceder efectivamente a los datos de una base de datos relacional. Estos se explican a continuación..
SELECCIONE
SELECT fue originalmente llamado RESTRINGIR. Es la capacidad de extraer un registro o un grupo de registros coincidentes de una tabla en la base de datos. Además de ser una operación teórica, SELECCIONE es el nombre del comando principal en cualquier implementación de SQL. De hecho, toda la recuperación de datos se ejecuta con un SELECT. El comando es tan poderoso que puede modificarse de muchas, muchas maneras. La mayor parte del SQL que necesitará aprender son las “cláusulas” en una instrucción SELECT.
PROYECTO
PROYECTO es la capacidad de aislar una columna (o “atributo”) en una tabla. Esto siempre se implementa con una instrucción SELECT.
UNIRSE
JOIN vincula tablas en un atributo común. Utiliza la clave externa en una tabla para que coincida con los valores de la clave primaria en otra tabla. El acto efectivamente unifica dos tablas temporalmente. Esto se implementa como una cláusula en una instrucción SELECT. Una unión entre dos tablas dejará automáticamente de lado cualquier registro que no aparezca en ambas tablas de soporte. Un “unión externa“Mostrará registros que no coinciden en la otra tabla, dejando en blanco los campos que deberían haber sido proporcionados por la otra tabla.
PRODUCTO
PRODUCT también se conoce como “veces.”Esto se implementa como una instrucción SELECT que extrae datos de dos tablas, pero no especifica la unión entre ellas. En la vida real, hay muy pocas razones prácticas por las cuales alguien alguna vez actuaría en dos mesas. Por lo general, es una señal de advertencia de que ha escrito mal una cláusula JOIN. El resultado de un PRODUCTO es que cada registro calificado en una tabla coincide con cada registro calificado en la otra tabla. Entonces, si crea una instrucción SELECT a partir de dos tablas, cada una de las cuales tiene diez registros, los resultados serán un total de 100 registros.
UNIÓN
UNION es un operador común en la teoría de conjuntos. Si tiene dos conjuntos, la unión combina todos los miembros de ambos conjuntos. La duplicación se elimina de los resultados. En SQL, esto es implementado por O Operador booleano.
INTERSECARSE
INTERSECT es el otro operador principal de la teoría de conjuntos. Si tiene dos conjuntos, la intersección describe aquellos sujetos que son miembros de ambos conjuntos. Cualquier tema que sea miembro de solo uno de los dos conjuntos queda excluido de los resultados. En SQL, esto es implementado por Y Operador booleano.
DIFERENCIA
La DIFERENCIA también se conoce como “menos“Y en notación se representa con el signo menos (” – “). Hay varias formas de implementar una DIFERENCIA. Se puede crear incluyendo un booleano NO en los criterios de selección y también puede ser implementado por un MENOS operador seguido de una subconsulta.
DIVIDIR
DIVIDE es una operación inusual que, como PRODUCT, tiene muy pocas aplicaciones prácticas. Codd consideró a DIVIDE como la prueba de fuego de cualquier sistema relacional y su herramienta de consulta, por lo que cada implementación de SQL incluye esta capacidad solo para calificar para el título “relacional”. En realidad, nunca lo usará. La implementación de un DIVIDE requiere una serie de subconsultas que alimentan un MENOS en Oracle SQL * Plus y un EXCEPTO operador en algunas otras implementaciones de SQL, como SQL Server y PostgreSQL.
operadores booleanos
George Boole fue un matemático británico que murió en 1864. Inventó el álgebra booleana, que no tuvo aplicación práctica hasta que surgieron los campos de la informática y las bases de datos relacionales a fines del siglo XX. El álgebra booleana es fundamental para las operaciones de SQL: solo se puede escribir la consulta SQL más básica sin usar la lógica booleana. La lógica booleana también sustenta todos los motores de búsqueda. Los operadores booleanos clave en SQL son:
- Y
- O
- NO
Otro peculiar británico victoriano que debes conocer es Augustus de Morgan. Se le ocurrió una observación sobre la transformación en la teoría de conjuntos booleanos, de la que todos los programadores de SQL deben estar conscientes. Esto es que un NO puede alterar cómo funcionan un AND y un OR. La versión corta es que debe tener cuidado con el uso de corchetes en sus declaraciones para evitar consecuencias no deseadas. Por lo tanto, “y” y “o” también deben considerarse operadores booleanos importantes en SQL.
Y
Y implementa el INTERSECARSE en teoría de conjuntos. Si desea extraer registros de una base de datos que solo coinciden con dos requisitos y no solo con uno de esos criterios compuestos, entonces debe usar un AND. Por ejemplo, puede ejecutar un negocio de semillas y su base de datos contiene una tabla que almacena todas sus semillas con sus atributos. Un cliente llama y solo quiere begonias amarillas. Entonces, buscarías en tu base de datos especie = “begonia” Y color = “amarillo” para obtener el catálogo de semillas correcto.
O
O te da todos los miembros de dos conjuntos: es la UNIÓN en la teoría de conjuntos. Entonces, en su base de datos semilla, si ejecutó una consulta: especie = “begonia” O color = “amarillo”, obtendría resultados que incluyen rosas amarillas, begonia amarilla, begonias rosadas y narcisos amarillos. En este ejemplo, las begonias amarillas califican dos veces. En teoría relacional, solo se debe devolver un registro. Afortunadamente, SQL incluye el calificador DISTINTO, entonces entrando SELECCIONE DISTINTO * DE flores DONDE especie = “begonia” O color = “amarillo”, ese registro de begonia amarilla solo aparecería una vez.
NO
NO es fácil de entender. Excluye los resultados que produciría la siguiente declaración: Y NO, O NO. En la práctica, casi nunca usará “O NO” en una consulta. Si su cliente de semillas quisiera otro color de begonia que no sea amarillo, usaría especie = “begonia” Y NO color = “amarillo” seleccionar productos para ofrecer.
Soportes
De acuerdo con la Ley de De Morgan:
“La negación de una disyunción es la conjunción de las negaciones; y la negación de una conjunción es la disyunción de las negaciones “.
En inglés simple, use corchetes con cuidado en su declaración SQL cuando también incluya un NOT para evitar que sus AND se transformen en OR y viceversa. Las condiciones de horquillado juntas también pueden acortar sus criterios de selección. Por ejemplo, NO (especie = “begonia” Y color = “amarillo”) es lo mismo que NO especie = “begonia” O NO color = “amarillo”.
Extrayendo registros
Las diferentes implementaciones de SQL usan una sintaxis diferente, pero en esta guía, seguiremos el SQL * Plus de Oracle. La estructura básica de una selección de datos SQL es:
SELECCIONE
DESDE
l lenguaje de control de datos (DCL) se limita a los administradores de la base de datos. Este subconjunto de comandos se utiliza para otorgar o revocar permisos de acceso a la base de datos y para controlar la seguridad de la información almacenada en ella. En resumen, SQL es un lenguaje de consulta estructurado que se utiliza para administrar y acceder a datos almacenados en bases de datos relacionales. Oracle fue la primera empresa en utilizar SQL y todavía lo utiliza como base de su sistema de gestión de bases de datos relacionales. MySQL, SQL Server, SAP y Sybase también utilizan SQL para acceder a la base de datos. La versión estándar de los comandos SQL se ofrece en esta guía, prestando especial atención a la implementación de Oracle en SQL * Plus. Además, se recomienda el uso de herramientas de administración de infraestructura de SolarWinds para monitorear todas las herramientas de Microsoft, incluido SQL Server.