You are on page 1of 11

Universidad del Cauca INFORMATICA III

SQL Structured Query Language (Lenguaje de Consulta Estructurado).

Es un lenguaje declarativo de acceso a bases de datos relacionales que permite


especificar diversos tipos de operaciones en stas.
Diseado por Donald D. Chamberlin y Raymond F. Boyce en los laboratorios de IBM
en los aos 70 (SEQUEL, SEQUEL-2, SQL).
El American National Standard Institute (ANSI) public el estndar SQL en 1986.
Se ha convertido en el lenguaje estndar de los SGBD Relacionales.
Es un lenguaje declarativo de acceso a bases de datos relacionales que permite
especificar diversos tipos de operaciones en stas.
Una de sus caractersticas es el manejo del lgebra y el clculo relacional que
permiten efectuar consultas con el fin de recuperar de forma sencilla informacin
de inters de bases de datos, as como hacer cambios en ellas.
El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y
potencia de los sistemas relacionales y permite as gran variedad de operaciones.
Es un lenguaje declarativo de "alto nivel" o "de no procedimiento" que, gracias a su
fuerte base terica y su orientacin al manejo de conjuntos de registros y no a
registros individuales permite una alta productividad en codificacin y la
orientacin a objetos. De esta forma, una sola sentencia puede equivaler a uno o
ms programas que se utilizaran en un lenguaje de bajo nivel orientado a registros.
Se puede utilizar de manera interactiva en asociacin con interfaces grficas o
lenguajes de programacin (C, java, PHP).
Permite interrogar una BD relacional sin preocuparse por la representacin fsica
de los datos.

El SQL agrupa tres tipos de sentencias con objetivos particulares, en los siguientes
lenguajes:

Lenguaje de definicin de datos: El LDD (o DDL por sus siglas en ingles Data Definition
Language) de SQL proporciona comandos para la definicin de esquemas de relacin,
borrado de relaciones y modificaciones de los esquemas de relacin.

Lenguaje interactivo de manipulacin de datos: El LMD (o DML por sus siglas en ingles
Data Manipulation Language) de SQL incluye lenguajes de consultas basado tanto en
lgebra relacional como en clculo relacional de tuplas. Permite manipular los datos que
estn almacenados en las bases de datos, a nivel de filas (tuplas) y/o columnas (atributos).
Ya sea que se requiera que los datos sean modificados, eliminados, consultados o que se
agreguen nuevas filas a las tablas de las bases de datos.

11
Universidad del Cauca INFORMATICA III

Lenguaje de control de datos: (DCL, Data Control Language), es el grupo de sentencias del
SQL para controlar las funciones de administracin que realiza el DBMS, tales como la
atomicidad y seguridad.

CARACTERISTICAS:
o Integridad: El LDD de SQL incluye comandos para especificar las restricciones de
integridad que deben cumplir los datos almacenados en la base de datos.

o Definicin de vistas: El LDD incluye comandos para definir las vistas.

o Control de transacciones: SQL tiene comandos para especificar el comienzo y el


final de una transaccin.

o SQL incorporado y dinmico: Esto quiere decir que se pueden incorporar


instrucciones de SQL en lenguajes de programacin como: C++, C, Java, PHP, Cobol,
Pascal y Fortran.

o Autorizacin: El LDD incluye comandos para especificar los derechos de acceso a


las relaciones y a las vistas.

En el lenguaje LDD tenemos las siguientes sentencias:


CREATE
ALTER
DROP

En el lenguaje LMD tenemos las siguientes sentencias:


INSERT
UPDATE
DELETE
SELECT

En el lenguaje LCD tenemos las siguientes sentencias:


COMMIT TRANSACTION
ROLLBACK TRANSACTION
GRANT
REVOKE

11
Universidad del Cauca INFORMATICA III

Pasos para crear una base de datos:

Lenguaje de definicin de datos DDL

El lenguaje de definicin de datos (en ingls Data Definition Language, o DDL), es el que se
encarga de la modificacin de la estructura de los objetos de la base de datos. Incluye
rdenes para modificar, borrar o definir las tablas en las que se almacenan los datos de la
base de datos, adems de permitir crear ndices, definir vistas y especificar restricciones
de integridad.

