You are on page 1of 20

Universidad Tecnolgica Del Valle Del Mezquital Tecnologa De La Informacin y Comunicacin

Base De Datos (SQL) Ing. Alfredo Prez Gmez

Areli Cruz Simn

Cuatrimestre: 2 D

Matricula: 123229

Introduccin El SQL es el lenguaje estndar. Manipulacin y control de bases de datos relacionales. Es un lenguaje declarativo: slo hay que indicar qu se quiere hacer. En cambio, en los lenguajes procedimentales es necesario especificar cmo hay que hacer cualquier accin sobre la base de datos. El SQL es un lenguaje muy parecido al lenguaje natural; concretamente, se parece al ingls, y es muy expresivo. Por estas razones, y como lenguaje estndar, el SQL es un lenguaje con el que se puede acceder a todos los sistemas relacionales comerciales.

Contenido
Introduccin ................................................................................................................................................. 1 Que es SQL................................................................................................................................................. 4 Sentencias DDL...................................................................................................................................... 4 INTRODUCCIN A SQL........................................................................................................................... 5 Caracteristicas de DDL y DML ............................................................................................................. 5 Sintaxis para crear una base de datos ................................................................................................... 6 1) SQL clave principal: ........................................................................................................................ 12 2) SQL Clave externa o la integridad referencial: ........................................................................... 13 3) SQL No es nulo Restriccin: ........................................................................................................ 15 4) SQL Unique Key: ............................................................................................................................. 15 5) SQL restriccin CHECK: ............................................................................................................... 16 Conclusin ................................................................................................................................................. 17 Bliografa.................................................................................................................................................... 18

SQL: DDL (Lenguaje de definicion de datos) Un lenguaje de definicin de datos (Data Definition Lenguaje, DDL por sus siglas en ingls) es un lenguaje proporcionado por el sistema de gestin de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definicin de las estructuras que almacenarn los datos as como de los procedimientos o funciones que permitan consultarlos. DDL: Lenguaje de definicion de datos. Permite crear objetos en la base de datos. Son las sentencias que afectan el las construccin de datos. Tipo de objetos: Tabla ndices Vistas Otros.

Esquemas: Describe una relacion descripcin de la estructura de datos. Fila: Registro-Tupla Tabla: Relacion Instancia- estructurada de datos con datos incluidos en un tiempo determinado. Atributos: Nombre de columnas. Dominio: Conjunto de valores permitidos. Matemticamente definir un dominio y un atributo es: cualquier elemento del conjunto especificado.

Que es SQL SQL: Lenguaje de Consulta Estructurado -La cual identifica a un tipo de lenguaje vinculado con la gestin de bases de datos de carcter relacional que permite la especificacin de distintas clases de operaciones entre stas. El concepto bsico en el almacenamiento de datos es el registro. El registro agrupa la informacin asociada a un elemento de un conjunto, y est compuesto por campos. Lenguaje de consulta estructurado. El lenguaje estndar internacional para definir y tener acceso a bases de datos relacionales.

Sentencias DDL Se puede crear tablas con la instruccin CREATE TABLE nombre_tabla (atributos: cada uno con su tipo de datos y restricciones ); Se puede crear ndices: CREARE INTEX nombre ndice ON tabla (columna(s)); Las vista=Las no son ms que consultas con nombres ejemplo CREATE VIEW NOMBRE_ vista AS consulta; Lenguaje de definicion de datos(LDD) Comando CREATE DATABASE-define una nueva base de datos. Sintaxis Posgresql CREATE DATABASE name [{WITH} { OWNER {=}dbowner}] [TEMPLATE{=}template] [ENCODING{=}encoding] [LC_COLLATE{=lc_collate}] [LC_CTYPE{=}lc_ctype]

{TABLE ESPACE{=} tablespace } lugar donde de almacemas los archivos en disco. [CONNECTION LIMIT {=} CONNTIMIT]

