Unidad iv ddl

Post on 29-Jun-2015

466 views 0 download

Transcript of Unidad iv ddl

1

Unidad IV :- Introducción al lenguaje SQL.

Se analizará el sublenguaje DDL (Data Definition Language) para la creación de base de datos y tablas utilizando SQL.

2M.C. Daniel Esparza Soto

Introducción

El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar determinadas operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalización hay excepciones para casi todo; de hecho, cada motor de bases de datos tiene sus peculiaridades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servirá para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI será interpretable por cualquier motor de datos.

3M.C. Daniel Esparza Soto

Breve Historia

La historia de SQL (que se pronuncia deletreando en inglés las letras que lo componen, es decir "ese-cu-ele" y no "siquel" como se oye a menudo) empieza en 1974 con la definición, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigación de IBM, de un lenguaje para la especificación de las características de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975.

4M.C. Daniel Esparza Soto

Breve Historia

Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de nombre por motivos legales, convirtiéndose en SQL. El prototipo (System R), basado en este lenguaje, se adoptó y utilizó internamente en IBM y lo adoptaron algunos de sus clientes elegidos.

5M.C. Daniel Esparza Soto

Breve Historia

A partir de 1981, IBM comenzó a entregar sus productos relacionales y en 1983 empezó a vender DB2. En el curso de los años ochenta, numerosas compañías (por ejemplo Oracle y Sybase, sólo por citar algunos) comercializaron productos basados en SQL, que se convierte en el estándar industrial de hecho por lo que respecta a las bases de datos relacionales. i

6M.C. Daniel Esparza Soto

Breve Historia

En 1986, el ANSI adoptó SQL (sustancialmente adoptó el dialecto SQL de IBM) como estándar para los lenguajes relacionales y en 1987 se transfomó en estándar ISO. Esta versión del estándar va con el nombre de SQL/86. En los años siguientes, éste ha sufrido diversas revisiones que han conducido primero a la versión SQL/89 y, posteriormente, a la actual SQL/92.

El hecho de tener un estándar definido por un lenguaje para bases de datos relacionales abre potencialmente el camino a la intercomunicabilidad entre todos los productos que se basan en él.

7M.C. Daniel Esparza Soto

Componentes del SQL

El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.

Existen dos tipos de comandos SQL: DDL(Data Definition Langiage) que permiten crear y definir nuevas bases de datos, campos e índices.

DML(Data Manipulation Language) que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.

8M.C. Daniel Esparza Soto

SQL Server

es un sistema de gestión de base de datos relacionales (SGDB) basada en el lenguaje SQL, capaz de poner a disposición de muchos usuarios grandes cantidades de datos de manera simultánea.

Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle, Sybase ASE o MySQL.

Este sistema incluye una versión reducida, llamada MSDE con el mismo motor de base de datos pero orientado a proyectos más pequeños, que en su versión 2005 pasa a ser el SQL Express Edition.

9M.C. Daniel Esparza Soto

Ventajas de SQL Server

Soporte de transacciones. Escalabilidad, estabilidad y seguridad. Soporta procedimientos almacenados. Incluye también un potente entorno gráfico de

administración, que permite el uso de comandos DDL y DML gráficamente.

Permite trabajar en modo cliente-servidor donde la información y datos se alojan en el servidor y las terminales o clientes de la red sólo acceden a la información.

Además permite administrar información de otros servidores de datos.

10M.C. Daniel Esparza Soto

Componentes de SQL Server

Administrador de servicios

Es la herramienta que se utiliza para ejecutar el servicio de SQL Server y tener disponibles las BD. Cuenta también con los siguientes servicios:

1.- Coordinador de Transacciones Distribuidas.

2.- SQL Server Agent.

3.- SQL Server.

11M.C. Daniel Esparza Soto

Componentes de SQL Server

Administrador corporativo: Es la herramienta gráfica que se utiliza para administrar todos los objetos dentro del servidor.

