Sunteți pe pagina 1din 40

Bases de Datos

Structured Query Language SQL

Temas de hoy
Terminologa

y otras yerbas. Creacin de una tabla. Comando desc. Insercin de registros. Seleccin de registros. Actualizacin de valores. Borrado de valores.

Terminologa
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, que lo utilizan todo tipo de usuarios, desde el administrador de la base de datos, DBA, hasta el usuario final.

Terminologa
El SQL es relacionalmente completo. Permite la realizacin de cualquier consulta de datos. Lenguaje de Definicin de Datos, DDL, son sentencias del SQL que permiten definir los objetos de la Base de Datos (create, revoke, grant, alter, etc.). Cuando se definen dichos objetos se almacenan en el diccionario de datos.

Terminologa

Commit: Permite que las acciones realizadas sean reflejadas en la base de datos Rollback: Permite impedir que los ltimos cambios lleguen a efectuarse, aunque existen algunas sentencias SQL que se 'autoconfirman' y no se pueden volver atrs. Diccionario de la Base de Datos: Guarda la definicin de todos los objetos almacenados en la base de datos; sus caractersticas, restricciones, privilegios, relaciones entre ellos, etc.

Terminologa
Las sentencias SQL pertenecen a dos categoras principales: Lenguaje de Definicin de Datos, DDL.

Permite

crear objetos en la base de datos y sus efectos se pueden ver en el diccionario de la base de datos. (Commit implcito)
consultar, insertar, modificar y eliminar la informacin almacenada en los objetos de la base de datos.

Lenguaje de Manipulacin de Datos, DML.


Permite

Sentencias DDL

Sentencias DML

Creacin de Base de Datos

Creacin de Base de Datos

Consideraciones
La primera fase de cualquier base de datos comienza siempre con sentencias DDL, ya que antes de poder almacenar informacin debemos definir los objetos bsicos donde agrupar la informacin. Los objetos bsicos con que trabaja SQL son las tablas. Una tabla es un conjunto de celdas agrupadas en filas y columnas donde se almacenan elementos de informacin.

Consideraciones

Antes de crear una tabla conviene planificar:


Nombre de la tabla, Nombre de cada columna, Tipo y tamao de los datos almacenados en cada columna, Informacin adicional, restricciones, etc.

Hay que tener en cuenta tambin ciertas restricciones en la formacin de los nombres de las tablas:

Longitud mxima de 30 caracteres. No puede haber nombres de tabla duplicados, Deben comenzar con un carcter alfabtico, Permitir caracteres alfanumricos y el guin bajo '_ No se distingue entre maysculas y minsculas

Tipos de Datos

Tipos de Datos

Tipos de Datos

Definicin de Tablas

