003-1 El Lenguaje Estandar SQL - InSTRUCIONES DDL (Completo)

32
EL LENGUAJE ESTÁNDAR SQL

description

lenguaje SQL

Transcript of 003-1 El Lenguaje Estandar SQL - InSTRUCIONES DDL (Completo)

Venta de una idea o un producto

EL LENGUAJE ESTNDAR SQL1CONTENIDOSIntroduccinQue es SQL ?Estructura de SQLInstrucciones DDLPROCEDURETABLEVIEWEjercicio de Aplicacin

INTRODUCCINSQL: Structured Query Language

Caractersticas:Estructuras de datos simplesOperadores potentesPeriodos de aprendizaje inicial cortosMejora de la independencia de datosModo de uso dual (interactivo o inmerso)OptimizacinINTRODUCCINLas sentencias SQL pueden dividirse en cuatro tipos:

Sublenguaje de definicin de datos (DDL)

Sublenguaje de control de datos (DCL)

Sublenguaje de manipulacin de datos (DML)

Lenguaje procedural (PL)INTRODUCCINDDL: Proporciona rdenes para definir esquemas de relacin, eliminar relaciones, crear ndices y modificar esquemas de relacin.

DCL: Incluye rdenes que permiten especificar controles de seguridad a los datos almacenados como definicin de vistas, especificacin de privilegios de acceso, comprobacin de condiciones de integridad y control de concurrencia.

INTRODUCCINDML: Interactivo: lenguaje de consulta basado en el lgebra relacional y el calculo relacional de tuplas. Tambin incluye ordenes para insertar, suprimir y modificar tuplas de la base de datos. Inmerso: lenguaje diseado para utilizar dentro de otros lenguajes.

PL: Lenguaje para la creacin de procedimientos almacenados.QUE ES SQL??Es un Lenguaje estndar de alto nivel con el cual los DBMS interactan con las aplicaciones del usuario.

Su nombre es la cicla de Structured Query Language, que traducido al espaol significa : Lenguaje de Consultas Estructurado.

ESTRUCTURA DE SQLSQL clasifica sus instrucciones en de 2 tipos, de acuerdo al impacto de ellas sobre la Base de Datos:

De Definicin : DDL (Data Definition Language)

De Manipulacin :DML (Data Manipulation Language)

INSTRUCIONES DDLEstas instrucciones actuaran sobre las tablas del sistema del DBMS, en relacin con los objetos de la Base de Datos. Entre estas instrucciones se encuentran:

CREATE : Crea Objetos en la Base de datosDROP : Borra Objetos en la Base de DatosALTER : Modifica la definicion de objetos

INSTRUCIONES DDLSENTENCIA DDLOBJETIVOCREATE, ALTER, DROP PROCEDURECrea, Recompila, Elimina un procedimiento almacenadoCREATE, ALTER, DROP TABLE ( INDEX)Crear una tabla ( ndice).Aadir o redefinir una columna.Eliminar una tabla ( ndice).CREATE, ALTER, DROP VIEWSCrea, Recompila, Elimina una vista almacenadoTRUNCATEEliminar todas las filas de una tablaINSTRUCIONES DDLEjemplo

INSTRUCIONES DDLCreacin de un esquemaCREATE SCHEMA AUTHORIZACION

Definicin de una relacin (tabla):CREATE TABLE R (A1 D1,A2 D2,,An Dn)Donde:R es el nombre de la relacin, Ai el nombre de un atributo.Di tipo de datos de los valores en el dominio del atributo AiPROCEDIMIENTOS ALMACENADOSDefinicinPermiten la creacin de objetos tipo procedimientos o funciones, que son parte de la base de datos, e incluyen cdigo SQL de consulta y/o manipulacin de datos.

Estos procedimientos se invocan desde el mismo DBMS o desde aplicaciones clientes y permiten el paso de parmetros.

PROCEDIMIENTOS ALMACENADOSEncapsulan la lgica del negocio, minimizando el impacto de cambios en la estructura de la base de datos o lgica de los sistemas.

Permiten ocultar las tablas y sus estructuras a los usuarios y aplicaciones que utilizan la base de datos.

Provee un mecanismo de seguridad que impide a los usuarios finales tener acceso directo a las tablas.