INTRODUCCIN A SQL
Caracteristicas de DDL y DML
Lenguaje de definicin del almacenamiento de los datos (DSDL: Data Storage Definition Lenguaje): permite especificar caractersticas fsicas de la base de datos (volmenes y archivos donde van a ser almacenados los datos, etc.). Lenguaje de definicin de datos (DDL: Data Definition Language): Sencillo lenguaje artificial para definir y describir los objetos de la base de datos, su estructura, relaciones y restricciones. En la prctica puede consistir en un subconjunto de instrucciones de otro lenguaje informtico. Aparte suele poseer dos subconjuntos de instrucciones:

Lenguaje de definicin del almacenamiento de los datos (DSDL: Data Storage Definition Language): permite especificar caractersticas fsicas de la base de datos (volmenes y archivos donde van a ser almacenados los datos, etc).

Lenguaje de control de datos (DCL: Data Control Language): encargado del control y seguridad de los datos (privilegios y modos de acceso, etc).

Lenguaje de manipulacin de datos (DML: Data Manipulation Language): Lenguaje artificial de cierta complejidad que permite el manejo y procesamiento del contenido de la base de datos. En la prctica puede consistir en un subconjunto de instrucciones de otro lenguaje informtico. Las aplicaciones que trabajan sobre la base de datos se programan en un lenguaje de programacin (C, Cobol, ...) insertando en el cdigo fuente sentencias del DML. Al utilizar un DML se deben especificar los datos

que sern afectados por las sentencias del lenguaje. Un DML puede tener o no procedimientos, segn sea necesario especificar ademns cnmo deben obtenerse esos datos. Los DML con procedimientos tienen sentencias de control de flujo como bucles o condicionales. Los DML sin procedimientos son conocidos tambin como declarativos.

Sintaxis para crear una base de datos


CREATE DATABASE nombre_base de datos

Con PostgreSQL est a disposicin una orden invocable por shell Unix (o por shell del sistema usado), que ejecuta la misma operacin:

createdb nombre_base de datos

Para crear nuestra base de datos bibliogrfica, usaremos pues la orden:

createdb biblio

Una vez creada la base de datos, se pueden crear las tablas que la componen. La instruccin SQL propuesta para este fin es:

CREATE TABLE nombre_tabla ( nombre_columna tipo_columna [ clusula_defecto ] [ vnculos_de_columna ] [ , nombre_columna tipo_columna [ clusula_defecto ] [ vnculos_de_columna ] ... ] [ , [ vnculo_de tabla] ... ] )

nombre_columna: es el nombre de la columna que compone la tabla. Sera mejor no exagerar con la longitud de los identificadores de columna, puesto que SQL Entry Level prev nombres con no ms de 18 caracteres. Consltese, de todos modos, la documentacin de la base de datos especfica. Los nombres tienen que comenzar con

un carcter alfabtico.

tipo_columna: es la indicacin del tipo de dato que la columna podr contener. Los principales tipos previstos por el estndar SQL son:

CHARACTER(n) Una cadena de longitud fija con exactamente n caracteres. CHARACTER se puede abreviar con CHAR

CHARACTER VARYING(n) Una cadena de longitud variable con un mximo de n caracteres. CHARACTER VARYING se puede abreviar con VARCHAR o CHAR VARYING.

INTEGER Un nmero estero con signo. Se puede abreviar con INT. La precisin, es decir el tamao del nmero entero que se puede memorizar en una columna de este tipo, depende de la implementacin de la DBMS en cuestin.

SMALLINT Un nmero entero con signo y una precisin que no sea superior a INTEGER.

FLOAT(p) Un nmero con coma mvil y una precisin p. El valor mximo de p depende de la implementacin de la DBMS. Se puede usar FLOAT sin indicar la precisin, empleando, por tanto, la precisin por defecto, tambin sta dependiente de la implementacin. REAL y DOUBLE PRECISION son sinnimo para un FLOAT con precisin concreta. Tambin en este caso, las precisiones dependen de la implementacin, siempre que la precisin del primero no sea superior a la del segundo.

DECIMAL(p,q) Un nmero con coma fija de por lo menos p cifras y signo, con q cifras despus de la coma. DEC es la abreviatura de DECIMAL. DECIMAL(p) es una

