Unidad 6 Lenguaje Sql

21
Sergio Sánchez Bases de Datos Unidad VI Lenguaje SQL “Introducción y Lenguaje de definición de datos (DDL)” Sergio Sánchez Rios. Ingeniero en Informática – Licenciado en Informática Docente Jornada Parcial Universidad Viña del Mar

Transcript of Unidad 6 Lenguaje Sql

Page 1: Unidad 6 Lenguaje Sql

Sergio Sánchez

Bases de DatosUnidad VI

Lenguaje SQL“Introducción y

Lenguaje de definición de datos (DDL)”

Sergio Sánchez Rios.

Ingeniero en Informática – Licenciado en Informática

Docente Jornada Parcial Universidad Viña del Mar

Page 2: Unidad 6 Lenguaje Sql

Sergio Sánchez

Introducción

El lenguaje SQL (Structured Query Language) es el lenguaje estándar actual para los sistemas de base de datos relacionales. Fue desarrollado originalmente por IBM a mediados de la década de los setenta, e implementado por primera vez en un prototipo de IBM, System R.

En el año 1986, el lenguaje SQL fue propuesto por ANSI (Instituto nacional de normalización americano) como lenguaje relacional, y fue aceptado en 1987 por ISO como lenguaje estándar. Versiones posteriores de este lenguaje han aparecido en 1989,1992, y 1999.

En sus orígenes fue un lenguaje de tipo lógico, basado en el calculo relacional ( de tuplas ) de E. F. Cood. Posteriormente fueron incorporados aspectos (operadores) algebraicos.

Page 3: Unidad 6 Lenguaje Sql

Sergio Sánchez

Introducción

Se puede afirmar que el SQL actual es un hibrido entre el Algebra Relacional y el Cálculo Relacional (de Tuplas).

El lenguaje SQL proporciona un sublenguaje de Definición de Datos (DDL, Data Definition Language) y un sublenguaje de Manipulación de Datos (DML, Data Manipulation Language).

Este lenguaje puede ser utilizado también en modo incrustado (o embebido), es decir, en un programa escrito en un lenguaje de alto nivel ( C, Java, Visual Basic, etc.).

Page 4: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Fundamentos de la Definición de Datos

La estructura básica de una base de datos relacional.

Base de Datos

Catálogos

Esquemas

Tablas y Vistas

Privilegios

Columnas

La tabla es la unidad básica de gestión de datos en una base de datos relacional en SQL. El esquema de la tabla está definida por las columnas y sus tipos.

Page 5: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición de Tablas

Una tabla es un objeto de una base de datos que almacena datos en una colección de filas y columnas. Una tabla se define por las columnas que contiene. Así los datos pueden organizarse de forma similar a una hoja de cálculo.

Recordar que una Tabla es lo mismo que una Relación.

Para definir una tabla se debe decidir qué columnas definir y que tipo de datos, como por ejemplo datos de caracteres o numéricos, se permite que haya en cada columna.

También se debe decidir sobre un rango permisible a esos datos – por ejemplo, podría decidirse permitir hasta 30 caracteres o números de 4 bytes. Estos atributos se especifican mediante la asignación a cada columna de un tipo de datos, que es un conjunto de atributos que determinan que tipo y rango de datos puede albergar esa columna.

Page 6: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición de Tablas

La asignación de tipos de datos a una columna fija los siguientes atributos:

La clase de datos que la columna puede contener, como caracteres, enteros o imagines.

El tamaño o longitud de los datos de una columna.

La precisión del número (solo para tipos numéricos) - esto es, el número de dígitos que puede contener un número.

La escala del número (sólo para tipos numéricos) – esto es, el número de dígitos que pueden almacenarse a la derecha del punto decimal.

A continuación se darán a conocer un conjunto de tipos de datos pertenecientes a SQL SERVER. Cada SGBD posee sus tipos de datos que varían en nombre pero no en conceptos.

Page 7: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición de Tablas

Tipos de Datos SQL SERVER:

Numéricos: BIT, INT, SMALLINT, DECIMAL, NUMERIC, MONEY, SMALMONEY, FLOAT.

Fechas: DATETIME, SMALLDATETIME.

String: CHAR, VARCHAR, TEXT, NCHAR, NVARCHAR, NTEXT.

String Binarias : BINARY, VARBINARY, IMAGE.

Page 8: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición de Tablas

Creación 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 físico 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.

Page 9: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición de Tablas

