Sintaxis en SQL - GCruz45/Wiki_MSI GitHub Wiki
Una ventaja de la sintaxis de SQL es que usa lenguaje natural para muchos de sus comandos, lo que lo hace legible. Los archivos de SQL son de tipo Texto Plano y su extensión más común es .sql
Comandos comunes
SQL cuenta con más de 800 palabras reservadas, las cuales no pueden ser usadas como identificadores. A pesar de este gran número, los comandos (combinaciones de palabras reservadas e identificadores) más usados son los siguientes:
- SELECT: Muestra los datos indicados de una base de datos.
Ej:
SELECT nombreColumna1, nombreColumna2 FROM nombreTabla;
SELECT * FROM nombreTabla;Selecciona todas las columnas
- UPDATE: Modifica los valores de las columnas indicadas si satisfacen cierta condición, que normalmente es que la llave primaria tenga cierto valor.
Ej:
UPDATE nombreTabla SET nombreColumna1 = 'nuevoValor1', nombreColumna2 = 'nuevoValor2' WHERE idTupla = 1;
- DELETE: Elimina todas las tuplas de una relación que cumplan una condición indicada. Si no se provee dicha condición, elimina todas las tuplas.
Ej:
DELETE FROM nombreTabla WHERE nombreCondicion;
- INSERT INTO: Agrega nuevas tuplas a cierta tabla. Se puede escribir de dos maneras: especificando a qué columna corresponden los valores a agregar, o sin especificar, en cuyo caso SQL asume que los valores son dados en el orden en el que se encuentran las columnas en la tabla.
Ej1:
INSERT INTO nombreTabla (columna1, columna2, ...) VALUES (valorColumna1, valorColumna2, ...);
Ej2:
INSERT INTO nombreTabla VALUES (valorColumna1, ValorColumna2, ...);
- CREATE DATABASE: Inicializa una nueva base de datos.
Ej:
CREATE DATABASE nombreDB;
- CREATE TABLE: Crea una nueva tabla. Suele indicarse inmediatamente el nombre de las columnas y el dominio de sus valores.
Ej:
CREATE TABLE nombreTabla (columna1 tipoDato, columna2 tipoDato, column3 tipoDato, ...);
- ALTER TABLE: Agrega, modifica o elimina una columna en una tabla. Su sintaxis cambia un poco según el caso.
Ej1:
ALTER TABLE nombreTabla ADD nombreColumna tipoDato;
Ej2:
ALTER TABLE nombreTabla DROP nombreColumna;Elimina la columna especificada
Ej3:
ALTER TABLE nombreTabla ALTER nombreColumna tipoDato;Altera el dominio de la columna indicada
- DROP TABLE: Elimina la tabla del nombre indicado.
Ej:
DROP TABLE nombreTabla;
- CREATE INDEX: Crea índices que son usados para agilizar las consultas de la base de datos por parte del usuario de base de datos. El usuario final no tiene acceso a estos. Nota: Actualizar tablas con índices es más demorado, pues los índices también deben ser actualizados en el proceso.
Ej:
CREATE INDEX idx_nombrePersona ON Personas (nombre, apellido);La sintaxis para crear índices suele cambiar entre DBMS diferentes
- DROP INDEX: Elimina un indice ya existente.
Ej:
DROP INDEX nombreTabla.nombreIndice;Esta sintaxis cambia mucho entre DBMS diferentes
Note que la sintaxis para declarar propiedades de una tabla es:
nombre_atributo tipoAtributo
Tipos comunes de datos/dominios
Entonces, vale conocer los tipos más comunes de datos:
- CHAR(n): [n: numero de caracteres] Cadenas de caracteres de tamaño fijo. Usa siempre un espacio de n caracteres. Admite hasta 8000 caracteres.
- VARCHAR(n): [n: numero de caracteres] Cadenas de caracteres de tamaño variado. Usa espacio segun lo necesario. Admite hasta 8000 caracteres. Existe NVARCHAR(n), con un limite de 4000 caracteres, pero que admite UNICODE.
- NUMERIC(p,s): [p: numero de digitos. 18 por defecto, s: numeros decimales. Menor que p] Números decimales entre -10^38 +1 y 10^38–1.
- DATETIME: Guarda la fecha en un formato YYYY-MM-DD HH:MM:SS.sss, donde sss son los milisegundos del momento dado. Si los valores de reloj son cero, se omiten. Permite fechas desde Enero 1, 1753 hasta Diciembre 31, 9999
- INT: Enteros con valores entre +-2,147,483,648.