Lenguaje SQL - Yimar22/Wiki_Modelado_De_Sistemas_De_Informacion GitHub Wiki

Sintaxis de SQL como lenguaje de definición de datos

CREATE

Se utiliza para crear objetos(tablas, dominios, ...) en la base de datos de la siguiente manera:

CREATE TABLE nombre_tabla

(

atributo_1 CHAR(4) NOT NULL UNIQUE,

atributo_2 VARCHAR(30),

atributo_3 VARCHAR(20),

atributo_4 CHAR(8),

PRIMARY KEY (atributo_1)

);

Donde cada atributo tiene un tipo de dato (VARCHAR, CHAR, NUMERIC, DECIMAL, ...) y cada tipo de dato lleva la longitud que tiene el atributo a su lado y entre paréntesis. Ademas, cada tabla puede tener llaves, las cuales no pueden ser nulas y deben ser únicas.

También se pueden crear dominios por ejemplo y se hace de la siguiente manera:

CREATE DOMAIN dominio_nombre AS CHAR(6)

CHECK ( VALUE IN ('value1', 'value2', 'value3'));

El cual debe de tener un tipo de dato y una longitud, y se pueden hacer una verificación mediante el comando CHECK para que este atributo este entre dichos valores o rangos definidos.

Los atributos también pueden llevar unos valores de integridad, los cuales les dan unas características especiales a los atributos, como lo pueden ser:

NOT NULL:

No permite valor NULL

PRIMARY KEY:

Para indicar que es la clave primaria de la tabla. Puede formarse por más de un campo, directamente debe almacenar valor único y que no sea NULL

FOREIGN KEY:

Indica la clave foránea haciendo referencia a otra tabla, estableciendo la relación.

ON DELETE y ON UPDATE:

Indican que acción debe ejecutarse en el caso que la clave foránea (a quién hace referencia) es eliminada o borrada. Las acciones pueden ser:

  • CASCADE: elimina o modifica la tupa que tiene el campo referenciado
  • SET DEFAULT: asigna valor por defecto a la columna referenciada
  • SET NULL: asigna valor NULL a la columna referenciada

ALTER

Se usa para modificar las tablas ya existentes en la base de datos de la siguiente manera:

ALTER TABLE table_1ALTER COLUMN atributo_1 char(n)

Linea la cual sirve para modificar la definición de la columna atributo_1 de la tabla tabla_1 a un char de tamaño n

DROP

Se usa para eliminar un objeto de la base de datos

DROP INDEX tabla_1.indiceColumna(valor)

Donde eliminaría de la tabla 1, la fila que contenga el valor 'valor' en la columna 'indice columna'. Tambien es posible eliminar la tabla entera con la linea

DROP TABLE nombre_tabla

Ejemplo en SQL

CREATE TABLE Cita

(

idCita Numeric(10) NOT NULL UNIQUE,

fecha Date,

hora Varchar(10),

direccion Varchar(30),

PRIMARY KEY(idCita)

);

CREATE TABLE Veterinario

(

cedula Numeric(10),

nombre Varchar(25),

apellido Varchar(25),

telefono Numeric(10),

PRIMARY KEY(cedula)

);

CREATE TABLE Usuario

(

identificacion Numeric(10),

nombre Varchar(25),

apellido Varchar(25),

telefono Numeric(10),

direccion Varchar(30),

PRIMARY KEY(identificacion)

);

CREATE TABLE Poliza

(

idPoliza Numeric(3),

tipo Varchar(10),

precio Numeric(6),

PRIMARY KEY(idPoliza)

);

CREATE TABLE Mascota

(

nombre Varchar(15),

especie Varchar(15)

);

INSERT INTO Cita VALUES (31997798, 31/12/2020, "1:00 p.m.", "Calle 12c # 29b - 155"); INSERT INTO Veterinario VALUES (37419351, "Jairo", "Torres", 3054457124); INSERT INTO Usuario VALUES (61825392, "Juan", "Naranjo", 3787508, "Carrera 7v # 61 - 38"); INSERT INTO Poliza VALUES (100, "Paltino", 120000); INSERT INTO Mascota VALUES ("Coco", "Perro");