4. DEFINICIONES
SQL: Lenguaje estructurado de
consultas (structured query language).
Lenguaje de acceso a BD relacionales.
Manejo de álgebra y cálculo relacional que
permite definir (DDL) realizar consultas
para recuperar y modificar la información
de una BD (DML).
5. DEFINICIONES
Transact SQL: extensión al SQL de
Microsoft que permite:
Incluir información procedimental
Variables locales
Funciones
6. DEFINICIONES
Algo de historia
1970: E. F. Codd propone el modelo relacional y
sublenguaje de acceso a los datos.
IBM define el lenguaje SEQUEL (Structured
English QUEry Language) con base en las ideas de
Codd.
1979: Oracle introduce por primera vez SEQUEL
en un lenguaje comercial.
SQL: versión evolucionada de SEQUEL
1986: Estandarización de SQL: ANSI SQL
1992: Nuevo estándar ampliado y revisado: SQL-
92 o SQL2
7. INTRODUCCION A SQL SERVER
SQL Server: sistema para la gestión de
BD (DBMS) producido por Microsoft
basado en el modelo relacional.
Sus lenguajes de consulta son Transact
SQL y ANSI SQL.
http://msdn.microsoft.com/es-
es/library/bb934498.aspx
8. INTRODUCCION A SQL SERVER
Características:
Soporte de transacciones
Escalabilidad, estabilidad y seguridad
(integración con PowerShell que remueve
la consola para configurar la seguridad,
cifrado , auditoría, compresión de datos,
corrector de sintaxis
9. INTRODUCCION A SQL SERVER
Características:
Soporta procedimientos almacenados
Entorno gráfico de administración que
permite uso de comandos DDL y DML
Permite trabajar en modo cliente-
servidor
10. INTRODUCCION A SQL SERVER
PRACTICA EN CLASE
Instalación BD de AdventureWorks.
11. REPASO DML Y DDL
DDL:
CREATE / DROP TABLE
ALTER TABLE
◦ PRIMARY KEY
◦ FOREIGN KEY
◦ UNIQUE
◦ CHECK
◦ NULL / NOT NULL
12. REPASO DML Y DDL
DML:
SELECT ….
FROM ….
WHERE ….
GROUP BY ….
HAVING ….
ORDER BY ….
13. REPASO DML Y DDL
DML:
SELECT ….
FROM ….
[INNER JOIN | LEFT JOIN | RIGHT JOIN |
FULL OUTER JOIN] …. ON …
WHERE
GROUP BY
HAVING
ORDER BY
15. REPASO DML Y DDL
DML:
UNION
INTERSECT
EXCEPT
16. REPASO DML Y DDL
DML:
DISTINCT
IN
BETWEEN
CASE
EXISTS
17. REPASO DML Y DDL
DML:
LIKE
◦ LIKE ‘A%’
◦ LIKE ‘_ABC’
◦ LIKE ‘[AF]%’: todo lo que empiece por A o F
◦ LIKE ‘[!A-F]%’ todo lo que no empiece por
cualquier letra entre A y F
18. REPASO DML Y DDL
DML:
SUM
COUNT
AVG
MAX
MIN
19. REPASO DML Y DDL
DML:
COMPUTE: calculo de consolidados o
totales sobre campos numéricos de la
consulta.
SELECT MARITALSTATUS, COUNT(1)
FROM HUMANRESOURCES.EMPLOYEE
GROUP BY MARITALSTATUS
COMPUTE SUM(COUNT(1));
20. REPASO DML Y DDL
Operadores lógicos:
AND
OR
NOT
21. REPASO DML Y DDL
Predicados de consultas:
ALL: devuelve todos los campos de la
tabla
TOP: devuelve la cantidad indicada de
registros
DISTINCT: omite registros repetidos con
base en los campos seleccionados
22. REPASO DML Y DDL
VISTAS: Una vista es una consulta que
refleja el contenido de una o más tablas,
desde la que se puede acceder a los datos
como si fuera una tabla.
CREATE VIEW <nombre_vista>
AS (<sentencia_select>);
ALTER VIEW <nombre_vista>
AS (<sentencia_select>);
23. REPASO DML Y DDL
SINONIMOS: Un sinónimo es un
nombre alternativo que identifica una
tabla en la BD.
CREATE SYNONYM
<nombre_sinonimo>
FOR <nombre_tabla>;
24. FUNCIONES
Sintaxis:
◦ Select nombre_funcion(argumentos)
◦ Select user_name
◦ Ver pág 375: funciones del sistema
◦ Ver pág 380: funciones con cadenas
◦ Ver pág 394: funciones matemáticas
◦ Ver pág 397: funciones con fechas
◦ Ver pág 412: funciones de seguridad
Las funciones pueden emplearse en el
SELECT o en el WHERE
25. FUNCIONES
Ejercicios de funciones del sistema:
◦ db_name
◦ host_name
◦ isnull
◦ user_name
Ejercicios de funciones con cadenas
◦ Char
◦ Char_length
◦ Charindex
◦ patindex
◦ Lower, upper
◦ Ltrim, rtrim
◦ Substr
◦ stuff
27. TAREA
1. Instalar en el PC propio SQL Server 2008 y SQL Server
Management Studio.
2. Repasar del Transact-SQL User’s Guide los capítulos del 1 al 11
3. Hacer las siguientes consultas de la base de datos de
AdventureWorks, explicando para cada una la solución planteada
1. Obtenga de Person.CountryRegion los países cuya primera letra del
código sea la ‘C’ y la segunda se encuentre entre la ‘L’ y la ‘O’.
2. Obtenga de Person.Address la AddressLine1 concatenada con
AddressLine2, City y StateProvinceID, en mayúscula, de todas las
direcciones de la ciudad ‘Melbourne’. Nota: tenga el cuenta que varias
AddressLine2 vienen nulas.
3. Obtenga de Person.Contact el FirstName concatenado con el
MiddleName y el LastName, y en otra columna las iniciales. Por
ejemplo: ‘Gustavo Achong’, ‘GA’
4. Obtenga de Person.Contact el FirstName, MiddleName, LastName y
el EmailAddress hasta antes de la ‘@’