LENGUAJE ESTRUCTURADO DE CONSULTA “SQL” LENGUAJE DE CONTROL DE DATOS “DCL” LENGUAJE DE DEFINICION DE DATOS “DDL” LENGUAJE DE MANIPULACION DE DATOS “DML”
LENGUAJE DE CONTROL DE DATOS “DCL” CREAR EL USUARIO SINTAXIS Ejemplo: CREATE USER nombre_usuario CREATE USER abeltran IDENTIFIED BY contraseña IDENTIFIED BY abeltran; GRANT SINTAXIS Ejemplo: GRANT privilegios TO usuario; GRANT connect, dba TO abeltran;
Lenguaje de definicion de datos “ddl” CREACION DE TABLAS SINTAXIS CREATE TABLE nombre_tabla (nombre_campo TIPO_DATO [CONSTRAINT nombre_const TIPO_CONST] … , [CONSTRAINT nombre_const TIPO_CONST] , … , ); PARAMETROS: NOMBRE Debe iniciar en letras, máximo 30 caracteres, y solo acepta caracteres, letras y numeros. No pueden existir objetos con el mismo nombre. (Usuarios, Tablas y Constraints)
TIPO_DATO Caracteres: VARCHAR(n): Longitud Variable. CHAR(n): Longitud Fija LONG: Longitud variable máximo 2 Gigabytes Numérico: NUMBER(d,s): d indica el número de dígitos y s el numero de dígitos decimales. Fecha/Hora: DATE TIPO_CONSTRAINT Campo: NOT NULL nn Tabla: PRIMARY KEY pk [FOREIGN KEY …] REFERENCES … fk UNIQUE uk CHECK ck DEFAULT df
EJEMPLO EMPRESA # nit v10 * nombre v30 * direccion v40 o telefono v20 CREATE TABLE empresa (nit VARCHAR(10) CONSTRAINT emp_nit_pk PRIMARY KEY, nombre VARCHAR(30) CONSTRAINT emp_nom_nn NOT NULL, direccion VARCHAR(40) CONSTRAINT emp_dir_nn NOT NULL, Telefono NUMBER(20) ); CREATE TABLE representante (cedula VARCHAR(20) CONSTRAINT rep_ced_pk PRIMARY KEY, nombre VARCHAR(30) CONSTRAINT rep_nom_nn NOT NULL, apellido VARCHAR(30) CONSTRAINT rep_ape_nn NOT NULL, direccion VARCHAR(40) CONSTRAINT rep_dir_nn NOT NULL, Telefono NUMBER(20), Nit_empresa VARCHAR(10) CONSTRAINT rep_nit_emp_nn NOT NULL CONSTRAINT rep_nit_emp_uk UNIQUE CONSTRAINT rep_nit_emp_fk REFERENCES empresa(nit) ); CREATE TABLE pedido (numero VARCHAR(20), Fecha DATE CONSTRAINT ped_num_nn NOT NULL, nit_empresa VARCHAR(10) CONSTRAINT ped_nit_emp_nn NOT NULL, CONSTRAINT ped_num_pk PRIMARY KEY (numero), CONSTRAINT ped_nit_emp_fk FOREIGN KEY (nit_empresa) REFERENCES empresa (nit)); EMPRESA # nit v10 * nombre v30 * direccion v40 o telefono v20 REPRESENTANTE # cedula v20 * nombre v30 * Apellido v30 * direccion v40 o telefono v20 (#) nit_empresa PEDIDO # numero v20 * fecha * nit_empresa Para indicar que Campo es
LENGUAJE DE DEFINICION DE DATOS “DDL” MODIFICACION DE TABLAS Agregar campos ALTER TABLE nombre_tabla ADD(nombre_campo tipo_dato [CONSTRAINT nombre_const tipo_const, … ]) Ejemplo: para empresa colocar fax v(30) obligatorio. ALTER TABLE empresa ADD fax VARCHAR(30) CONSTRAINT emp_fax_nn NOT NULL ; Nota: Si la tabla tiene datos no se puede agregar con el constraint de not null, agregar el campo sin el constraint, luego llenar los datos y al final colocar el not null. Modificar campos: tipo y tamaño o agregar NOT NULL MODIFY(nombre_campo [tipo_dato] [CONSTRAINT nombre_const tipo_const, … ]) Ejemplo: para empresa colocar nombre v(50) y teléfono colocarlo obligatorio. MODIFY (nombre VARCHAR(50), telefono CONSTRAINT emp_tel_nn NOT NULL); Nota: Integridad referencial: primary key debo modificar foreign key.
LENGUAJE DE DEFINICION DE DATOS “DDL” MODIFICACION DE TABLAS Modificar el nombre del campo ALTER TABLE nombre_tabla RENAME COLUMN nombre_campo TO nombre_campo_n Ejemplo: Cambiar el nombre de empresa a razón_social. ALTER TABLE empresa RENAME COLUMN nombre TO razon_social; Agregar Constraint: Menos NOT NULL ADD CONSTRANT nombre_const tipo_cont(nombre_campo) Ejemplo: Colocar razón_social unico. ADD CONSTRAINT emp_raz_uk UNIQUE(razon_social); ADD CONSTRAINT emp_val_ck CHECK (valor > 800000);
LENGUAJE DE DEFINICION DE DATOS “DDL” MODIFICACION DE TABLAS Eliminar constraint (todos) ALTER TABLE nombre_tabla DROP CONSTRAINT nombre_const; Ejemplo: colocar opcional la dirección de empresa. ALTER TABLE empresa DROP CONSTRAINT emp_dir_nn; Eliminar una columna DROP COLUMN nombre_columna; Consultar los constraints SELECT CONTRAINT_NAME FROM USER_CONSTRANTS WHERE TABLE_NAME=‘NOMBRE_TABLA’; NOTA: NOMBRE_TABLA debe SIEMPRE escribirse en mayúscula.
LENGUAJE DE DEFINICION DE DATOS “DDL” MODIFICACION DE TABLAS Cambiar el nombre de una tabla RENAME nombre_tabla TO nombre_tabla_nuevo Ejemplo: cambiar el nombre de empresa por entidad. RENAME empresa TO entidad; Eliminar una tabla DROP TABLE nombre_tabla [CASCADE CONSTRAINT]; [CASCADE CONSTRAINT]: se utiliza cuando hay llaves fóraneas en otras tablas. Ejemplo: eliminar empresa. DROP TABLE empresa; No deja eliminar la tabla. DROP TABLE empresa CASCADE CONSTRAINT;
LENGUAJE DE MANIPULACION DE DATOS INCLUSION INSERT INTO nombre_tabla [(lista_columas)] VALUES (lista_datos); Lista_columna: es opcional, se usa cuando se desea dar un orden en la entrada de datos. Lista_datos: Carácter: ‘texto’ Numérico: 99966.25 Fecha: TO_DATE(’12-30-2008’,’mm-dd-yyyy’) Valor nulo: Explicito: Null (Todos) o ‘’ (carácter o fecha) Implícito: Omitir la columna en la lista. Ejemplo: INSERT INTO empresa VALUES (‘99949’,’pepe’,’Clla’,null); INSERT INTO empresa (nit,nombre,direccion) VALUES (‘99949’,’pepe’,’Clla’); &variable: incluir un valor por pantalla. VALUES (‘&nit’,’&nom’,’&dir’,&tele); incluya el valor del nit: 99949 incluya el valor del nom: pepe incluya el valor del dir : clla incluya el valor del tele: null Sql>/ /*Se usa para ejecutar nuevamente la sentencia anterior*/
Función TO_DATE TO_DATE(‘valor’,’formato’) Formato dd Número del día mm Número del mes mon Tres primeras letras del nombre del mes. month Nombre del mes (usa 9 caracteres) yy Dos último dígitos del año. yyyy Dígitos del año. hh Hora mi Minutos ss Segundos am/pm Formato de 12 horas. hh24 Formato de 24 hora Ejemplo: TO_DATE(’12-MAYO-2008’,’DD-MONTH-YYYY’)
LENGUAJE DE MANIPULACION DE DATOS Modificar los datos UPDATE nombre_tabla SET nombre_campo=valor, nombre_campo2=valor2 [WHERE condición] Ejemplo: Para los clientes que tengan apellido rojas colocar la dirección cll 21 #18-24 UPDATE cliente SET direccion=‘cll 21 #18-24’ WHERE apellido LIKE ‘rojas%’; Eliminar los datos DELETE FROM nombre_tabla Eliminar los registros de los pedidos de este año. DELETE FROM pedido WHERE TO_CHAR(fecha,’yyyy’) =‘2008’; Nota: [WHERE condición], si se omite modifica o elimina todos los datos.
Operadores lógicos Básicos >Mayor < Menor >= Mayor Igual <=Menor igual = igual != diferente Especiales BETWEEN valor_inicial AND valor_final Este en el rango de valores NOT BETWEEN valor_inicial AND valor_final No este en el rango de valores. IN (lista de valores) Que sea igual a cualquier valor de la lista. NOT IN (lista de valores) Que NO sea igual a cualquier valor de la lista. LIKE ‘patrón’ se utilizan comodines % cualquier cantidad de caracteres y _ Un carácter cualquiera. NOT LIKE ‘patrón’ IS NULL Que el valor sea nulo. IS NOT NULL Que el valor no sea nulo.