Lenguaje Estructurado de Consulta SQL
Richard SiteTrabajo24 de Junio de 2016
12.284 Palabras (50 Páginas)533 Visitas
Lenguaje Estructurado de Consulta
SQL
Descripción: En este módulo se proporcionarán los elementos necesarios para el desarrollo de consultas a la base de datos utilizando el lenguaje nativo SQL.
Objetivo: El participante utilizará el lenguaje SQL para extraer la información necesaria en el desarrollo de las aplicaciones en su entorno de trabajo a través de la elaboración de las consultas que se puedan requerir y de la programación de los procedimientos a utilizar, así mismo, entenderá la ventaja de conocer las normas ANSI SQL vistas anteriormente y la sintaxis de las principales instrucciones del SQL dentro de la migración de consultas y procedimientos de un RDBMS a otro.
Índice.
INTRODUCCIÓN.
I. DEFINICIÓN DE DATOS.
I.1 Tipos de datos del sistema
I.2 El valor Nulo
I.3 Tablas
I.3.1 Convención de nombres
I.3.2. Creación de tablas
I.3.3. Eliminación de tablas
I.3.4. Modificación de tablas
I.4 Reglas
I.5 Defaults
I.6 Llaves e Índices
I.6.1. Llaves primarias.
I.6.2. Llaves foráneas.
I.6.3. Creación de índices.
I.6.4 Eliminación de índices
II. MANIPULACIÓN DE DATOS.
II.1 Selección, proyección y join.
II.1.1. Selección (Restricción).
II.1.2. Proyección.
II.1.3. Unión.
II.1.4. Producto Cartesiano
II.1.5. Join
II.2 Selección de datos.
II.2.1. Cláusula SELECT
II.2.2. Cláusula FROM.
II.2.3. Cláusula WHERE.
II.2.4. Cláusula GROUP BY
II.2.5. Cláusula HAVING
II.2.6. Cláusula ORDER BY
II.3. Inserción de datos.
II.3.1. Cláusula INSERT.
II.3.2. Cláusula INTO.
II.3.3. Cláusula VALUES.
II.4. Eliminación de registros.
II.4.1. Cláusula DELETE.
II.4.2. Cláusula FROM
II.4.3. Cláusula WHERE
II.5. Actualización de datos.
II.5.1. Cláusula UPDATE.
II.5.2. Cláusula SET.
II.5.3. Cláusula WHERE.
II.6. Vistas.
II.6.1. Creación de vistas
II.6.2. Eliminación de Vistas
II.6.3. Consideraciones
II.7. Definición de privilegios.
III. FUNCIONES DE UTILIDAD.
III.1. Funciones para datos de tipo carácter.
III.2. Funciones matemáticas.
III.3. Funciones para datos tipo fecha.
IV. MANEJO DE TRANSACCIONES.
IV.1. Commit y Rollback.
IV.2. Commit y Rollback por fases.
V. ESTRUCTURAS DE CONTROL DE FLUJO.
V.1. IF-THEN-END IF
V.2. IF-THEN-ELSE-END IF
V.3. FOR LOOP
V.4. WHILE LOOP
V.5. ETIQUETAS
VI. PROCEDIMIENTOS ALMACENADOS.
VI.1. Declaración de variables.
VI.2. Creación de procedimientos.
VI.3. Ejecución de procedimientos.
VI.4. Eliminación de procedimientos.
VI.5. Paso de parámetros.
VII. TRIGGERS.
VII.1. Características.
VII.2. Creación.
VII.3. Eliminación.
VIII. CURSORES.
IX. JOINS INTERNOS.
X. JOINS EXTERNOS
XI. OPERACIONES DE CONJUNTOS
INTRODUCCIÓN.
SQL (Structured Query Language; Lenguaje Estructurado de Consulta) es un lenguaje de consulta para bases de datos, siendo adoptado como estándar de la industria en 1986. Desde entonces se han realizado revisiones al estándar para incorporar nueva funcionalidad conforme la industria de las bases de datos lo va requiriendo. Una de las revisiones más importantes fue la de 1992, conocida como ANSI SQL92.
Actualmente la versión soportada por la mayoría de las bases de datos es el ANSI SQL99 también conocido como SQL3.
La ventaja de la adopción del ANSI SQL, es que los diversos RDBMS (Relational DataBase Management System; Sistema Manejador de Bases de Datos Relacional) tienen que acoplarse al estándar, permitiendo así una mayor compatibilidad entre ellos. Esto implica que conociendo una variante del SQL, se tienen los conocimientos necesarios para poder utilizar otros RDBMS: MS SQL Server, Oracle, Sybase, Interbase, MySQL, PostgreSQL, DB2, etc.
Aunque los distintos fabricantes tratan de acoplarse al estándar ANSI SQL, es cierto que cada uno implementa funcionalidades extra que le dan un valor agregado a su producto pero sacrificando un poco la compatibilidad, por lo cual se podrán notar ciertas diferencias entre distintos RDBMS.
SQL es un lenguaje fácil de entender ya que su estructura utiliza palabras en inglés, lo que lo hace fácil de aprender y utilizar y las instrucciones se enfocan a qué buscar, dejando al RDBMS la tarea de cómo recuperar la información.
Los componentes del SQL son:
DDL (Data Definition Language; Lenguaje de Definición de Datos). Permite crear, modificar y eliminar estructuras de datos como: tablas, bases de datos, índices, etc.
DML (Data Manipulation Language; Lenguaje de Manipulación de Datos). Permite consultar, insertar, modificar y eliminar datos de las tablas.
DCL (Data Control Language; Lenguaje de Control de Datos). Permite establecer los privilegios de acceso a los datos, en otras palabras, establece la seguridad de la base de datos.
La información presentada con respecto a los manejadores de bases de datos relacionales está basada en las siguientes versiones:
MySQL 4.1
PostgreSQL 8.0
Oracle 10i
Sybase XI
MS SQL Server 2000
Si se tiene una versión diferente es recomendable consultar la documentación del RDBMS correspondiente.
- Definición de datos.
Antes de comenzar a trabajar con SQL, es necesario conocer los elementos que intervienen en la definición de la información en una base de datos, para poder manipularla de manera adecuada.
La tabla es el elemento fundamental de una base de datos relacional, la cual consiste de una serie de renglones (registros) que representan la información. Cada renglón está dividido en columnas (campos) los cuales deben de tener un tipo de dato establecido.
I.1 Tipos de datos del sistema
Cada columna dentro de una tabla debe tener asociado un tipo de dato, siendo la labor del diseñador de la base de datos, el de encontrar el mejor tipo de dato que satisfaga las necesidades de almacenamiento y recuperación de cierta información.
Los tipos de datos que se manejan en una base, pueden variar ligeramente entre diferentes RDBMS, sin embargo el estándar ANSI, asegura que cierto tipo de datos estará presente en cualquier RDBMS asegurando así la compatibilidad.
Algunos RDBMS implementan sinónimos para los tipos de datos, de manera que puedan cumplir con el ANSI SQL99, sin embargo internamente son convertidos a un tipo de dato que si esté soportado. Por ejemplo MS SQL Server acepta el tipo de dato DOUBLE PRECISION pero lo convierte y maneja como un FLOAT
En la siguiente tabla se muestra en la primera columna, el tipo de dato como se especifica en el ANSI SQL y en las demás columnas se indica el tipo de datos equivalente que cumple con dicho estándar.
Tipo en SQL99 | MySQL | PostgreSQL | Oracle | Sybase | Ms SQL Server | Descripción |
tinyint | tinyint |
| tinyint | tinyint |
| |
smallint | smallint | smallint | smallint (lo convierte a number) | smallint | smallint | Entero con signo de 2 bytes |
int, integer | int,integer | integer | int (lo convierte a number) | int | int | Entero con signo de 4 bytes |
float() | float | float() | float | float | Número de punto flotante | |
double | double | double precision | double precision (lo convierte a float) | double precision | Double precision (se convierte en float) | Número Doble |
real |
| real | real (Lo convierte a float) | real | real | Número Real |
numeric(p,d) | numeric(p,d) | numeric(p,d) | number(p,d) | numeric(p,d) | decimal(p,d) | Numérico con precisión p y d decimales |
character varying(n) | varchar(n) | varchar(n) | varchar2(n) | varchar(n) | varchar(n) | Carácter de longitud variable |
char, character(n) | char(n) | char(n) | char(n) | char(n) | char(n) | Cadena de caracteres de longitud fija |
date | date | date | Fecha sin hora del día | |||
time | time | time | Hora del día | |||
timestamp | timestamp | timestamp | date | datetime | datetime | Fecha y hora del día |
boolean | boolean | bit | bit | Valor booleano | ||
blob | blob | bytea | blob | image | image | Binary large object |
clob | text | text | clob | text | text | Character large object |
Interval |
| interval | Intervalo de tiempo |
...