107 lines
2.8 KiB
MySQL
107 lines
2.8 KiB
MySQL
|
/*
|
||
|
S.Q.L. Structured Query Language
|
||
|
|
||
|
Diseñado para administrar y consultar sistemas de gestión de bases de datos relacionales
|
||
|
Maneja álgebra Y cálculo relacional para realizar consultas.
|
||
|
|
||
|
SQL es un lenguaje de definición, manipulación y contról de datos.
|
||
|
|
||
|
Permitiendo:
|
||
|
Inserción [INSERT], Consulta [SELECT], Modificación [UPDATE], Borrar [DELETE].
|
||
|
|
||
|
Además de la Creación [CREATE] y Modificación [UPDATE] de esquemas (schemas) y
|
||
|
control de acceso a los datos.
|
||
|
|
||
|
Tipos de datos básicos SQL:
|
||
|
-VARCHAR: Cadena de caracteres
|
||
|
|
||
|
-INTEGER: Enteros con o sin signo
|
||
|
|
||
|
-DATE : Fecha (año, mes y día)
|
||
|
|
||
|
-TIME : Hora (horas, minutos y segundos)
|
||
|
|
||
|
*/
|
||
|
-- Cración de una tabla
|
||
|
|
||
|
--CREATE TABLE nombre_tabla (
|
||
|
-- nombre_columna1 tipo_de_dato,
|
||
|
-- nombre_columna2 tipo_de_dato,
|
||
|
-- nombre_columna3 tipo_de_dato,
|
||
|
-- ....
|
||
|
--);
|
||
|
|
||
|
/*
|
||
|
Restricciones SQL
|
||
|
|
||
|
NOT NULL: Impide que el dato sea nulo.
|
||
|
UNIQUE: Impide que los datos se repitan.
|
||
|
PRIMARY KEY: Identifica cada registro de una tabla de forma única.
|
||
|
FOREIGN KEY: Identifica un registro de otra tabla de forma única.
|
||
|
CHECK: Asegura el cumplimiento de una condición para todos los valores en una columna.
|
||
|
DEFAULT: Valor insertado por defecto, al no especificar ninguno.
|
||
|
INDEX: Utilizados para crear y devolver datos de forma eficiente.
|
||
|
|
||
|
ej.
|
||
|
*/
|
||
|
|
||
|
CREATE TABLE categoria_libro (
|
||
|
CODIGO INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||
|
NOMBRE TEXT NOT NULL
|
||
|
);
|
||
|
|
||
|
-- Creación de una tabla a partir de otra
|
||
|
--CREATE TABLE nueva_tabla AS
|
||
|
-- SELECT columna1, columna2, ...
|
||
|
-- WHERE ...;
|
||
|
|
||
|
-- ej.
|
||
|
CREATE TABLE copia_libro AS
|
||
|
SELECT ISBN, TITULO FROM libro
|
||
|
|
||
|
/*
|
||
|
Modificando el esquema de una tabla
|
||
|
|
||
|
ALTER TABLE: Agregar, eliminar o modificar, columnas en una tabla;
|
||
|
ALTER TABLE nombre_tabla nombre_columna tipo_de_dato
|
||
|
|
||
|
Agregar o eliminar, resticciones de columnas.
|
||
|
ALTER TABLE nombre_tabla ALTER COLUMN
|
||
|
*/
|
||
|
|
||
|
-- Agregar una columna
|
||
|
-- ALTER TABLE nombre_tabla ADD nombre_columna tipo_de_dato;
|
||
|
--ej.
|
||
|
ALTER TABLE libro
|
||
|
ADD categoria_id INTEGER REFERENCES categoria_libro(ID);
|
||
|
|
||
|
ALTER TABLE libro
|
||
|
ADD precio INTEGER;
|
||
|
|
||
|
-- Borrar una columna
|
||
|
--ALTER TABLE nombre_tabla DROP COLUMN nombre_columna;
|
||
|
--ej.
|
||
|
ALTER TABLE copia_libro
|
||
|
DROP COLUMN TITULO;
|
||
|
-- SQlite no ofrece esta funcionalidad
|
||
|
|
||
|
-- Modificar tipo de dato de columna
|
||
|
--ALTER TABLE nombre_tabla ALTER COLUMN nombre_columna tipo_de_dato;
|
||
|
--ej.
|
||
|
ALTER TABLE libro
|
||
|
ALTER COLUMN precio REAL;
|
||
|
-- SQlite no ofrece esta funcionalidad
|
||
|
|
||
|
-- Agregar una restricción
|
||
|
ALTER TABLE libro
|
||
|
ADD CONSTRAINT chk_price CHECK (precio>=0);
|
||
|
-- SQlite no ofrece esta funcionalidad
|
||
|
|
||
|
-- Borrar tabla
|
||
|
--DROP TABLE nombre_tabla;
|
||
|
DROP TABLE copia_libro;
|
||
|
|
||
|
-- Borrar datos de una tabla
|
||
|
--TRUNCATE TABLE table_name;
|
||
|
-- SQlite no ofrece esta funcionalidad
|