Professional Documents
Culture Documents
LANGUAGE
D ata D efinition L anguage
SQL
Es de eso de lo que trata el Structured Query Language, que no es mas que un lenguaje estndar de comunicacin con bases de datos. El hecho de que sea estndar no quiere decir que sea idntico para cada base de datos. En efecto, determinadas bases de datos implementan funciones especficas que no tienen necesariamente que funcionar en otras. El lenguaje SQL ha sido creado en un principio como un mecanismo optimizado para que la obtencin o extraccin de datos sea rpida y eficiente.
Clausulas Son palabras especiales que permiten modificar el funcionamiento de un comando (where, order by, etc) Operadores Permiten crear expresiones complejas. Son aritmticos (+ * - /) o lgicos (<> = <> and or) Funciones Para conseguir valores completos sum() date() Constantes Valores literales para consultas, nmeros, textos, caracteres, Datos Obtenidos de la propia base de datos
Normas de escritura
No se distinguen minsculas de maysculas Finalizan con punto y coma Los comandos SQL pueden ser partidos por espacios o saltos de lnea antes de finalizar la instruccin. Los comentarios empiezan por /* y terminan con */
En Resumen
SQL: Structured Query Language o Lenguaje de Consultas Estructurado. Es el lenguaje que permite la comunicacin con el Sistema Gestor de Bases de Datos. El SQL es un lenguaje unificado. Lo utilizan todo tipo de usuarios, desde el administrador de la base de datos, DBA, hasta el usuario final. El SQL es un lenguaje no procedimental. El usuario especifica Qu quiere, no Cmo ni Dnde conseguirlo.
CREACION DE BD
Esta es una tarea administrativa. Implica indicar archivos y ubicaciones que se utilizarn para la base de datos, adems de otras indicaciones tcnicas y administrativas. Solo se puede crear una base de datos si se tienen los privilegios DBA database administrator). El comando SQL de creacin de una base de datos es CREATE DATABASE. Ejemplo:
Nombre de tablas
Deben cumplir las siguientes reglas: Deben comenzar con una letra No deben tener mas de 30 caracteres Solo se permiten usar letras del alfabeto ingls, nmeros o el signo de subrayado $ y # pero esos se utilizan de manera especial. No pueden haber dos tablas con el mismo nombre para el mismo esquema (pueden coincidir si estn en distintos esquemas) No pueden coincidir con el nombre de una tabla reservada para SQL por ejemplo SELECT En el caso de que el nombre tenga espacios en blanco o caracteres nacionales (en algunas Base de Datos) entonces se suele entrecomillar con comillas dobles.
Orden describe
El comando DESCRIBE, permite obtener toda la estructura de una tabla. Ejemplo: DESCRIBE proveedores; Y aparecern los campos de la tabla proveedores. Es resultado sera:
BORRAR TABLAS
La orden DROP TABLE seguida del nombre de la tabla, permite eliminar la tabla en cuestin. Al borrar una tabla: desaparecen todos los datos cualquier vista y sinnimo referente a la tabla seguir existiendo, pero ya no funcionar (conviene eliminarlos) Las transacciones pendientes son aceptadas. solo se puede eliminar una tabla si se tiene los permisos necesarios. El borrado de una tabla es irreversible.
Cambiar nombre
La orden RENAME permite el cambio de nombre de cualquier objeto. RENAME nombreViejo TO nombreNuevo;
AADIR COLUMNAS
La verstil instruccin ALTER TALBE permite hacer cambios en la escritura de una tabla Permite aadir nuevas columnas a la tabla. Se deben indicar su tipo de datos y sus propiedades si es necesario. Las nuevas columnas se aaden al final, no se puede indicar otra posicin. El orden de las columnas no importa. ALTER TABLE facturas ADD (fecha DATE);
BORRAR COLUMNAS
Elimina la columna indicada de manera irreversible e incluyendo los datos que contena. No se puede eliminar la ltima columna (habr que usar DROP TABLE) ALTER TABLE facturas DROP (fecha);
MODIFICAR COLUMNAS
Permite cambiar el tipo de datos y propiedades de una determinada columna. ALTER TABLE facturas MODIFY (fecha TIMESTAMP)
COLUMNAS
Esto permite cambiar el nombre de una columna. ALTER TABLE facturas RENAME fecha TO fechaYhora;
Un sinnimo es un nombre que se asigna a un objeto cualquiera. Normalmente es un nombre menos descriptivo que el original a fin de facilitar la escritura del nombre del objeto en diversas expresiones.
Creacin
Sintaxis: CREATE [PUBLIC] SYNONYM nombre FOR objeto; Objeto es el objeto que se referir el sinnimo. La clausula PUBLIC hace que el sinnimo est disponible para cualquier usuario.
Borrado
DROP SYNONYM nombre
Lista de sinnimos
La vista USER_SYNONYMS permite observar la lista de sinnimos del usuario, la vista ALL_SYNONYMS permite mostrar la lista completa de sinnimos.
Una secuencia sirve para generar automticamente nmero distintos. Se utilizan para generar valores para campos que se utilizan como clave forzada (claves cuyo valor no interesa, solo sirven para identificar registros de una tabla). Es decir se utilizan en los identificadores de las tablas (campos que comienzan con la palabra id), siempre y cuando no importe qu numero se asigna a cada fila. Es una rutina interna de la base de datos que realiza la funcin de generar un numero distinto cada vez. Las secuencias almacenan independientemente de la tabla, por lo que la misma sentencia puede utilizar para diversas tablas.
Creacin de secuencias
CREATE SEQUENCE numeroPlanta INCREMENT 100 STARTS WITH 100 MAXVALUE 2000; Donde: o Increment by indica cunto se incrementa la secuencia cada vez que se usa. Por defecto se incrementa de uno en uno. o Starts with indica el valor incial (por defecto es uno) o MAXVALUE es el maximo valor de la secuencia. Si no se toma NOMAXVALUE que permite llegar hasta 10 27
Una restriccin es una condicin de obligado cumplimiento para una o mas columnas de la tabla. A cada restriccin se le pone un nombre. Los nombres de las restricciones no se pueden repetir para el mismo esquema, por lo que es buena idea incluir de algn modo el nombre de la tabla, los campos involucrados y el tipo de restriccin en el nombre de la misma. Pieza_id_pk podra indicar que el campo id de la tabla pieza tiene una clave principal (Primary Key). Los tipos de restriccin son: NOT NULL PRIMARY KEY UNIQUE FOREIGN KEY CHECK
Prohibir nulos
La restriccin NOT NULL permite prohibir los nulos en una determinada tabla. Eso obliga a que la columna tenga que tener obligatoriamente un valor para que sea almacenado en el registro. Se puede colocar mediante la creacin o modificacin del campo aadiendo la palabra NOT NULL tras el tipo: CREATE TABLE cliente (dni VARCHAR2(9) NOT NULL); No es recomendable no poner nombre a las restricciones para controlarlar mejor. Para poner el nombre se usa: CREATE TABLE cliente (dni VARCHAR2(9) CONSTRAINT cli_dni_nn NOT NULL); El NOT NULL se puede aplicar a un campo a la vez.
Valores nicos
Las restricciones de tipo UNIQUE obligan a que el contenido de una o ms columnas no puedan repetir valores. Nuevamente hay dos formas de colocar esta restriccin: CREATE TABLE cliente (dni VARCHAR2(9) UNIQUE); La otra forma colocando el nombre CREATE TABLE cliente (dni VARCHAR2(9) CONSTRAINT dni_u UNIQUE); Si la repeticin de valores se refiere a varios campos entonces sera: CREATE TABLE alquiler (dni VARCHAR2(9), cod_pelicula NUMBER(5) , CONSTRAINT alquiler_uk UNIQUE(dni, cod_pelicula)); La coma tras la definicin del campo cod_pelicula hace que la restriccin sea independiente de ese campo. Eso obliga a que, tras UNIQUE se indique la lista de campos. Incluso para un solo campo se puede colocar la restriccin al final de la lista.
Clave primaria
La clave primaria de una tabla la forman las columnas que indican a cada registro de la misma. La clave primaria hace que los campos que la forman sean NOT NULL (sin posibilidad de quedar vacos) y que los valores de los campos sean de tipo UNIQUE (sin posibilidad de repeticin). Si la clave est formada por un solo campo basta con: CREATE TABLE cliente ( dni VARCHAR2(9) PRIMARY KEY, nombre VARCHAR2(50)); O poniendo un nombre a la restriccin: CREATE TABLE cliente( dni VARCHAR2(9) CONSTRAINT cliente_pk PRIMARY KEY, nombre VARCHAR(50)); Si la clave est formada por ms de un campo: CREATE TABLE alquiler (dni VARCHAR2(9), cod_pelicula NUMBER (5), CONSTRAINT alquiler_pk PRIMARY KEY (dni, cod_pelicula));
Significa esta instruccin (en cuanto a claves forneas) que el campo DNI se relaciona con la columna dni de la tabla clientes. Si el campo al que se hace referencia es la clave principal, se puede obviar el nombre del campo:
En este caso se entiende que los campos hacen referencia a las claves principales de las tablas referenciadas (si la relacin la forma mas un campo, el orden de los campos debe ser el mismo).
Esto forma una relacin entre dichas tablas, que adems obliga al cumplimiento de la integridad referencial. Esta integridad obliga a cualquier dni incluido en la tabla alquiler tenga que estar obligatoriamente en la tabla clientes. De no ser as el registro n ser insertado en la tabla (ocurrir un error). otra forma de crear claves forneas (til para claves formadas por ms de un campo) es:
Si la definicin de la clave secundaria se pone al final hace falta colocar el texto FOREIGN KEY para indicar en qu campos se coloca la restriccin de la clave fornea. En el ejemplo anterior es absolutamente necesario que la clave principal de la tabla piezas a la que hace referencia la clave la formen las columnas tipo y modela y en que estn en ese orden.
Restricciones de validacin
Son restricciones que dictan una condicin que deben cumplir los contenidos de una columna una misma columna puede tener mltiples CHECKS en su definicin ( se pondrn varios CONSTRAINT seguidos y sin comas). Ejemplo:
En este caso la CHECK prohbe aadir datos cuyo importe no est entre 0 y 8000. Para poder hacer referencia a otras columnas hay que construir la restriccin de forma independiente a la columna (es decir al final de la tabla):
Aadir restricciones
Es posible querer aadir restricciones tras haber creado la tabla. Es ese caso se utiliza la siguiente sintaxis: ALTER TABLE tabla ADD [CONSTRAINT nombre] tipoDeRestriccion(columnas); tipoDeRestriccion es el texto CHECK, PRIMARY, o FOREIGN KEY. Las restricciones NOT NULLL deben indicarse mediante ALTER TABLE MODIFY colocando NOT NULL en el campo que se modifica.
Sintaxis ALTER TABLE tabla DROP PRIMARY KEY | UNIQUE (campos) | CONSTRAINT nombreRestriccion [CASCADE] La opcin PRIMARY KEY elimina una clave principal (tambin quitar el ndice UNIQUE sobre los campos que formaban. UNIQUE elimina ndices nicos. La opcin CONSTRAINT elimina la restriccin indicada La opcin CASCADE hace que se eliminen en cascada las restricciones de integridad que dependen de la restriccin eliminada.
Borrar restricciones
Desactivar restricciones
A veces conviene temporalmente desactivar una restriccin para saltarse las reglas que impone. La sintaxis es: ALTER TABLE tabla DISABLE CONSTRAINT nombre [CASCADE] La opcin CASCADE hace que se desactiven tambin las restricciones dependientes de la que se desactiv.
Activar restricciones
Anula la desactivacin. Sintaxis: ALTER TABLE tabla ENSABLE CONSTRAINT nombre [CASCADE] Solo se permite volver a activar si los valores de la tabla cumplen la restriccin que se activa. Si hubo desactivado en cascada, habr que activar cada restriccin individualmente.
GRACIAS!