abreviatura de DECIMAL(p,0). El valor mximo de p depende de la implementacin.

INTERVAL Un periodo de tiempo (aos, meses, das, horas, minutos, segundos y fracciones de segundo).

DATE, TIME y TIMESTAMP Un instante temporal preciso. DATE permite indicar el ao, el mes y el da. Con TIME se pueden especificar la hora, los minutos y los segundos. TIMESTAMP es la combinacin de los dos anteriores. Los segundos son un nmero con coma, lo que permite especificar tambin fracciones de segundo.

clusula_defecto: indica el valor de defecto que tomar la columna si no se le asigna uno explcitamente en el momento en que se crea la lnea. La sintaxis que hay que usar es la siguiente:

DEFAULT { valor | NULL }

donde valor es un valor vlido para el tipo con el que la columna se ha definido.

vnculos_de_columna: son vnculos de integridad que se aplican a cada atributo concreto. Son:

NOT NULL, que indica que la columna no puede tomar el valor NULL. PRIMARY KEY, que indica que la columna es la llave primaria de la tabla. una definicin de referencia con la que se indica que la columna es una llave externa hacia la tabla y los campos indicados en la definicin. La sintaxis es la

siguiente:

REFERENCES nombre_tabla [ ( columna1 [ , columna2 ... ] ) ] [ ON DELETE { CASCADE | SET DEFAULT | SET NULL } ] [ ON UPDATE { CASCADE | SET DEFAULT | SET NULL } ]

Las clusulas ON DELETE y ON UPDATE indican qu accin hay que ejecutar en el caso en que una tupla en la tabla referenciada sea eliminada o actualizada. De hecho, en dichos casos en la columna referenciante (que es la que se est definiendo) podra haber valores inconsistentes. Las acciones pueden ser:
o

CASCADE: eliminar la tupla que contiene la columna referenciante (en el caso de ON DELETE) o tambin actualizar la columna referenciante (en el caso de ON UPDATE).

o o

SET DEFAULT: asignar a la columna referenziante su valor de defecto. SET NULL: asignar a la columna referenciante el valor NULL.

un control de valor, con el que se permite o no asignar un valor a la columna en funcin del resultado de una expresin. La sintaxis que se usa es:

CHECK (expresin_condicional)

donde expresin_condicional es una expresin que ofrece verdadero o falso. Por ejemplo, si estamos definiendo la columna COLUMNA1, con el siguiente control:

CHECK ( COLUMNA1 < 1000 )

en dicha columna se podrn incluir slo valores inferiores a 1000. vnculo_de_tabla: son vnculos de integridad que se pueden referir a ms columnas de la tabla. Son:

la definicin de la llave primaria:

PRIMARY KEY ( columna1 [ , columna2 ... ] ) Vase que en este caso, a diferencia de la definicin de la llave primaria como vnculo de columna, sta se puede formar con mas de un atributo.

las definiciones de las llaves externas:

FOREIGN KEY ( columna1 [ , columna2 ... ] ) definiciones_de_referencia

La definicin_de_referencia tiene la misma sintaxis y significado que la que puede aparecer como vnculo de columna.

un control de valor, con la misma sintaxis y significado que el que se puede usar como vnculo de columna.

Para aclarar mejor el uso de la instruccin CREATE TABLE, veamos algunas rdenes que implementan la base de datos bibliogrfica ejemplificada.

CREATE TABLE Publication ( ID INTEGER PRIMARY KEY, type CHAR(18) NOT NULL );

La instruccin anterior crea la tabla Publication, formada por las dos columna ID de tipo INTEGER, y type de tipo CHAR(18). ID es la llave primaria de la relacin. En el atributo type hay un vnculo de no nulidad.

CREATE TABLE Book ( ID INTEGER PRIMARY KEY REFERENCES Publication(ID), title VARCHAR(160) NOT NULL, publisher INTEGER NOT NULL REFERENCES Publisher(ID),

volume VARCHAR(16), series VARCHAR(160), edition VARCHAR(16), pub_month CHAR(3), pub_year INTEGER NOT NULL, note VARCHAR(255) );

