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