PROCEDIMIENTOS ALMACENADOSSintaxis:CREATE { PROC | PROCEDURE } [schema_name.] procedure_name [ ;number ] [ { @parameter [ type_schema_name. ] data_type } [ VARYING ] [ =default ] [ OUT | OUTPUT | [READONLY] ] [ ,...n ] [ WITH [ ,...n ] ] [ FOR REPLICATION ] AS { [ BEGIN ] sql_statement [;] [ ...n ] [ END ] } [;]Ejecucin:EXEC param1, param2, ...

PROCEDIMIENTOS ALMACENADOSPROCEDIMIENTO

CREATE PROCEDURE dbo.InsertDepartamento@Nombre varchar(50),@Descripcion varchar(500), @fCreacion DATETIME BEGIN

INSERT INTO DEPARTAMENTO (Nombre, fCreacion, Descripcion) VALUES (@ Nombre, @ fCreacion, @ Descripcion)

ENDGOPROCEDIMIENTOS ALMACENADOSModifica un procedimiento creado anteriormente por la ejecucin de la instruccin CREATE PROCEDURE

ALTER { PROC |PROCEDURE } [schema_name.] procedure_name [ ;number ][ { @parameter [ type_schema_name. ] data_type }[ VARYING ] [ = default ] [ OUT | OUTPUT ] [READONLY]] [ ,...n ][ WITH [ ,...n ] ][ FOR REPLICATION ]AS { [ BEGIN ]sql_statement [;] [ ...n ] [ END ] }PROCEDIMIENTOS ALMACENADOSPROCEDIMIENTO

ALTER PROCEDURE dbo.InsertDepartamento @Nombre varchar(50),@Descripcion varchar(500), @fCreacion DATETIME BEGIN INSERT INTO DEPARTAMENTO VALUES (@ Nombre, @ fCreacion, @ Descripcion) ENDGOPROCEDIMIENTOS ALMACENADOSPROCEDIMIENTO

DROP PROCEDURE .;

DROP PROCEDURE dbo. InsertDepartamento;TABLASSINTAXIS

CREATE TABLE table_name (column_name datatype [default {constant_expression}] [{identity | null | not null] [check {check_expression}], next_column, , [constraint constraint_name primary key (fields) [clustered | nonclustered] [asc | desc] )

TABLASEjemplo de Crear Tabla

CREATE TABLE DEPARTAMENTO ( IdDepartamento NUMBER NOT NULL, Nombre VARCHAR(50) NOT NULL, fCreacion DATE NULL, DescripcionVARCHAR(500) NOT NULL, PRIMARY IdDepartamento);

TABLASEjemplo de Crear Tabla

CREATE TABLE EMPLEADOS( IdEmpleadoINTEGERNOT NULL, NombresVARCHAR(100) NOT NULL, ApellidosVARCHAR(100) NOT NULL, DireccionVARCHAR(50) NOT NULL, fNacimientoDATETIME NOT NULL default 01/01/1900, Salarionumeric(12,2) NOT NULL default 0, IdDepartamentoINTEGERNOT NULL, PRIMARY KEY(IdEmpleado) FOREIGN KEY (IdDepartamento) REFERENCES DEPARTAMENTO (IdDepartamento ));TABLASMODIFICAR LA ESTRUCTURA DE UNA TABLA

El COMANDO ALTER TABLE sirve para aadir, modificar, eliminar campos y claves de una tabla

ALTER TABLE tabla-a-modificar ADD/ALTER/DROP COLUMN campo ADD aade columna, ALTER COLUMN modifica su tipo de datos o tamaoDROP la eliminaTABLASALTER TABLEModifica la definicin de una tabla

Aadir nuevos atributos a una relacinALTER TABLE ADD tipo

Aadir una nueva FK a una relacinALTER TABLE ADD CONSTRAINT REFERENCES (nombre_FK)

TABLASAadir una PK a una relacinALTER TABLE ADD CONSTRAINT PRIMARY KEY (nombre) tipo

Eliminacin de una relacin: DROP TABLE

Crear ndices sobre las tablas:CREATE INDEX ON TABLASBorrar ndices sobre las tablas:

DROP INDEX

Es recomendable poner un ndice para cada FK

DROP TABLEDROP TABLE table_name

TABLASMODIFICAR LA ESTRUCTURA DE UNA TABLA

Aadir columna idioma: ALTER TABLE libro ADD COLUMN idioma text (15)

Aadir columna lugar: ALTER TABLE libro ADD COLUMN lugar text (15)

Modificar el tamao de la columna titulo: ALTER TABLE libro ALTER COLUMN titulo text (150)

TABLASEliminar la columna lugar: ALTER TABLE libro DROP COLUMN lugarVISTASCREAR UNA VISTAS NUEVA Las vistas son tablas virtuales.CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ][ WITH [ ,...n ] ] AS select_statement [ WITH CHECK OPTION ] [;]

CREATE VIEW dpto_diez AS SELECT IdEmpleado, nombre, direccion FROM empleados WHERE IdDepartamento=1;

VISTASMODIFICAR UNA VISTASEXISTENTE

ALTER VIEW [ schema_name . ] view_name [ ( column [ ,...n ] ) ][ WITH [ ,...n ] ] AS select_statement [ WITH CHECK OPTION ] [ ; ]

ALTER VIEW dpto_diez AS SELECT IdEmpleado, nombre, direccion FROM empleadosWHERE IdDepartamento=21;

VISTASELIMINAR VISTAS

DROP VIEW [ schema_name . ] view_name [ ...,n ] [ ; ]

DROP VIEW dbo.listarEmpleadosTRUNCATE TABLETRUNCATE TABLEOtra diferencia es la siguiente: cuando la tabla tiene un campo "identity", si borramos todos los registros con "delete" y luego ingresamos un registro, al cargarse el valor en el campo de identidad, contina con la secuencia teniendo en cuenta el valor mayor que se haba guardado; si usamos "truncate table" para borrar todos los registros, al ingresar otra vez un registro, la secuencia del campo de identidad vuelve a iniciarse en 1.

TRUNCATE TABLE [{database_name .[ schema_name ].| schema_name.} ]table_name [ ; ]

TRUNCATE TABLE dbo.Departamentos;