Reglas de Nombrado
Se nombran tablas y columnas de tablas de acuerdo a reglas estndares para nombrar
cualquier objeto de base de datos Oracle.
o Nombres de tablas y nombres de columnas deben empezar con una letra y ser de
1 -30 caracteres de largo

11
Universidad del Cauca INFORMATICA III

o Nombre deben contener solo los caracteres A-Z, a-z, 0-9, Los _ (underscore), $ y #
(caracteres legales, pero su uso es rechazado)
o Los nombres no debe duplicar el de otro objeto de propiedad del mismo usuario
de base de datos
o Los nombres no deben ser una palabra reservada del servidor Oracle

Directrices de nombrado
Use nombre descriptivos para tablas y otros objetos de bases de datos

Nota: los nombres no son sensibles a maysculas y minsculas. Por ejemplo el nombre
EMPLOYEES es tratado de la misma forma que el nombre eMPloyees o eMpLOYEES.

Existen cinco operaciones bsicas: CREATE, ALTER, DROP, RENAME y TRUNCATE.

CREAR - CREATE:

Puede crear tablas para almacenar datos ejecutando la sentencia SQL CREATE TABLE.
Esta sentencia es una de las sentencias DDL que son un subconjunto de las sentencias
SQL usadas para crear, modificar o eliminar estructuras de la base de datos Oracle.
Estas sentencias tienen un efecto inmediato en la base de datos y tambin registran
informacin en el diccionario de datos.
Para crear una tabla, el usuario debe tener el privilegio CREATE TABLE y un rea de
almacenamiento en la cual crear objetos. El administrador de base de datos (DBA) usa
sentencias del lenguaje de control de datos (DCL) para conceder privilegios.

Este comando permite crear objetos de datos, como nuevas bases de datos, tablas,
vistas y procedimientos almacenados.

La sentencia CREATE TABLE, define el nombre de la tabla, las columnas con su tipo de
datos, las ligaduras de integridad que vigilan el valor que se guarde como dato en las
columnas o atributos sean llaves o no.

Ejemplo (crear una tabla):

CREATE TABLE 'CUSTOMERS';

Para crear tablas se debe tener en cuenta:


CREATE TABLE_Nombretabla ( nombreColumna tipoDato, restriccion1, restriccion2)

11
Universidad del Cauca INFORMATICA III

Sintaxis completa

Tipos de datos
Cuando identificas una columna para una tabla, necesita proveer el tipo de dato para tal
columna. Hay varios tipos de datos disponibles:

Una restriccin consiste en la definicin de una caracterstica adicional que tiene una
columna o una combinacin de columnas, suelen ser caractersticas como valores no
nulos (campo requerido), definicin de ndice sin duplicados, definicin de clave

11
Universidad del Cauca INFORMATICA III

principal y definicin de clave fornea (clave ajena o externa, campo que sirve para
relacionar dos tablas entre s).

Existen dos tipos de restricciones:


o Una restriccin de tipo 1 se utiliza para indicar una caracterstica de la
columna que estamos definiendo.
La clusula NOT NULL indica que la columna no podr contener un
valor nulo, es decir que se deber rellenar obligatoriamente y con un
valor vlido.
La clusula DEFAULT asigna un valor especfico a una columna
cuando el valor para ello no haya sido explcitamente proporcionado
para tal columna.
CREATE TABLE EMPLEADP (
ID_EMPL INT PRIMARY KEY,
EDAD INT NOT NULL DEFAULT 18
);
La clusula CONSTRAINT sirve para definir una restriccin que se
podr eliminar cuando queramos sin tener que borrar la columna. A
cada restriccin se le asigna un nombre que se utiliza para
identificarla y para poder eliminarla cuando se quiera.
La clusula PRIMARY KEY se utiliza para definir la columna como
clave principal de la tabla. Esto supone que la columna no puede
contener valores nulos ni pueden haber valores duplicados en esa
columna, es decir que dos filas no pueden tener el mismo valor en
esa columna.
La clusula UNIQUE sirve para definir un ndice nico sobre la
columna. Un ndice nico es un ndice que no permite valores
duplicados, es decir que si una columna tiene definida un restriccin
de UNIQUE no podrn haber dos filas con el mismo valor en esa
columna. Se suele emplear para que el sistema compruebe el mismo
que no se aaden valores que ya existen, por ejemplo si en una tabla
de clientes queremos asegurarnos que dos clientes no puedan tener
el mismo D.N.I. y la tabla tiene como clave principal un cdigo de
cliente, definiremos la columna dni con la restriccin de UNIQUE.
La clusula REFERENCES, hace referencia a la clave fornea, la cual
hace referencia a una fila de otra tabla. Despus de la palabra
reservada indicamos a qu tabla hace referencia, opcionalmente
podemos indicar entre parntesis el nombre de la columna donde
tiene que buscar el valor de referencia, por defecto coge la clave
principal de la tabla2, si el valor que tiene que buscar se encuentra
en otra columna de tabla2, entonces debemos indicar el nombre de
esta columna entre parntesis, adems slo podemos utilizar una
columna que est definida con una restriccin de UNIQUE

11
Universidad del Cauca INFORMATICA III

Ejemplo:

CREATE TABLE tab1 (


col1 INTEGER CONSTRAINT pk PRIMARY KEY,
col2 CHAR(25) NOT NULL,
col3 CHAR(10) CONSTRAINT uni1 UNIQUE,
col4 INTEGER,
col5 INT CONSTRAINT fk5 REFERENCES tab2 );

o Una restriccin de tipo 2 se utiliza para definir una caracterstica que afecta
a una columna o a una combinacin de columnas de la tabla que estamos
definiendo, se escribe despus de haber definido todas las columnas de la
tabla.

En una restriccin de tipo 2 tenemos que indicar sobre qu columnas


queremos definir la restriccin. Se utilizan obligatoriamente las restricciones
de tipo 2 cuando la restriccin afecta a un grupo de columnas o cuando
queremos definir ms de una CONSTRAINT para una columna (slo se
puede definir una restriccin1 en cada columna).

La clusula PRIMARY KEY se utiliza para definir la clave


principal de la tabla. Despus de las palabras PRIMARY KEY se
indica entre parntesis el nombre de la columna o las
columnas que forman la clave principal.
La clusula UNIQUE sirve para definir un ndice nico sobre
una columna o sobre una combinacin de columnas. Un
ndice nico es un ndice que no permite valores duplicados.
Para definir una clave fornea en una restriccin de tipo 2
debemos empezar por las palabras FOREIGN KEY despus
indicamos entre parntesis la/s columna/s que es clave
fornea, a continuacin la palabra reservada REFERENCES
seguida del nombre de la tabla a la que hace referencia,
opcionalmente podemos indicar entre parntesis el nombre
de la/s columna/s donde tiene que buscar el valor de
referencia.

Ejemplo:

CREATE TABLE tab1 (


col1 INTEGER,
col2 CHAR(25) NOT NULL,

11
Universidad del Cauca INFORMATICA III

col3 CHAR(10),
col4 INTEGER,
col5 INT,
CONSTRAINT pk PRIMARY KEY (col1),
CONSTRAINT uni1 UNIQUE (col3),
CONSTRAINT fk5 FOREIGN KEY (col5) REFERENCES tab2);

CREACION DE DOMINIOS:
Se utiliza la sentencia CHECK la cual define la restriccin de verificacin para que los
valores que debe tomar dicho atributo.
Se utiliza CONSTRAINT el cual permite definir el Nombre de la Restriccin que se va a
realizar.

Ejemplo:

CREATE DOMAIN EstadoCivil AS CHAR (1) CHECK (VALUE IN ('S', 'C', 'V', 'D'));

CREATE DOMAIN Crditos AS INTEGER CHECK VALUE BETWEEN 1 AND 5;

Para lo cual tenemos que el dominio Crditos puede tomar los valores >= 1 y
Crditos<=5
CREATE DOMAIN Modalidad AS CHARACTER (1) DEFAULT Practica' CONSTRAINT
Modalidad_Asignatura_check CHECK (Pratica',Terica');

