Вы находитесь на странице: 1из 15

UNIDAD No.

SQL (Structured Query Language)

Mtra. Romery Alberto Monegro

Santo Domingo, D.N.


22 de Julio 2013
Unidad 3: SQL (Structured Query Language)

INDICE DEL CONTENIDO


INTRODUCCION DE LA UNIDAD...................................................................... 3
1. Concepto y origen de SQL
2. Caractersitcas de SQL
3. Componentes de SQL
4. Comandos DDL (Data Definition Language)
5. Comandos DML (Data Manipulation Language)
6. Comandos DCL (Data Control Language)
7. Comandos DTL (Data Transac Language)
8. Clusulas y comando de seleccin SELECT
9. Operadores lgicos y de comparacin
10. Funciones de agregados
11. Uso de alias
12. Vistas y tipos de vistas
13. Indices
14. Creacin de esquema de base de datos
BIBLIOGRAFIA..........................................................................................

2 Mtra. Romery Alberto Monegro


Unidad 3: SQL (Structured Query Language)

INTRODUCCIN DE LA UNIDAD

Imagen obtenida en Google

El lenguaje de consulta estructurado o SQL (por sus siglas en ingls structured query
language) es un lenguaje de base de datos relacional, utilizado por los diferentes motores
de bases de datos para realizar determinadas operaciones sobre los datos o sobre la
estructura de los mismos. El conocer SQL nos permite acceder la informacin en
cualquier motor de bases de datos que maneje este lenguaje.

El lenguaje SQL lo consideramos vital pues nos sirve para consultar y manipular los datos
sin necesidad de tener que crear un programa en un lenguaje de programacin que nos
permita realizar esas operaciones con los datos.

En la actualidad la mayora de las empresas utilizan bases de datos relacionales para


almacenar los grandes volmenes de informacin que manejan diariamente. Dentro de las
ventajas que tiene tenemos la facilidad de uso, su flexibilidad, la potencialidad de los
sistemas relacionales, permite gran variedad de operaciones entre otras

3 Mtra. Romery Alberto Monegro


Unidad 3: SQL (Structured Query Language)

Esta unidad tiene como objetivo general conocer y aplicar las sentencias fundamentales
del SQL para crear y manipular base de datos relacionales.

Para desarrollar el contenido de la presente unidad se plantean los siguientes objetivos


especficos:

 Crear el esquema de una base de datos


 Crear y/o modificar objetos de la base de datos
 Desarrollar consultas de seleccin y de accin (insert/update/delete)

4 Mtra. Romery Alberto Monegro


Unidad 3: SQL (Structured Query Language)

Desarrollo del Contenido


1. Concepto y origen de SQL

Los conceptos presentados a continuacin se tomaron de la bibliografa presentada en


esta unidad.

El lenguaje de consulta estructurado (SQL) es un lenguaje declarativo de acceso a


bases de datos relacionales que permite especificar diversos tipos de operaciones en
ellas. Utiliza el manejo del lgebra y el clculo relacional para efectuar consultas con el fin
de recuperar de forma sencilla informacin de inters de bases de datos, as como hacer
cambios en ella.

Los orgenes del SQL estn ligados a los de las bases de datos relacionales. En 1970 E.
F. Codd propone el modelo relacional y asociado a este un sublenguaje de acceso a los
datos basado en el clculo de predicados. Basndose en estas ideas de Codd, se
desarrolla SQL en el laboratorio de investigacin de IBM en el ao 1974 por Donald
Chamberlin (para aquel entonces el lenguaje se llamaba Sequel = Structured English
Query Lenguage), como interfaz para un sistema experimental de base de datos
relacionales llamado System R. En 1976 y 1977 se produjo una nueva versin del
lenguaje (SEQUEL/2), que a partir de ese momento cambio de nombre a SQL

SQL se ha convertido en el lenguaje estndar de las base de datos relacionales y fue el


primero de los lenguajes de base datos de alto nivel junto con QUEL. Casi todos los
proveedores actuales de base de datos han implementado variaciones del SQL (DB2,
Oracle, Sybase).

En el 1986 el Instituto Nacional Americano de Normalizacin (American National Standard


Institute, ANSI), junto con la Organizacin Internacional de Normalizacin (International
Standards Organization, ISO), publicaron una norma denominada SQL-86, el cual rige las
normas que deben de cumplirse para la utilizacin del lenguaje SQL. Esta norma ha sido
revisada en diferentes aos, y la ms popular es SQL-92, del ao 1992, aunque la ltima
lanzada es SQL-99 de su respectivo ao.

