LENGUAJE ESTRUCTURADO DE CONSULTA SQL LENGUAJE DE CONTROL

  • Slides: 13
Download presentation
LENGUAJE ESTRUCTURADO DE CONSULTA “SQL” LENGUAJE DE CONTROL DE DATOS “DCL” Ø LENGUAJE DE

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

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

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

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 v 10 * nombre v 30 * direccion v 40

EJEMPLO EMPRESA # nit v 10 * nombre v 30 * direccion v 40 o telefono v 20 REPRESENTANTE # cedula v 20 * nombre v 30 * Apellido v 30 * direccion v 40 o telefono v 20 (#) nit_empresa PEDIDO # numero v 20 * fecha * nit_empresa 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 Para indicar que (numero VARCHAR(20), Campo es 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));

LENGUAJE DE DEFINICION DE DATOS “DDL” Ø MODIFICACION DE TABLAS Ø Agregar campos ALTER

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 ALTER TABLE nombre_tabla MODIFY(nombre_campo [tipo_dato] [CONSTRAINT nombre_const tipo_const, … ]) Ejemplo: para empresa colocar nombre v(50) y teléfono colocarlo obligatorio. ALTER TABLE empresa 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

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 ALTER TABLE nombre_tabla ADD CONSTRANT nombre_const tipo_cont(nombre_campo) Ejemplo: Colocar razón_social unico. ALTER TABLE empresa ADD CONSTRAINT emp_raz_uk UNIQUE(razon_social); Ø ALTER TABLE empresa ADD CONSTRAINT emp_val_ck CHECK (valor > 800000);

LENGUAJE DE DEFINICION DE DATOS “DDL” Ø MODIFICACION DE TABLAS Ø Eliminar constraint (todos)

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 Ø Ø ALTER TABLE nombre_tabla 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

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:

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 pantalla. INSERT INTO empresa 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(‘valor’, ’formato’) Formato dd Número del día mm Número del mes mon Tres

Función 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. hh 24 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_campo 2=valor

LENGUAJE DE MANIPULACION DE DATOS Modificar los datos UPDATE nombre_tabla SET nombre_campo=valor, nombre_campo 2=valor 2 [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 [WHERE condición] Ejemplo: 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 !=

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. Ø