Analizador de consultas: Es la herramienta de texto mediante la cual se administra el servidor utilizando todas las instrucciones SQL.

12M.C. Daniel Esparza Soto

Componentes del SQL

El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.

Existen dos tipos de comandos SQL: DDL(Data Definition Language) que permiten crear y definir nuevas bases de datos, campos e índices.DML(Data Manipulation Language) que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.

13M.C. Daniel Esparza Soto

DDL(Data Definition Language)

1.- Creación de base de datos.

2.- Creación de tablas.

3.- Integridad referencial:

- Llave primaria (Primary Key).

- Llave externa (Foreign Key).

- Llave única (Unique Constraint).

- Restricción de comprobación (Check Constraint).

- Restricción de valor predefinido (Default Constraint).

14M.C. Daniel Esparza Soto

1.- Creación de base de datos.

Las bases de datos utilizan dos archivos:a.- Archivo de datos: archivo principal donde se guarda la información de la BD. Son archivos físicos con extensión MDF si es archivo primario y con extensión NDF si es archivo secundario.

b.- Archivo del registro de transacciones: es el archivo donde se guardarán las transacciones que ocurren en el servidor, tienen una extensión LDF.

15M.C. Daniel Esparza Soto

1.- Creación de base de datos.

CREATE DATABASE nombreBDON ( NAME = 'nombre_lógico', FILENAME = 'nombre_físico', SIZE = tamaño , MAXSIZE = tamañomax , FILEGROWTH = FactorCrecimiento ) LOG ON ( NAME = 'nombreLogico_log' , FILENAME = 'nombre_físico_Log', SIZE = tamaño , MAXSIZE = tamañomax , FILEGROWTH = FactorCrecimiento )

16M.C. Daniel Esparza Soto

1.- Creación de base de datos.