El hecho de tener un estndar 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. Desde el punto de vista prctico, por desgracia las cosas fueron de otro
modo. Efectivamente, en general cada productor adopta e implementa en la propia base
de datos slo el corazn del lenguaje SQL (el as llamado Entry level o al mximo el

5 Mtra. Romery Alberto Monegro


Unidad 3: SQL (Structured Query Language)

Intermediate level), extendindolo de manera individual segn la propia visin que cada
cual tenga del mundo de las bases de datos.

Actualmente, est en marcha un proceso de revisin del lenguaje por parte de los comits
ANSI e ISO, que debera terminar en la definicin de lo que en este momento se conoce
como SQL3. Las caractersticas principales de esta nueva encarnacin de SQL deberan
ser su transformacin en un lenguaje stand-alone (mientras ahora se usa como lenguaje
hospedado en otros lenguajes) y la introduccin de nuevos tipos de datos ms complejos
que permitan, por ejemplo, el tratamiento de datos multimediales.

2. Caractersitcas de SQL

SQL tiene las siguientes caractersticas:

Lenguaje de definicin de datos: El LDD de SQL proporciona comandos para la


definicin de esquemas de relacin, borrado de relaciones y modificaciones de los
esquemas de relacin.
Lenguaje interactivo de manipulacin de datos: El LMD de SQL incluye
lenguajes de consultas basado tanto en lgebra relacional como en clculo
relacional de tuplas.
Integridad: El LDD de SQL incluye comandos para especificar las restricciones de
integridad que deben cumplir los datos almacenados en la base de datos.
Definicin de vistas: El LDD incluye comandos para definir las vistas.
Control de transacciones: SQL tiene comandos para especificar el comienzo y el
final de una transaccin.
SQL incorporado y dinmico: Esto quiere decir que se pueden incorporar
instrucciones de SQL en lenguajes de programacin como: C++, C, Java, Cobol,
Pascal y Fortran.
Autorizacin: El LDD incluye comandos para especificar los derechos de acceso a
las relaciones y a las vistas.

3. Componentes de SQL

Imagen obtenida en Google

6 Mtra. Romery Alberto Monegro


Unidad 3: SQL (Structured Query Language)

El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de


agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y
manipular las bases de datos.

Comandos

Son instrucciones bsicas para el almacenamiento, recuperacin y manipulacin de datos


en un base de datos relacional.

Existen 4 tipos de comandos en SQL:

4. Comando DDL (Data Definition Language):


Traducido al espaol como Lenguaje de Definicin de Datos (LDD), el mismo proporciona
rdenes para la definicin, manejo y eliminacin de los objetos en una BD.

Los commandos DDL son:

 CREATE: este comando es utilizado para crear nuevos objetos, como son: tablas,
indices, vistas, etc. Ejemplos:
CREATE TABLE <nombreTabla>
CREATE INDEX <nombreIndice>

 ALTER: este comando es utilizado para modificar los objetos tipos tablas agregando
campos, actualizndolos o eliminndolos. Ejemplos:
ALTER TABLE <nombreTabla> ADD <nombreColumna> <tipoDato>
ALTER TABLE <nombreTabla> ALTER COLUMN <nombreColumna> <tipoDato>
ALTER TABLE <nombreTabla> DROP COLUMN <nombreColumna>

 DROP. Elimina tanto tablas como ndices. Ejemplo:


DROP TABLE <nombreTabla>
DROP INDEX <nombreIndice>

5. Comando DML (Data Manipulation Language)


Este comando se traduce en espaol como Lenguaje de Manipulacin de datos de Datos
(LMD), el mismo incluye el manejo de consultas, basado tanto en el lgebra relacional como en el
clculo relacional de tuplas. Incluye tambin rdenes para insertar, borrar y modificar tuplas de la base de
datos.

Los commandos DML son:

 SELECT: esta es la instruccin bsica para obtener informacin de una base de datos a travs de sus
tablas. Ejemplo:
SELECT * FROM <nombreTabla>

7 Mtra. Romery Alberto Monegro


Unidad 3: SQL (Structured Query Language)

 INSERT: esta sentencia es utilizada para agregar registros a una tabla. Ejemplo:
INSERT INTO nombretabla (campo1) VALUES (valor1)

 UPDATE. Comando para modificar los valores de campos de la tabla. Ejemplo:


UPDATE nombretabla SET campo1 = valor1

 DELETE. Elimina registros de una tabla. Ejemplo:


DELETE FROM nombretabla WHERE campo1 = valor1

6. Comandos DCL (Data Control Language)


Traducido al espaol como Lenguaje de Configuracin de Datos (LCD). Estos comandos
son utilizados para manejar los permisos de los objetos de una base de datos.

Los commandos DCL son

 GRANT: este comando asigna permisos para manejar en una base de datos. Ejemplo:
GRANT CREATE TABLE TO <nombreGrupo>

 DENY: este comando niega permisos de Dacceso en una base de datos. Ejemplo:
DENY SELECT ON <nombreTabla> TO <nombreGrupo>

 REVOKE: suprime permisos en una base de datos. A diferencia del DENY, este
invierte cualquier permiso previo que exista. Ejemplo:
REVOKE CREATE TABLE TO <nombreGrupo>

7. Comandos DTL (Data Transac Language)


Traducido al espaol como Lenguaje de Control de Transacciones (LCT). Utilizado para
manejar las transacciones que ocurren dentro de la base de datos.

Los commandos DTL son

 BEGIN TRAN. Da inicio a una transaccin en la base de datos.


 COMMIT TRAN. Finaliza una transaccin en la base de datos previamente iniciada.
 ROLLBACK TRAN. Deshace una transaccin en la base de datos previamente
iniciada.

8. Clusulas y comando de seleccin SELECT


Las clusulas son condiciones de modificaciones utilizadas para definir los datos que se
desean seleccionar o manipular. Estas son:

8 Mtra. Romery Alberto Monegro


Unidad 3: SQL (Structured Query Language)

FROM : Utilizada para especificar la tabla de la cual se van a seleccionar los


registros
WHERE: Utilizada para especificar las condiciones que deben reunir los registros
que se van a seleccionar
GROUP BY: Utilizada para separar los registros seleccionados en grupos
especficos
HAVING: Utilizada para expresar la condicin que debe satisfacer cada grupo
ORDER BY: Utilizada para ordenar los registros seleccionados de acuerdo con un
orden especfico
Consultando todos los campos de de un tabla:
SELECT * FROM NombreTabla

Consultando campos especficos de de un tabla:


SELECT Codigo, Valor FROM NombreTabla

Consultando registros que cumplan 1 condicin:


SELECT * FROM NombreTabla WHERE codigo = 4

Consultando registros ordenando su salida:


SELECT * FROM NombreTabla ORDER BY valor
SELECT * FROM NombreTabla ORDER BY valor ASC
SELECT * FROM NombreTabla ORDER BY valor DESC
SELECT * FROM NombreTabla ORDER BY valor DESC, descripcion ASC

Consultando registros filtrando con el uso de operadores:


SELECT * FROM nombreTabla WHERE codigo < 4
SELECT * FROM nombreTabla WHERE codigo >= 4
SELECT * FROM nombreTabla WHERE codigo <> 0
SELECT * FROM nombreTabla WHERE codigo BETWEEN 2 AND 4
SELECT * FROM nombreTabla WHERE codigo >= 2 AND codigo <= 2
SELECT * FROM nombreTabla WHERE codigo IN (1, 5, 10)
SELECT * FROM nombreTabla WHERE codigo NOT IN (1, 5, 10)
SELECT * FROM nombreTabla WHERE NOT codigo IN (1, 5, 10)
SELECT * FROM nombreTabla WHERE descripcion LIKE 'S%'
SELECT * FROM nombreTabla WHERE descripcion LIKE '%R'
SELECT * FROM nombreTabla WHERE descripcion LIKE '%REGISTRO%'
SELECT * FROM nombreTabla WHERE descripcion > 'S'
SELECT * FROM nombreTabla WHERE descripcion < 'S'
SELECT * FROM nombreTabla WHERE fecha IS NULL
SELECT * FROM nombreTabla WHERE fecha IS NOT NULL
SELECT * FROM nombreTabla WHERE codigo < 5 AND valor > 0
SELECT * FROM nombreTabla WHERE codigo >= 4 OR fecha IS NULL
SELECT * FROM nombreTabla WHERE codigo <> 5 OR valor > 0 OR fecha IS NULL
SELECT * FROM nombreTabla WHERE valor = 0
AND (fecha IS NULL OR descripcion LIKE '%S%')

9 Mtra. Romery Alberto Monegro


Unidad 3: SQL (Structured Query Language)

SELECT * FROM nombreTabla WHERE valor = 0