Creacin de Tablas El comando CREATE TABLE tiene por finalidad crear una nueva tabla en la base de datos. SQL SERVER permite hasta dos billones de tablas por base de datos y hasta 1024 columnas por tabla. No existe limite para la cantidad de filas por tabla, salvo por el espacio fsico disponible. Nomenclatura: CREATE TABLE table_name ( { <column_definition> | column_name as computed_colum_expression | <table_constraint> } [, . N] [ON { filegroup | DEFAULT} ] [ TEXTIMAGE_ON {filegroup | DEFAULT ] Table_name. Es el nombre de la tabla que se va a crear. <Column_definition>. Especifica el tipo de datos de la columna de la tabla.

Lenguaje de Definicin de Datos (DDL)


Instrucciones Definicin de Tablas
Creacin de Tablas

Nomenclatura:
CREATE TABLE nombre_tabla ( nombre_atributo1 tipo dato, nombre_atributo2 tipo_dato, nombre_atributoN tipo_dato, ) NOTA: Para poder ver las tablas creadas en tu esquema relacional en SQL SERVER ejecuta el siguiente comando: select * from information_schema.tables TABLE_TYPE = 'BASE TABLE where

Conjunto de Atributos con sus respectivos tipos de datos.

Ejemplo:
CREATE TABLE demo2( codigo INT, nombre char(20), estado char (2), )

Para poder ver el detalle de una tabla ejecuta el siguiente comando: select * from information_schema.columns where TABLE_NAME = Nombre_Tabla' order by table_name Sergio Snchez

Lenguaje de Definicin de Datos (DDL)


Instrucciones Definicin de Tablas
Eliminacin de Tablas

Tal como existe una sentencia para crear tablas existe una para borrarlas por completo de un esquema (schema, este se define por lo nombres de usuarios definidos para la base de datos).

Nomenclatura:
DROP TABLE nombre_tabla_a_eliminar

Ejemplo: DROP TABLE Demo2

Lenguaje de Definicin de Datos (DDL)


Instrucciones Definicin de Tablas
Uso de Valores NULL

Un valor NULL es un valor desconocido al que se le refiere como NULL. La admisin de nulos de una columna se refiere a la posibilidad de la columna de aceptar o rechazar valores NULL.

Un valor NULL en una columna indica normalmente que no se ha introducido nada para una fila particular de datos porque el valor es desconocido, no aplicable, no definido o se ha de aadir en un momento posterior.
Los valores NULL no son ni valores vacos ni valores 0; sus valores verdaderos son desconocidos - as no hay dos valores NULL que sean iguales.

Lenguaje de Definicin de Datos (DDL)


Instrucciones Definicin de Tablas
Uso de Valores NULL

Ejemplo de Uso:
CREATE TABLE ejemplo ( atributo1 int NOT NULL, atributo2 char NULL ) Ejercicio: Cree la tabla Demo2 colocando el atributo codigo y estado como NOT NULL . Se especifica generalmente solo en el caso del NOT NULL, ya que por defecto son NULL.

Lenguaje de Definicin de Datos (DDL)


Instrucciones Definicin de Tablas
Valor por DEFECTO

A las columnas tambin se les puede colocar un valor por defecto, en el caso de que no se ingresen datos en esa fila. Para poder hacer esto la columna debe ser pensada para aceptar datos NULL.
Nomenclatura:

nombre_atributo tipo_de_dato DEFAULT (Valor)


Ejemplo: CREATE TABLE ejemplo ( atributo1 int NOT NULL, atributo2 char DEFAULT (A), atributo3 int DEFAULT(1) )
DEFAULT es la palabra reservada Para el caso de nmeros dentro del parntesis slo se coloca el nmero, en el caso de texto se coloca entre comas simples .

Lenguaje de Definicin de Datos (DDL)


Instrucciones Definicin de Tablas
Propiedad IDENTITY

Al crear una tabla se puede especificar una columna como columna de identidad aadiendo la propiedad IDENTITY a la definicin de la columna.
Si se crea una columna con la propiedad IDENTITY se genera automticamente un valor de fila para esa columna, basndose en un valor semilla y un valor de incremento. Ejemplo: valor semilla (1) y valor incremento (2) Para la primera fila el valor del atributo sera 1

Para la segunda fila el valor del atributo sera 3


Nomenclatura: Nombre_Atributo tipo_dato IDENTITY (valor semilla, valor incremento)

Lenguaje de Definicin de Datos (DDL)


Instrucciones Definicin de Tablas
Propiedad IDENTITY

Ejemplo:
CREATE TABLE ejemplo ( atributo1 int IDENTITY (1,1) NOT NULL, atributo2 nvarchar(20), )

Ejercicio:

Crear la tabla DEMO2 colocando el cdigo con la propiedad IDENTITY comenzando con un valor base 1 e incrementando de 1 en 1.

Lenguaje de Definicin de Datos (DDL)


Instrucciones Definicin de Tablas
ALTER TABLE

La instruccin ALTER TABLE se utiliza para modificar la definicin o los atributos de una tabla.
Se pueden modificar columnas, eliminar atributos, modificar restricciones, aadir atributos, etc.

Nomenclatura:

ALTER TABLE nombre_tabla (tipo de cambio) ALTER COLUMN, ADD, DROP.

Lenguaje de Definicin de Datos (DDL)


Instrucciones Definicin de Tablas
ALTER TABLE

Ejemplo:
CREATE TABLE ejemplo ( atributo1 int, atributo2 nvarchar ) /* Se modifica columna*/ ALTER TABLE ejemplo
Se cambia el tipo de dato del atributo

ALTER COLUMN atributo2 int

Lenguaje de Definicin de Datos (DDL)


Instrucciones Definicin de Tablas
ALTER TABLE

Ejemplo:
/* Agregar una columna nueva*/

ALTER TABLE ejemplo ADD atributo3 int

Se agrega una columna

/* Borrar una columna sin restricciones*/ ALTER TABLE ejemplo DROP COLUMN atributo2
Se elimina un atributo de la tabal ejemplo

Restricciones

Restricciones Genricas

Restricciones de Campos

Se utiliza en instrucciones CREATE TABLE y ALTER TABLE para crear o eliminar restricciones. Esta clusula puede referirse a un campo de la tabla. La restriccin Primary Key y Unique generan ndice, Foreign key no.

Lenguaje de Definicin de Datos (DDL)


Restriccin PRIMARY KEY
La restriccin PRIMARY KEY se usa para especificar la clave primaria de una tabla, la columna o conjunto de columnas que identifican unvocamente a una fila. Debido a que identifica a una fila la clave primaria nunca puede ser NULL, esto es la que lo diferencia de la restriccin UNIQUE. Para la definicin de la restriccin PRIMARY KEY se pueden utilizar las instrucciones CREATE TABLE y ALTER TABLE. Nomenclatura para CREATE TABLE: nombre_campo tipo_dato PRIMARY KEY

Ejemplo 1: Crea una Tabla denominada Ejemplo_Clave_PR, basada en la siguiente tupla: Ejemplo_Clave_PR (codigo: numeric, nombre: nvarchar(20)). Colocando el campo codigo como clave primaria.

Lenguaje de Definicin de Datos (DDL)


Restriccin PRIMARY KEY
Ejemplo 1: CREATE TABLE Ejemplo_Clave_PR ( codigo numeric PRIMARY KEY, nombre nvarchar(20) ) Adems usando CREATE TABLE se le puede asignar un nombre a la restriccin PRIMARY KEY (IDEAL) , usando la siguiente nomenclatura: Para cuando se coloca al lado del campo:
Compruebe si se cumple la restriccin de clave primaria ingresando dos filas con el mismo cdigo.

nombre_campo tipo_dato CONSTRAINT PK_nombre_clave PRIMARY KEY


Para cuando se coloca antes de cerrar el CREATE TABLE CONSTRAINT PK_nombre_clave PRIMARY KEY (columna o columnas)

Lenguaje de Definicin de Datos (DDL)


Restriccin PRIMARY KEY
Nomenclatura para ALTER TABLE: ALTER TABLE nombre_tabla ADD CONSTRAINT PK_nombre_clave PRIMARY KEY (columna o columnas) Nomenclatura para BORRAR una clave primaria: ALTER TABLE nombre_tabla DROP CONSTRAINT PK_nombre_clave
NOTA: EN LA BASE DE DATOS NO PUEDEN EXISTIR DOS RESTRICCIONES CON EL MISMO NOMBRE, AUNQUE SEAN DE TABLAS DISTINTAS. NOTA: Por nomenclatura al dar un nombre a una clave primaria es ideal comenzar con la letras PK

Lenguaje de Definicin de Datos (DDL)


Restriccin FOREIGN KEY
Una restriccin FOREIGN KEY define una clave externa, que identifica una relacin entre dos tablas. La columna o columnas clave externa de una tabla referencia a una clave candidata una o varias columnas de otra tabla. Cuando se inserta una fila en la tabla con la restriccin FOREIGN KEY, los valores que se van a introducir en la columna o columnas que se han definido como clave externa se comprueban frente a los valores de la clave candidata de la tabla referenciada. Si ninguna fila de la tabla referenciada se ajusta a los valores de la clave externa, la nueva fila no se puede insertar. La restriccin FOREIGN KEY tambin se comprueba cuando se realizan actualizaciones y borrados en la tabla referenciada o la tabla que posee la clave externa. Una clave externa slo puede referenciar columnas que tengan las restricciones PRIMARY KEY o UNIQUE en la tabla referenciada.

Lenguaje de Definicin de Datos (DDL)


Restriccin FOREIGN KEY
Una clave externa slo puede referenciar columnas que tengan las restricciones PRIMARY KEY o UNIQUE en la tabla referenciada. Adems, el tipo de dato y el tamao de la columna o columnas de la clave externa, tambin debe coincidir con el de la columna o columnas referenciadas. Esta restriccin FOREIGN KEY se puede asignar utilizando la sentencia CREATE TABLE y ALTER TABLE. Nomenclatura en CREATE TABLE (Siempre se agrega antes de finalizar la creacin de la tabla): CONSTRAINT FK_nombre_clave_ajena FOREIGN KEY (columna o columnas que guardaran los valores de la clave ajena) REFERENCES nombre_tabla_referencia (columna o columna que poseen datos a validar)

Lenguaje de Definicin de Datos (DDL)


Restriccin FOREIGN KEY
Ejemplo 5: Crear las siguientes tablas basadas en las tuplas: Colegio (codigo_col: numero,nombre:nvarchar(20)) Alumno (rut: numero, digito: char(2), nombre: nvarchar(20), colegio: numero) Restricciones: Colegio clave primaria codigo_col y Alumno clave primaria rut y digito. Adems en alumno colegio es una clave externa que se debe verificar en Colegio. Paso 1: Crear las Tablas CREATE TABLE COLEGIO( codigo_col numeric, nombre nvarchar(20) NOT NULL, CONSTRAINT PK_colegio PRIMARY KEY (codigo_col) )

Lenguaje de Definicin de Datos (DDL)


Restriccin FOREIGN KEY
Ejemplo 5: Paso 1: Crear las Tablas CREATE TABLE ALUMNO( rut numeric, digito char(2), nombre nvarchar(20) NOT NULL, colegio numeric NOT NULL, CONSTRAINT PK_alumno PRIMARY KEY (rut,digito),

CONSTRAINT FK_alumno_colegio FOREIGN KEY (colegio)


REFERENCES COLEGIO (codigo_col) )

Lenguaje de Definicin de Datos (DDL)


Restriccin FOREIGN KEY
Ejemplo 5: Paso 2: Comprobacin de la RESTRICCION DE CLAVE FORANEA Ingrese dos colegios: (1,ESCUELA DEL SABER) (2,ESCUELA 2) Ingrese dos alumnos colocando en el campos colegio uno de los dos colegios antes ingresado. Luego ingrese un tercer alumno haciendo referencia al cdigo de colegio 3.

Lenguaje de Definicin de Datos (DDL)


Restriccin FOREIGN KEY
Nomenclatura en ALTER TABLE (para cuando se desea crear una clave externa despus de haber creado la tabla): ALTER TABLE nombre_tabla ADD CONSTRAINT FK_nombre_clave_ajena FOREIGN KEY (columna o columnas para recepcin de clave ajena) REFERENCES nombre_tabla_referencia (columna o columnas de referencia)

Nomenclatura para borrar una clave ajena: ALTER TABLE nombre_tabla

DROP CONSTRAINT FK_nombre_restriccion

Lenguaje de Definicin de Datos (DDL)


Restriccin CHECK
La restriccin CHECK se usa para restringir los valores permitidos de una columna o unos valores especficos. Los valores de una columna que se van a introducir o actualizar se confirman. Se puede agregar esta restriccin utilizando las instrucciones CREATE TABLE o ALTER TABLE.

Nomenclatura CREATE TABLE: CONSTRAINT CK_nombre_restriccion CHECK (condiciones)

Ejemplo 6: Crear una Tabla Ejemplo_CH basandose en la siguiente tupla: Ejemplo_CK (codigo: numeric, nombre: nvarchar(20)). Donde codigo es la clave primaria y solo puede aceptar valores entre 1 y 100.

Lenguaje de Definicin de Datos (DDL)


Restriccin CHECK
Ejemplo 6:
CREATE TABLE Ejemplo_CK ( codigo numeric, nombre nvarchar(20), CONSTRAINT PK_codigo PRIMARY KEY (codigo), CONSTRAINT CK_codigo_condicion CHECK (codigo > 0 and codigo < 101) )

Para probar la realidad de la restriccin ingrese un registro a la tabla Ejemplo_CK con un codigo con valor mayor que 100.

Lenguaje de Definicin de Datos (DDL)


Restriccin CHECK
Nomenclatura para ALTER TABLE (en el caso de que se cree una restriccin despus de haber creado la tabla): ALTER TABLE nombre_tabla ADD CONSTRAINT CK_nombre_restriccion CHECK (condiciones)

Nomenclatura para Borrar una restriccin CHECK: ALTER TABLE nombre_tabla DROP CONSTRAINT CK_nombre_restriccion

S-ar putea să vă placă și