MODIFICAR ALTER:
Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar
campos a una tabla, modificar el tipo de un campo, agregar/quitar ndices a una tabla,
modificar un trigger, etc.

Ejemplo (agregar columna a una tabla)

11
Universidad del Cauca INFORMATICA III

ALTER TABLE 'ALUMNOS' ADD EDAD INT UNSIGNED;

o La clusula ADD COLUMN (la palabra COLUMN es opcional) permite aadir


una columna nueva a la tabla. Hay que definir la columna indicando su
nombre, tipo de datos que puede contener, y si lo queremos alguna
restriccin de valor no nulo, clave primaria, clave fornea, e ndice nico.

Ejemplo:

ALTER TABLE tab1 ADD COLUMN col3 integer NOT NULL CONSTRAINT c1 UNIQUE;

Con este ejemplo estamos aadiendo a la tabla tab1 una columna llamada col3 de tipo
entero, requerida (no admite nulos) y con un ndice sin duplicados llamado c1.

o Cuando aadimos una columna lo mnimo que se puede poner sera:

ALTER TABLE tab1 ADD col3 integer;

En este caso la nueva columna admite valores nulos y duplicados.

o Para aadir una nueva restriccin en la tabla podemos utilizar la clusula


ADD restriccion2 (ADD CONSTRAINT...).

Ejemplo:

ALTER TABLE tab1 ADD CONSTRAINT c1 UNIQUE (col3);

Con este ejemplo estamos aadiendo a la tabla tab1 un ndice nico (sin duplicados)
llamado c1 sobre la columna col3.

o Para borrar una columna basta con utilizar la clusula DROP COLUMN
(COLUMN es opcional) y el nombre de la columna que queremos borrar, se
perdern todos los datos almacenados en la columna.

Ejemplo:

ALTER TABLE tab1 DROP COLUMN col3;

Tambin podemos escribir:

ALTER TABLE tab1 DROP col3;

11
Universidad del Cauca INFORMATICA III

El resultado es el mismo, la columna col3 desaparece de la tabla tab1.

o Para borrar una restriccin basta con utilizar la clusula DROP CONSTRAINT
y el nombre de la restriccin que queremos borrar, en este caso slo se
elimina la definicin de la restriccin pero los datos almacenados no se
modifican ni se pierden.

Ejemplo:

ALTER TABLE tab1 DROP CONSTRAINT c1;

Con esta sentencia borramos el ndice c1 creado anteriormente pero los datos de la
columna col3 no se ven afectados por el cambio.

o Para modificar el tamao de un atributo de la tabla, usamos la sentencia


MODIFY.

Ejemplo:

ALTER TABLE Persona MODIFY Direccion Varchar2 (135);

o Para renombrar la columna de una tabla usamos la sentencia RENAME


COLUMN <Nombre anterior> TO <Nuevo Nombre>.

Ejemplo:

ALTER TABLE Persona RENAME COLUMN Nombres to NombrePersona;

ELIMINAR - DROP:
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, ndice,
trigger, funcin, procedimiento o cualquier otro objeto que el motor de la base de
datos soporte. Se puede combinar con la sentencia ALTER.

Ejemplo

DROP TABLE 'ALUMNOS';.

Para eliminar Dominios

DROP DOMAIN <nombrededominio>

Ejemplo

11
Universidad del Cauca INFORMATICA III

DROP DOMAIN Modalidad;

TRUNCATE - BORRAR TABLA:


Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando
DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho ms rpido,
especialmente si la tabla es muy grande. La desventaja es que TRUNCATE slo sirve
cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la
clusula WHERE. Si bien, en un principio, esta sentencia parecera ser DML (Lenguaje
de Manipulacin de Datos), es en realidad una DDL, ya que internamente, el comando
TRUNCATE borra la tabla y la vuelve a crear y no ejecuta ninguna transaccin.

Ejemplo

TRUNCATE TABLE 'NOMBRE_TABLA';

11

You might also like