SQL (Por Sus Siglas en Inglés Structured Query Language en Español Lenguaje de Consulta Estructurada) Es Un Lenguaje de
SQL (Por Sus Siglas en Inglés Structured Query Language en Español Lenguaje de Consulta Estructurada) Es Un Lenguaje de
SQL (Por Sus Siglas en Inglés Structured Query Language en Español Lenguaje de Consulta Estructurada) Es Un Lenguaje de
SQL
Desarrollador
IBM
ISO/IEC 9075-1:2008
Información general
Extensión de archivo .sql
Tipo de MIME application/x-
sql
Lanzamiento inicial 1986
Última versión SQL:2012
2012
Tipo de formato Base de datos
Estándar(es) ISO/IEC 9075
Formato abierto
Originalmente basado en el álgebra
relacional y en el cálculo relacional, SQL
consiste en un lenguaje de definición de
datos, un lenguaje de manipulación de
datos y un lenguaje de control de datos. El
alcance de SQL incluye la inserción de
datos, consultas, actualizaciones y
borrado, la creación y modificación de
esquemas y el control de acceso a los
datos. También el SQL a veces se describe
como un lenguaje declarativo, también
incluye elementos procesales.
Orígenes y evolución
Los orígenes de SQL están ligados a las
bases de datos relacionales,
específicamente las que residían en
máquinas IBM bajo el sistema de gestión
System R, desarrollado por un grupo de la
IBM en San José, California.
1986 SQL-86 SQL-87 Primera publicación hecha por ANSI. Confirmada por la
Organización Internacional de Normalización en 1987.
2005 SQL:2005 ISO/IEC 9075-14:2005 Define las maneras en las cuales SQL se
puede utilizar conjuntamente con XML. Define maneras de importar
y guardar datos XML en una base de datos SQL, manipulándolos
dentro de la base de datos y publicando el XML y los datos SQL
convencionales en forma XML. Además, proporciona facilidades
que permiten a las aplicaciones integrar dentro de su código SQL el
uso de XQuery, lenguaje de consulta XML publicado por el W3C
(World Wide Web Consortium) para acceso concurrente a datos
ordinarios SQL y documentos XML.
Características generales de
SQL
SQL es un lenguaje de acceso a bases de
datos que explota la flexibilidad y potencia
de los sistemas relacionales y permite así
gran variedad de operaciones.[5]
Optimización
Lenguaje de definición de
datos (DDL)
El lenguaje de definición de datos (en
inglés Data Definition Language, o DDL), es
el que se encarga de la modificación de la
estructura de los objetos de la base de
datos. Incluye órdenes para modificar,
borrar o definir las tablas en las que se
almacenan los datos de la base de datos.
Existen cuatro operaciones básicas:
CREATE, ALTER, DROP y TRUNCATE.[6]
CREATE | CREAR
DROP | ELIMINAR
Este comando elimina un objeto de la
base de datos. Puede ser una tabla, vista,
índice, trigger, función, procedimiento o
cualquier objeto que el motor de la base
de datos soporte. Se puede combinar con
la sentencia ALTER.
Ejemplo
TRUNCATE | TRUNCAR
Ejemplo
TRUNCATE TABLE
'NOMBRE_TABLA';
Lenguaje de manipulación
de datos DML(Data
Manipulation Language)
Definición
SELECT | SELECCIONAR
Forma básica
SELECT [ALL | DISTINCT ]
<nombre_campo>
[{,<nombre_campo>}]
FROM <nombre_tabla>|
<nombre_vista>
[{,<nombre_tabla>|
<nombre_vista>}]
[ORDER BY <nombre_campo>|
<indice_campo> [ASC | DESC]
[{,
<nombre_campo>|
<indice_campo> [ASC | DESC
]}]]
Palabra clave que indica que la
SELECT sentencia de SQL que queremos
ejecutar es de selección.
Indica que queremos
seleccionar todos los valores.
ALL
Es el valor por defecto y no
suele especificarse casi nunca.
Indica que queremos
DISTINCT seleccionar sólo los valores
distintos.
FROM Indica la tabla (o tablas) desde
la que queremos recuperar los
datos. En el caso de que exista
más de una tabla se denomina a
la consulta "consulta
combinada" o "join". En las
consultas combinadas es
necesario aplicar una condición
de combinación a través de una
cláusula WHERE.
Especifica una condición que
debe cumplirse para que los
WHERE datos sean devueltos por la
consulta. Admite los operadores
lógicos AND y OR.
Especifica la agrupación que se
GROUP da a los datos. Se usa siempre
BY en combinación con funciones
agregadas.
HAVING Especifica una condición que
debe cumplirse para que los
datos sean devueltos por la
consulta. Su funcionamiento es
similar al de WHERE pero
aplicado al conjunto de
resultados devueltos por la
consulta. Debe aplicarse
siempre junto a GROUP BY y la
condición debe estar referida a
los campos contenidos en ella.
Presenta el resultado ordenado
por las columnas indicadas. El
ORDER orden puede expresarse con
BY ASC (orden ascendente) y DESC
(orden descendente). El valor
predeterminado es ASC.
Ejemplo:
Para formular una consulta a la tabla
Coches y recuperar los campos matrícula,
marca, modelo, color, número_kilómetros,
num_plazas debemos ejecutar la siguiente
consulta. Los datos serán devueltos
ordenados por marca y por modelo en
orden ascendente, de menor a mayor. La
palabra clave FROM indica que los datos
serán recuperados de la tabla Coches.
Cláusula WHERE
La cláusula WHERE es la instrucción que
nos permite filtrar el resultado de una
sentencia SELECT. Habitualmente no
deseamos obtener toda la información
existente en la tabla, sino que queremos
obtener sólo la información que nos
resulte útil en ese momento. La cláusula
WHERE filtra los datos antes de ser
devueltos por la consulta. Cuando en la
Cláusula WHERE queremos incluir un tipo
texto, debemos incluir el valor entre
comillas simples.
Ejemplos:
En nuestro ejemplo, se desea consultar un
coche en concreto, para esto se agregó
una cláusula WHERE. Esta cláusula
especifica una o varias condiciones que
deben cumplirse para que la sentencia
SELECT devuelva los datos. En este caso
la consulta devolverá sólo los datos del
coche con matrícula para que la consulta
devuelva sólo los datos del coche con
matrícula MF-234-ZD o bien la
matrícula FK-938-ZL . Se puede utilizar
la cláusula WHERE solamente, ó en
combinación con tantas condiciones
como queramos.
SELECT matricula, marca,
modelo, color,
numero_kilometros,
num_plazas
FROM Coches
SELECT matricula,marca,
modelo, color,
numero_kilometros,
num_plazas
FROM coches
WHERE NOT matricula = 'MF-
234-ZD';
Cláusula ORDER BY
Ejemplos:
'SELECT' matricula,
marca,
modelo,
color,
numero_kilometros,
num_plazas
'FROM' coches
'ORDER BY' marca 'ASC', modelo 'DESC';
Este ejemplo, selecciona todos los
campos matricula, marca, modelo, color,
numero_kilometros y num_plazas de la
tabla coches, ordenándolos por los
campos marca y modelo, marca en forma
ascendente y modelo en forma
descendente.
SELECT matricula,
marca,
modelo,
color,
numero_kilometros,
num_plazas
FROM coches
ORDER BY 2;
SUBCONSULTAS
INSERT | INSERTAR
Ejemplo
INSERT INTO
agenda_telefonica (nombre,
numero)
VALUES ('Roberto Jeldrez',
4886850);
Cuando se especifican todos los valores
de una tabla, se puede utilizar la sentencia
acortada:
INSERT INTO
agenda_telefonica
VALUES ('Jhonny Aguilar',
080473968);
Formas avanzadas
INSERT INTO
agenda_telefonica VALUES
('Roberto Fernández',
'4886850'), ('Alejandro
Sosa', '4556550');
Que podía haber sido realizado por las
sentencias
INSERT INTO
agenda_telefonica VALUES
('Roberto Fernández',
'4886850');
INSERT INTO
agenda_telefonica VALUES
('Alejandro Sosa',
'4556550');
UPDATE
Ejemplo
UPDATE My_table SET field1 =
'updated value asd' WHERE
field2 = 'N';
DELETE
Forma básica
Ejemplo
DELETE FROM My_table WHERE
field2 = 'N';
Recuperación de clave
Los diseñadores de base de datos que
usan una clave suplente como la clave
principal para cada tabla, se ejecutará en
el ocasional escenario en el que es
necesario recuperar automáticamente la
base de datos, generando una clave
primaria de una sentencia SQL INSERT
para su uso en otras sentencias SQL. La
mayoría de los sistemas no permiten
sentencias SQL INSERT para retornar fila
de datos. Por lo tanto, se hace necesario
aplicar una solución en tales escenarios.
Utilizando un procedimiento
almacenado específico de base de
datos que genera la clave suplente,
realice la operación INSERT, y finalmente
devuelve la clave generada.
Utilizando una sentencia SELECT
especifica de base de datos, sobre una
tabla temporal que contiene la última
fila insertada. DB2 implementa esta
característica de la siguiente manera:
SELECT *
FROM NEW TABLE ( INSERT INTO
phone_book VALUES (
'Cristobal
Jeldrez','0426.817.10.30' )
) AS t
Disparadores
Los disparadores, también conocidos
como desencadenantes (triggers en
inglés) son definidos sobre la tabla en la
que opera la sentencia INSERT, y son
evaluados en el contexto de la operación.
Los desencadenantes BEFORE INSERT
permiten la modificación de los valores
que se insertarán en la tabla. Los
desencadenantes AFTER INSERT no
puede modificar los datos de ahora en
adelante, pero se puede utilizar para iniciar
acciones en otras tablas, por ejemplo para
aplicar mecanismos de auditoría Excel.
DB2
Firebird
HSQL
Informix
InterBase
MariaDB
Microsoft SQL Server
MySQL
Oracle
PostgreSQL
PervasiveSQL
SQLite
Sybase ASE
Interoperabilidad
El lenguaje de consultas de los diferentes
sistemas de gestión de bases de datos
son incompatibles entre ellos y no
necesariamente siguen completamente el
estándar. En particular, la sintaxis de fecha
y tiempo, la concatenación de cadenas,
nulas, y la comparación de textos en
cuanto al tratamiento de mayúsculas y
minúsculas varían de un proveedor a otro.
Una excepción particular es PostgreSQL,
que se esfuerza por lograr el cumplimiento
del estándar.[8]
Véase también
AQL
FSQL
Lenguaje de definición de datos
Modelo de base de datos
Inyección SQL
Referencias
1. Morteo, Bocalandro, Francisco,
Nicolás (2004). Un enfoque práctico
de SQL. Ediciones Cooperativas.
ISBN 987-1076-61-4.
2. EF Codd; A relational model of data
for large shared data banks. Comm.
ACM, 13 (1970), pp. 377-387.
3. Eisenberg et al.: SQL:2003 Has Been
Published.
4. Aprobación de SQL 2008.
5. Chapple, Mike. «SQL Fundamentals» .
En About.com. Databases.
Consultado el 17 de octubre de 2015.
6. Rockoff, Larry (2011). Course
Technology/Cengage Learning, ed.
The language of SQL.
7. Morteo, Bocalandro., Francisco,
Nicolás (2004). Un enfoque práctico
de SQL. Ediciones cooperativas.
ISBN 987-1076-61-4.
8. «About PostgreSQL» . PostgreSQL 9.1
official website. PostgreSQL Global
Development Group. 2012.
Consultado el 8 de junio de 2016.
«PostgreSQL prides itself in standards
compliance. Its SQL implementation
strongly conforms to the ANSI-
SQL:2008 standard».
9. «Basic Elements of Oracle SQL: Data
Types» . Oracle Database SQL
Language Reference 11g Release 2
(11.2). Oracle Database
Documentation Library. Redwood City,
CA: Oracle USA, Inc. Consultado el 8
de junio de 2016.
Datos: Q47607
Multimedia: Structured Query
Language
Obtenido de
«https://es.wikipedia.org/w/index.php?
title=SQL&oldid=119195776»