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
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.
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.).
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.
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.
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.
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.
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.
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
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
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
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.
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.
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 ‘ ‘.
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)
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.
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.
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.
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
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
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.
Top Related