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