Creación de Tablas

Nomenclatura:

CREATE TABLE nombre_tabla (

nombre_atributo1 tipo dato,

nombre_atributo2 tipo_dato,

…………

nombre_atributoN tipo_dato,

)

Ejemplo:

CREATE TABLE demo2(

codigo INT,

nombre char(20),

estado char (2),

)

Conjunto de Atributos con sus respectivos tipos de datos.

NOTA: Para poder ver las tablas creadas en tu esquema relacional en SQL SERVER ejecuta el siguiente comando:

select * from information_schema.tables where TABLE_TYPE = 'BASE TABLE‘

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

NOTA: Para poder ver las tablas creadas en tu esquema relacional en SQL SERVER ejecuta el siguiente comando:

select * from information_schema.tables where TABLE_TYPE = 'BASE TABLE‘

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

Page 10: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición de Tablas

Eliminación 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

Page 11: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición de Tablas

Eliminación 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

Page 12: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición de Tablas

Uso de Valores NULL

Un valor NULL es un valor desconocido al que se le refiere como NULL.

La admisión 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 añadir en un momento posterior.

Los valores NULL no son ni valores vacíos ni valores 0; sus valores verdaderos son desconocidos - así no hay dos valores NULL que sean iguales.

Page 13: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición 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.

Page 14: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición de Tablas

Valor por DEFECTO

A las columnas también 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 reservadaPara el caso de números dentro del paréntesis sólo se coloca el número, en el caso de texto se coloca entre comas simples ‘ ‘.

DEFAULT es la palabra reservadaPara el caso de números dentro del paréntesis sólo se coloca el número, en el caso de texto se coloca entre comas simples ‘ ‘.

Page 15: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición de Tablas

Propiedad IDENTITY

Al crear una tabla se puede especificar una columna como columna de identidad añadiendo la propiedad IDENTITY a la definición de la columna.

Si se crea una columna con la propiedad IDENTITY se genera automáticamente un valor de fila para esa columna, basándose 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 sería 1

Para la segunda fila el valor del atributo sería 3

Nomenclatura:

Nombre_Atributo tipo_dato IDENTITY (valor semilla, valor incremento)

Page 16: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición 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 código con la propiedad IDENTITY comenzando con un valor base 1 e incrementando de 1 en 1.

Page 17: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición 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 código con la propiedad IDENTITY comenzando con un valor base 1 e incrementando de 1 en 1.

Page 18: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición de Tablas

ALTER TABLE

La instrucción ALTER TABLE se utiliza para modificar la definición o los atributos de una tabla.

Se pueden modificar columnas, eliminar atributos, modificar restricciones, añadir atributos, etc.

Nomenclatura:

ALTER TABLE nombre_tabla

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

Page 19: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición de Tablas

ALTER TABLE

Ejemplo:

CREATE TABLE ejemplo (

atributo1 int,

atributo2 nvarchar

)

/* Se modifica columna*/

ALTER TABLE ejemplo

ALTER COLUMN atributo2 int

Se cambia el tipo de dato del atributoSe cambia el tipo de dato del atributo

Page 20: Unidad 6 Lenguaje Sql

Sergio Sánchez

Lenguaje de Definición de Datos (DDL)Instrucciones – Definición de Tablas

ALTER TABLE

Ejemplo:

/* Agregar una columna nueva*/

ALTER TABLE ejemploADD atributo3 int

/* Borrar una columna sin restricciones*/

ALTER TABLE ejemplo

DROP COLUMN atributo2

Se elimina un atributo de la tabal ejemploSe elimina un atributo de la tabal ejemplo

Se agrega una columnaSe agrega una columna

Page 21: Unidad 6 Lenguaje Sql

Sergio Sánchez

Bibliografía

“Introducción a los Sistemas de Base de Datos”, C. J. Date, Prentice Hall – Séptima Edición, 2001.

“Running SQL SERVER 2000”, Marci Frohock García & Jamie Reding & Edward Whalen & Steve Adrien Deluca, McGraw – Hill – 2001.

“SQL SERVER 7.0 – Iniciación y Referencia”, José Antonio Ramalho, McGraw-Hill – 2000.

“Bases de Datos Relacionales”, Matilde Celma Giménez & Juan Casamayor & Laura Mota, Prentice Hall, 2003.

Cátedra “Introducción a las bases de datos”, Profesor L. Marti, Universidad de Valparaíso, 2004.