SQL como lenguaje de definicion de datos - SanchezFelipe01/modewiki GitHub Wiki
¿Qué es SQL?
SQL (Structured Query Language) es un lenguaje para la consulta y administración de la información almacenada un bases de datos. SQL permite realizar operaciones como:
- Consulta de información
- Inserción de nuevos datos
- Actualización de información
- Eliminación de datos
¿Por qué usar SQL?
SQL es un lenguaje que presenta facilidades como:
-
Fácil de escribir: Las instrucciones en código que recibe SQL son muy similares al lenguaje natural, lo cual hace más simple su escritura y su comprensión. Por ejemplo, si queremos crear una tabla debemos usar la instrucción CREATE TABLE NombreTabla
-
Es un lenguaje declarativo: El anterior punto se puede considerar como consecuencia de este. Ser un lenguaje declarativo significa que debemos decirle a SQL lo que queremos que haga, más no como hacerlo. El lenguaje se encarga de llevar a cabo la instrucción que se le proporcionó "por debajo de la mesa".
-
Optimización: SQL posee mecanismos para optimizar sus operaciones de consulta, actualización, inserción, etc.
-
Tipos de valores: A la hora de definir los atributos a parte de su nombre se debe especificar el tipo de dato. SQL soporta una gran variedad de tipos de datos, los más comunes son:
- CHAR: Cadena de caracteres (letras, números, signos, etc) de longitud fija.
- VARCHAR: Cadena de caracteres (letras, números, signos, etc) de longitud variable.
- INTEGER: Tipo de dato para representar números enteros.
- NUMERIC: Se usa para representar números dada un tamaño máximo y cantidad de decimales.
- DATETIME: Tipo de dato que almacena fechas.
Sintaxis de SQL
A continuación se muestran las instrucciones para las operaciones básicas en SQL, se debe tener en cuenta que estas instrucciones pueden variar dependiendo del dialecto que se use.
Crear Tablas
Vamos a crear una tabla para la entidad PlayList. La instrucción es muy simple y muy similar al lenguaje natural:
CREATE TABLE PlayList(
);
Esta tabla esta incompleta puesto que aun falta sus atributos. Ahora se definirán algunos para esta tabla.
Recuerda...
Se debe poner punto y coma (';') una vez termine la instrucción.
Definir Atributos
Según nuestro ejemplo, la entidad PlayList posee dos atributos: id (su clave primaria) y nombre. Vamos a incluir estos dentro de la declaración de la tabla:
CREATE TABLE PlayList(
id CHAR(4 CHAR) NOT NULL,
nombre VARCHAR(30 CHAR) NOT NULL,
);
Al definir atributos estos se deben listar dentro de su respectiva tabla, colocando el nombre del atributo seguido de su tipo de dato. Adicionalmente se pueden agregar restricciones a los atributos como se muestra en el ejemplo, la etiqueta NOT NULL indica que dichos atributos no deben permitir valores nulos.
Recuerda...
Una vez terminada la declaración de un atributo se debe poner una coma (',') para poder declarar el siguiente atributo.
Definir Llaves primarias
El atributo id de la tabla PlayList aun no está asignado como clave primaria de la tabla. Para definir este atributo como clave primaria se usa la siguiente instrucción después de la creación de la tabla:
ALTER TABLE PlayList ADD CONSTRAINT PlayList_pk PRIMARY KEY ( id );
Insertar información dentro de un Tabla
Una vez nuestra tabla este creada, podemos insertar registros en ella. Para ello se usa la instrucción INSERT:
INSERT INTO PlayList Values ('P001', 'Música Pop');
Después de ejecutar esta línea la tabla PlayList tendrá un registro identificado mediante el id = 'P001'.
id | nombre |
---|---|
P001 | Música Pop |
Es importante aclara que la anterior instrucción solo funcionará correctamente si se le pasan los datos en el orden adecuado, es decir, como al momento de crear la tabla declaramos primero el atributo id y luego el atributo nombre entonces a la hora de insertar debemos pasar los atributos en ese mismo orden. De no hacer esto podría ocurrir un error, como por ejemplo asignar una cadena de caracteres a un atributo de tipo INTERGER.
Para evitar esto, podemos modificar un poco la instrucción INSERT. Crearemos una entidad Prueba para dar el ejemplo:
CREATE TABLE Prueba(
campo1 VARCHAR(30 CHAR) NOT NULL,
campo2 VARCHAR(30 CHAR),
campo3 VARCHAR(30 CHAR),
campo4 VARCHAR(30 CHAR),
campo5 VARCHAR(30 CHAR),
);
ALTER TABLE Prueba ADD CONSTRAINT Prueba_pk PRIMARY KEY ( campo1 );
Ahora usamos al instrucción INSERT para agregar un registro:
INSERT INTO Prueba Values ('atributo1', 'atributo2', 'atributo3', 'atributo4', 'atributo5');
La tabla Prueba se ve así:
campo1 | campo2 | campo3 | campo4 | campo5 |
---|---|---|---|---|
atributo1 | atributo2 | atributo3 | atributo4 | atributo5 |
Ahora supongamos que queremos añadir un registro solo con CAMPO1 y CAMPO3. Se usa INSERT de la siguiente manera:
INSERT INTO Prueba (campo1, campo3) VALUES ('atributo11', 'atributo33');
Luego la tabla queda así:
campo1 | campo2 | campo3 | campo4 | campo5 |
---|---|---|---|---|
atributo1 | atributo2 | atributo3 | atributo4 | atributo5 |
atributo11 | atributo33 |
Consultar información en Tablas
Para consultar registro previamente creados se emplea la palabra clave SELECT. Vamos a crear algunos registros en la tabla PlayList para ver el funcionamiento de SELECT. La palabra clave WHERE también es muy importante aquí.
INSERT INTO PlayList Values ('P002', 'Rock');
INSERT INTO PlayList Values ('P003', 'Clasicos');
INSERT INTO PlayList Values ('P004', 'Mix');
La tabla se vería así:
id | nombre |
---|---|
P001 | Música Pop |
P002 | Rock |
P003 | Clasicos |
P004 | Mix |
SELECT * FROM PlayList;
Bajo esta instrucción, SQL nos devuelve todos los registros de la tabla PlayList:
id | nombre |
---|---|
P001 | Música Pop |
P002 | Rock |
P003 | Clasicos |
P004 | Mix |
Empleemos la palabra clave WHERE:
SELECT * FROM PlayList WHERE id = 'P001';
Ahora usamos un filtro, SQL nos retorna el registro con id = 'P001'
id | nombre |
---|---|
P001 | Música Pop |
Podemos filtrar por varias condiciones mediante la palabra clave AND:
SELECT * FROM PlayList WHERE id = 'P002' AND nombre = 'Rock';
Obtenemos:
id | nombre |
---|---|
P002 | Rock |
(En este caso usar varios filtros no es muy útil debido a que la entidad solo tiene dos atributos)
Por último, SELECT también retorna los campos que le solicitemos:
SELECT nombre FROM PlayList;
nombre |
---|
Música Pop |
Rock |
Clasicos |
Mix |
Actualizar información de una Tabla
Para actualizar un atributo de un registro usaremos las palabras clave UPDATE, SET y WHERE. Supongamos que deseamos cambiar el nombre de la PlayList 'Música Pop' a simplemente 'Pop', se hace así:
UPDATE PlayList SET nombre = 'Pop' WHERE id = 'P001';
Se muestra la tabla después de ejecutada la instrucción:
id | nombre |
---|---|
P001 | Pop |
P002 | Rock |
P003 | Clasicos |
P004 | Mix |
Eliminar Registros en Tablas
La palabra clave DELETE es la encargada de borrar registros de un tabla especifica.
DELETE FROM PlayList WHERE id = 'P002';
El resultado es:
id | nombre |
---|---|
P001 | Pop |
P003 | Clasicos |
P004 | Mix |