AND (fecha IS NULL OR descripcion LIKE '%R%')
SELECT * FROM nombreTabla WHERE valor = 0 OR (fecha IS NULL AND Codigo > 2)

9. Operadores lgicos y de relacin

Operadores Lgicos

Operador Uso
Es el "y" lgico. Evalua dos condiciones y devuelve un valor de verdad slo
AND
si ambas son ciertas.
OR Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdar si
alguna de las dos es cierta.
NOT Negacin lgica. Devuelve el valor contrario de la expresin.

Operadores de Comparacin

OperadorUso
< Menor que
> Mayor que
<> Distinto de
<= Menor Igual que
>= Mayor Igual que
= Igual que
Utilizado para especificar un intervalo de
BETWEEN
valores.
LIKE Utilizado en la comparacin de un modelo
Utilizado para especificar registros de una
In
base de datos

10. Funciones de agregados

Operador Descripcin
Utilizada para calcular el promedio de los valores de un campo
AVG
determinado.
COUNT Utilizada para devolver el nmero de registros de la seleccin.
Utilizada para devolver la suma de todos los valores de un campo
SUM
determinado .
MAX Utilizada para devolver el valor ms alto de un campo especificado
MIN Utilizada para devolver el valor ms bajo de un campo especificado.

10 Mtra. Romery Alberto Monegro


Unidad 3: SQL (Structured Query Language)

11. Uso de alias


El alias sirve para nombrar una columna, tanto fsica como calculada, para un mejor
manejo en el filtro y salida de la informacin. Su uso se extiende hasta las tablas, usado
mayormente cuando intervienen ms de una en la composicin de la consulta. La
designacin del alas se puede nombrar con la constante AS, aunque esto es opcional.
Una columna calculada se utiliza cuando se desea presentar en un campo separado el
resultado de alguna operacin en particular.

Ejemplos:

1) En campos de las tablas

Select Title As 'Titulo', FirstName 'Primer Nombre', LastName Apellido


From SalesLT.Customer

2) En funciones de agrupamiento

Select COUNT(*) 'Cant Total', SUM(SubTotal) 'Suma Total', AVG(TotalDue) 'Promedio


de Venta', MAX(TaxAmt) Impuesto Maximo'
From SalesLT.SalesOrderHeader

3) En campos numricos calculados

Select SalesOrderId, SubTotal, (SubTotal * 0.16) 'ITEBIS', Subtotal + (SubTotal * 0.16)


'Neto'
From SalesLT.SalesOrderHeader

4) En campos alfanumricos concatenado

Select CustomerID, FirstName + ' ' + MiddleName + ' ' + LastName AS 'Nombre
Completo'
From SalesLT.Customer

Select FirstName + ' ' + MiddleName + ' ' + LastName + ' TRABAJA EN ' +
CompanyName AS 'Oracion'
From SalesLT.Customer

12. Vistas y tipos de vistas

Las vistas (view), son objetos de la base de datos utilizados para hacer una
representacin virtual en forma de tabla, de datos seleccionados en una consulta. Esta
vista puede ser utilizada para manejo de consulta con el mismo criterio de una tabla real.

11 Mtra. Romery Alberto Monegro


Unidad 3: SQL (Structured Query Language)

Las vistas son utilizadas mayormente para simplificar el acceso a la data a travs de
sentencias sencillas, ocultando consultas complejas que deberan utilizarse para acceder
a dicha informacin. Otro uso de las vistas es proteccin de datas, mostrando al usuario
slo la informacin que puede visualizar. Se pueden crear vista que permitir la
manipulacin de la data con sentencias DML (Insert, Update, Delete).

Tipos de Vistas:

Vista Regular (Regular View): Son las creadas por el usuario a travs de sentencias
SQL. No almacenan registros de la base de datos.

Vista Indexada (Indexed View): Son creadas con caractersticas especiales para
que puedan manejarse el uso de ndices como si fuera una tabla fsica.

Vista de Particiones Distribuidas (Distributed Partitioned View): Son vistas que


utilize la unin de ms de una consulta SQL, que pudieran estar presentando
informacin de diferentes bases de datos o inclusive instancias distintas.

Creando una vista regular

CREATE VIEW Clientes AS


Select CustomerID 'ID', FirstName + ' ' + MiddleName + ' ' + LastName As Nombre,
Companyname 'Empresa', Phone 'Telefono', EmailAddress 'email'
From SalesLT.Customer
GO

Creando una vista regular especificando los campos