Crea la relacin Book, formada por nueve atributos. La llave primaria es el atributo ID, que es tambin una llave externa hacia la relacin Publication. Sobre los atributos title, publisher y pub_year hay vnculos de no nulidad. Adems, el atributo publisher es una llave externa hacia la tabla Publisher.

CREATE TABLE Author ( publicationID INTEGER REFERENCES Publication(ID), personID INTEGER REFERENCES Person(ID), PRIMARY KEY (publicationID, personID) );

Crea la relacin Author, compuesta por dos atributos: publicationID y personID. La llave primaria en este caso est formada por la combinacin de los dos atributos, como est indicado por el vnculo de tabla PRIMARY KEY. Publication ID es una llave externa hacia la relacin Publication, mientras que personID lo es hacia la relacin Person.

El archivo create_biblio.sql contiene todas las rdenes necesarias para crear la estructura de la base de datos bibliogrfica ejemplificada.

NOTA SOBRE POSTGRESQL En PotgreSQL, por lo menos hasta la versin 6.5.1, no se han implementado todava los vnculos sobre las llaves externas. El parser acepta, de todos modos, las sintaxis

SQL que le afectan, y por tanto los constructos FOREIGN KEY y REFERENCES no producen un error, sino slo un warning.

1) SQL clave principal: Esta restriccin define una columna o combinacin de columnas que identifica de forma nica cada fila de la tabla. Sintaxis para definir una clave principal a nivel de la columna: column name datatype [CONSTRAINT constraint_name] PRIMARY KEY Sintaxis para definir una clave principal a nivel de tabla: [CONSTRAINT constraint_name] PRIMARY KEY (column_name1,column_name2,..)

column_name1, column_name2 son los nombres de las columnas que definen la clave principal. La sintaxis es decir, dentro del soporte [constraint_name RESTRICCIN] es opcional.

Por ejemplo: Para crear una tabla de empleados con restriccin de clave principal, la consulta sera. Clave principal a nivel de la columna: CREATE TABLE employee ( id number(5) PRIMARY KEY, name char(20), dept char(10), age number(2), salary number(10), location char(10) ); o CREATE TABLE employee ( id number(5) CONSTRAINT emp_id_pk PRIMARY KEY, name char(20), dept char(10), age number(2), salary number(10),

location char(10) ); Clave principal a nivel de la columna: CREATE TABLE employee ( id number(5), name char(20), dept char(10), age number(2), salary number(10), location char(10), CONSTRAINT emp_id_pk PRIMARY KEY (id) ); Clave principal a nivel de tabla: CREATE TABLE employee ( id number(5), NOT NULL, name char(20), dept char(10), age number(2), salary number(10), location char(10), ALTER TABLE employee ADD CONSTRAINT PK_EMPLOYEE_ID PRIMARY KEY (id) ); 2) SQL Clave externa o la integridad referencial: Esta restriccin identifica cualquier referencia a la columna PRIMARY KEY de otra tabla. Se establece una relacin entre dos columnas de la misma tabla o entre tablas diferentes. Para una columna que se define como una clave externa, debe ser un definido como una clave principal en la tabla que se est refiriendo. Una o ms columnas se puede definir como clave externa. Sintaxis para definir una clave externa a nivel de la columna: [CONSTRAINT constraint_name] REFERENCES Referenced_Table_name(column_name) Sintaxis para definir una clave externa a nivel de tabla: [CONSTRAINT constraint_name] FOREIGN KEY(column_name) REFERENCES referenced_table_name(column_name); Por ejemplo:

1) Vamos a usar el "producto" y "tabla order_items". Clave externa a nivel de la columna: CREATE TABLE product ( product_id number(5) CONSTRAINT pd_id_pk PRIMARY KEY, product_name char(20), supplier_name char(20), unit_price number(10) ); CREATE TABLE order_items ( order_id number(5) CONSTRAINT od_id_pk PRIMARY KEY, product_id number(5) CONSTRAINT pd_id_fk REFERENCES, product(product_id), product_name char(20), supplier_name char(20), unit_price number(10) ); Clave externa a nivel de tabla: CREATE TABLE order_items ( order_id number(5) , product_id number(5), product_name char(20), supplier_name char(20), unit_price number(10) CONSTRAINT od_id_pk PRIMARY KEY(order_id), CONSTRAINT pd_id_fk FOREIGN KEY(product_id) REFERENCES product(product_id) ); 2) Si la tabla de empleados tiene un "mgr_id", es decir, id gerente como una clave externa que hace referencia a 'id' clave primaria dentro de la misma tabla, la consulta sera como, CREATE TABLE employee ( id number(5) PRIMARY KEY, name char(20), dept char(10), age number(2), mgr_id number(5) REFERENCES employee(id), salary number(10), location char(10) );

3) SQL No es nulo Restriccin: Esta restriccin garantiza que todas las filas de la tabla contiene un valor definido para la columna que se especifica como no nulo. Lo que significa un valor nulo no es permitido. Sintaxis para definir una restriccin NOT NULL: [CONSTRAINT constraint name] NOT NULL Por ejemplo: Para crear una tabla de empleados con valor nulo, la consulta sera como CREATE TABLE employee ( id number(5), name char(20) CONSTRAINT nm_nn NOT NULL, dept char(10), age number(2), salary number(10), location char(10) ); 4) SQL Unique Key: Esta restriccin asegura que una columna o un grupo de columnas en cada fila tiene un valor distinto. Una columna (s) puede tener un valor nulo, pero los valores no puede ser duplicada. Sintaxis para definir una clave nica a nivel de la columna: [CONSTRAINT constraint_name] UNIQUE Sintaxis para definir una clave nica a nivel de tabla: [CONSTRAINT constraint_name] UNIQUE(column_name) Por ejemplo: Para crear una tabla de empleados con clave nica, la consulta sera como, Clave nica a nivel de la columna: CREATE TABLE employee ( id number(5) PRIMARY KEY, name char(20), dept char(10), age number(2),

salary number(10), location char(10) UNIQUE ); o CREATE TABLE employee ( id number(5) PRIMARY KEY, name char(20), dept char(10), age number(2), salary number(10), location char(10) CONSTRAINT loc_un UNIQUE ); Clave nica a nivel de tabla: CREATE TABLE employee ( id number(5) PRIMARY KEY, name char(20), dept char(10), age number(2), salary number(10), location char(10), CONSTRAINT loc_un UNIQUE(location) ); 5) SQL restriccin CHECK: Esta restriccin define una regla de negocio en una columna. Todas las filas deben cumplir esta regla. La restriccin puede ser aplicado para una sola columna o un grupo de columnas. Sintaxis para definir una restriccin de comprobacin: [CONSTRAINT constraint_name] CHECK (condition) Por ejemplo: En la tabla de empleados para seleccionar el sexo de una persona, la consulta sera como Restriccin de comprobacin a nivel de la columna: CREATE TABLE employee ( id number(5) PRIMARY KEY, name char(20), dept char(10),

age number(2), gender char(1) CHECK (gender in ('M','F')), salary number(10), location char(10) ); Restriccin de comprobacin a nivel de tabla: CREATE TABLE employee ( id number(5) PRIMARY KEY, name char(20), dept char(10), age number(2), gender char(1), salary number(10), location char(10), CONSTRAINT gender_ck CHECK (gender in ('M','F')) );

Conclusin

Comprendimos el significado del lenguaje proporcionado por el sistema de gestin de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definicin de las estructuras que almacenarn los datos as como de los procedimientos o funciones que permitan consultarlos, cmo tambin la sintaxis te la creacin de una tabla en SQL, algunas caracteristicas de DDL y DML, ect.

Bliografa
es.wikipedia.org/wiki/SQL. www.slideshare.net/.../manejo-de-SQL www.hipertexto.info/documentos/SQL.htm

You might also like