CREATE DATABASE Ventas ON ( NAME = Ventas_dat , FILENAME = 'c:\Archivos de programa\microsoft sql server\mssql\data\ Ventas_dat.mdf', SIZE = 10, MAXSIZE = 50, FILEGROWTH = 5 ) LOG ON ( NAME = VEntas_log', FILENAME = 'c:\Archivos de programa\microsoft sql server\mssql\data\Ventas_log.ldf', SIZE = 5MB, MAXSIZE = 25MB, FILEGROWTH = 5MB )

Ejemplos

17M.C. Daniel Esparza Soto

2.- Creación de tablas.

Las tablas almacenan todos los datos de una base de datos y estan organizadas en filas y columnas (registros y campos). Cada columna puede almacenar un tipo de dato específico de información.

Cada tabla individual representa una entidad en la BD. Cada fila de la tabla representa una ocurrencia de esa entidad.

Concepto Lógico Concepto físicoEntidad TablaAtributo Campo o Columna

18M.C. Daniel Esparza Soto

2.- Creación de tablas.

Sintaxis para crear tablas sin integridad referencial :

Create Table NomTabla (

NomColumna TipoDato [ NULL| NOT NULL ] , ...n )

Donde el TipoDato :Enteros Exactos Cadena de caracteres

bigint char( n )

int Varchar( n )

smallint nText

tinyint nchar( n )

Bit nvarchar( n )

Bit nText

Decimales y flotantes Fecha

Decimal( n , d ) Datetime

Numeric( n , d ) smalldatetime

float Especiales

real timestamp

Money Tablesmallmoney cursor

19M.C. Daniel Esparza Soto

DML: Data Manipulation Language

1.- Instrucción INSERT.

2.- Instrucción DELETE.

3.- Instrucción UPDATE.

4.- Instrucción SELECT.

20M.C. Daniel Esparza Soto

1.- Instrucción INSERT

Esta instrucción añade filas de una en una a una tabla. Variaciones de la instrucción INSERT permiten añadir varias filas, seleccionando datos de otras tabla o ejecutando un procedimiento almacenado. En cualquier de estos casos debe considerar lo siguiente:1.- El numero de columnas de la tabla.2.- El tipo de dato de cada columna.3.- El nombre de las columnas para algunas instrucciones INSERT.4.- Las restricciones y propiedades de cada columna.

INSERT [INTO] table_name [(column_list)]VALUES( lista_valores )

21M.C. Daniel Esparza Soto

1.- Instrucción INSERT

La forma mas simple de la instrucción INSERT requiere un valor para cada columna de la tabla en el orden en que fueron definidas las columnas.

INSERT [INTO] table_name

VALUES( lista_valores )

22M.C. Daniel Esparza Soto

1.- Instrucción INSERT

Si se desea omitir el valor para una columna, es necesario considerar los siguiente:

1.- La columna tiene un valor predeterminado.

2.- La columna es una columna identidad.

3.- La columna permite nulos.

4.- La columna es de tipo timestamp.

Para omitir el valor para una columna, entonces la sintaxis es la siguiente:INSERT [INTO] table_name (column_list)

VALUES( lista_valores )

23M.C. Daniel Esparza Soto

1.- Instrucción INSERT: Valores predeterminados

Cuando una columna tiene un valor predeterminado, al insertar un valor se utiliza la palabra clave DEFAULT en la lista de valores.

INSERT [INTO] table_name (column_list)

VALUES( valor1,DEFAULT , valor2, ... )

24M.C. Daniel Esparza Soto

1.- Instrucción INSERT: usando SELECT

Si se quieren insertar mas de una fila en una sola instrucción debera tenr una fuente en donde ta existan esas filas. En esta forma de la instrucción INSERT puede usar una subconsulta para determinar las filas de datos que se van a insertar, el resultado de la subconsulta se convierte en el conjunto se filas a insertar. La cantidad de columnas del conjunto resultante debe concordar con la cantidad de columnas de la tabla, y los tipos de datos deben ser compatibles.INSERT [INTO] table_name SELECT Lista_Columnas FROM tabla2

25M.C. Daniel Esparza Soto

1.- Instrucción INSERT: usando SP

Si un procedimiento almacenado devuelve un solo conjunto de resultados, y sabe la cantidad y tipo de columnas que contiene éste, puede utilizar INSERT en una tabla y utilizar los resultados que devolverá ese procedimiento almacenado.INSERT [INTO] table_name

EXEC SP_NOMBRE [lista_parametros]

26M.C. Daniel Esparza Soto

2.- Instrucción DELETE

Esta instrucción permite quitar una o más filas de una tabla.

DELETE [FROM] table_name

[WHERE clause]

También se permite incluir otra tabla en la instrucción DELETE par usarla como tabla de busqueda, siendo esta una subconsulta.

DELETE [FROM] table_name

WHERE columna in ( subconsulta )

27M.C. Daniel Esparza Soto

TRUNCATE TABLE

La instrucción DELETE sin cláusula WHERE puede borrar todas las filas de una tabla, pero también se puede utilizar la instrucción TRUNCATE TABLE para este fin, pero se tienen las siguientes diferencias:

1.- DELETE registra cada fila conforme se borra y TRUNCATE solamente escribe las designaciones de página y su alcance en el registro de transacciones.2.- TRUNCATE solo puede ser ejecutado por el propietario de la tabla, un miembro de DB_OWNER o SYSADMIN.3.- Un trigger de DELETE no se activa cuando se utiliza TRUNCATE.4.- TRUNCATE reasigna cualquier valor de identidad de vuelta a la inicialización , DELETE no.

28M.C. Daniel Esparza Soto

3.- Instrucción UPDATE

Esta instrucción permite cambiar el valor de las columnas dentro de una fila.

UPDATE table_name

SET column_name1 = valor1

[, column_name2 = valor2 ...]

[WHERE search_conditions]

Donde

Valor = {expression1 | NULL | (select_statement)}