CREATE VIEW Clientes (Id, Nombre, Empresa, Telefono, Email) AS


Select CustomerID, FirstName + ' ' + MiddleName + ' ' + LastName, Companyname,
Phone, EmailAddress
From SalesLT.Customer
GO

Creando una vista regular filtrando un criterio

CREATE VIEW Clientes2001 AS


Select *
From SalesLT.Customer
Where ModifiedDate Between '01/01/2001' And '12/31/2001'

Creando una vista regular agrupando informacin

CREATE VIEW VentasProducto AS

12 Mtra. Romery Alberto Monegro


Unidad 3: SQL (Structured Query Language)

SELECT ProductID, SUM(OrderQty) Cantidad, SUM(LineTotal) ValorTotal


FROM SalesLT.SalesOrderDetail
GROUP BY ProductId

Modificando una vista existente

ALTER VIEW Clientes2001 AS


SELECT *
FROM SalesLT.Customer
WHERE ModifiedDate BETWEEN '01/01/2001' AND '12/31/2001'
AND Title = 'Mr.'

Creando o modificando una vista

CREATE OR REPLACE VIEW Clientes2001 AS


SELECT *
FROM SalesLT.Customer
WHERE ModifiedDate BETWEEN '01/01/2001' AND '12/31/2001'
AND Title = 'Mr.'

Eliminando una vista

DROP VIEW Cliente

Manipulando data con vistas

Para que se pueda realizar operaciones de modificaciones a la data a travs de vista, sta
debe de cumplir con ciertas condiciones:

1. No estar compuesta con informacin de ms de una tabla


2. No contener funciones de agrupamiento
3. Los campos que son requeridos en la tabla, deben estar presente en la definicin de la
vista

CREATE VIEW ArticuloRes (Cod, Tip, Pre) AS


SELECT Codigo, Tipo, Precio
FROM Articulo
GO

INSERT INTO ArticuloRes VALUES ('EL-001', 'ELECTRODOMESTICO',24000)


GO

13 Mtra. Romery Alberto Monegro


Unidad 3: SQL (Structured Query Language)

UPDATE ArticuloRes SET Pre = 25500 WHERE Cod = 'EL-001'


GO

DELETE ArticuloRes WHERE Cod = 'EL-001'


GO

13. Indices
Es un objeto de la base de datos relacionado a una tabla, que provee un acceso ms
rpido a los datos y por consiguiente generar consulta de manera ms eficiente. Por
defecto los registros que se insertan en una tabla no tienen un orden lgico.

Cuando se crea un primary key se crea automticamente un ndice por el (los) campo (s)
que componen el PK.

Creando un Indice

CREATE INDEX idx_codigo ON nombreTabla (codigo)

Deshabilitando un Indice

ALTER INDEX idx_codigo ON nombreTabla DISABLE

Borrando un Indice

DROP INDEX idx_codigo ON nombreTabla

14. Creacin de esquema de base de datos:

El esquema de una base de datos describe la estructura de una Base de datos, en un


lenguaje formal soportado por un Sistema administrador de Base de datos (DBMS). En
una Base de datos Relacional, el Esquema define sus tablas, sus campos en cada tabla y
las relaciones entre cada campo y cada tabla.

El esquema es generalmente almacenado en un Diccionario de Datos. Aunque es comn


que el esquema sea definido en un lenguaje de Base de datos, el trmino se usa a
menudo para referirse a una representacin grfica de la estructura de base de datos.

Niveles de Esquema de Base de Datos

Esquema Conceptual, un mapa de conceptos y sus relaciones.


Esquema Lgico, un mapa de las entidades y sus atributos y las relaciones.
Esquema Fsico, una aplicacin de un esquema lgico.

14 Mtra. Romery Alberto Monegro


Unidad 3: SQL (Structured Query Language)

Bibliografa
 Ramez Elmasri, Shamkant B. Navathe (2007). Fundamentos de Sistemas de Bases
de Datos. Editora Pearson, Madrid, 5ta. Edicin.
 Abraham Silberschatz, Henry F. Korth and S. Sudarshan (2002). Fundamentos de
Bases de Datos. Editora McGraw-HILL, Madrid, 4ta. Edicin.
 SQL. Obtenido en http://es.wikipedia.org/wiki/SQL
 Esquema de base de datos. Obtenido en
http://es.wikipedia.org/wiki/Esquema_de_una_base_de_datos

15 Mtra. Romery Alberto Monegro

Вам также может понравиться