Apuntes_Python/01_curso/Modulo_4/4-2a_structured_query_language.sql
2022-12-24 22:41:20 -03:00

107 lines
2.8 KiB
SQL

/*
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