SQL Server 2000. FEMEPA SQL Server 2000



Documentos relacionados
MANUAL BÁSICO DEL LENGUAJE SQL

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

SQL (Structured Query Language)

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

1. DML. Las subconsultas

Consultas con combinaciones

A.1. Definiciones de datos en SQL

CONSULTAS BASICAS EN SQL SERVER

5- Uso de sentencias avanzadas

Lenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar /

Bases de Datos 2. Teórico

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

Bases de Datos Relacionales

CONSULTAS MULTITABLAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

8 SQL SERVER 2008 RA-MA

Tema: USO DE COMBINACIONES EXTERNAS.

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos:

Unidad. Lenguaje SQL. (Structured Query Language)

SQL. Lenguaje de Consulta Estructurado. Curso básico de SQL (Leire Urcola Carrera)

Tema 4. Manipulación de datos con SQL

El lenguaje SQL es un lenguaje estándar para el acceso y

Procedimientos para agrupar y resumir datos

Práctica A: Procedimientos para agrupar y resumir datos

Base de datos Lenguaje SQL

UNIDAD 1.- PARTE 1 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES. Xochitl Clemente Parra Armando Méndez Morales

Tema: Uso de sentencias SQL

6- Combinación de tablas

ÍNDICE. Introducción... Capítulo 1. Novedades de Access

CONSULTAS DE RESUMEN SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Bases de datos: Sistemas de bases de datos:

TEMA 10. INTRODUCCCIÓN A SQL. CONSULTAS BASADAS EN UNA TABLA

Base de datos I Facultad de Ingeniería. Escuela de computación.

Ing. Santiago C. Pérez Laura Noussan Lettry Carlos Campos

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

Base de Datos Oracle 10g: Introducción a SQL Código: D Duración: 5 días (40 horas)

SQL (DML) Carlos A. Olarte Gestión y Modelación de SQL Datos (DML)

Bases de Datos: Structured Query Language (SQL)

Sql Basico. Seminar Introduction

Tutorial de SQL - El comando SELECT

SENTENCIAS Y CONSULTAS EN SQL SERVER

SQL (Structured Query Language)- DML

1.264 Tema 7. Introducción a SQL

Universidad Capitán General Gerardo Barrios. Facultad de Ciencia y Tecnología

3ra. Parte. Bases de Datos Relacionales

Tema: SUBCONSULTAS Y CREACION DE VISTAS.

Sub consultas avanzadas

PROGRAMAS DE ESTUDIO FORMATO 7 INTRODUCCIÓN A SQL. Área de Formación Profesional

Práctica A: Trabajo con subconsultas

Operaciones en el Modelo Relacional. Relacional. Relacional. Índice. Lenguajes de Consulta

UNIVERSIDAD NACIONAL DE CAJAMARCA MANUAL DE CONSULTAS SQL SERVER 2008 R2 CURSO: BASE DE DATOS I ING. APARICIO

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

SQL Los fundamentos del lenguaje

ÍNDICE PRIMERA PARTE... 17

ÍNDICE INTRODUCCIÓN...13

Base de datos relacional

FUNCIONES EN SQL SERVER

Implementación de funciones definidas por el usuario

Práctica 3. Consultas SQL

Sistemas de Datos Curso: Ernesto Chinkes. Subconsultas Stored Procedures - Triggers

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127

Bases de datos relacionales y el modelo entidad-relación

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

Curso SQL Nivel Avanzado 1. Miguel Jurado García

Tema: Combinación de tablas

OPTIMIZACIÓN DE CONSULTAS EN SQL. Análisis de Consultas y Transacciones Ajuste de Indices Ajuste de Consultas

T12 Vistas y tablas temporales

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

Boletín de Problemas de la Asignatura II18 Bases de Datos. Ingeniería Informática Universitat Jaume I

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc).

Tecnología de la Información y la Comunicación. Base de datos. Consultas

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

Vistas en postgresql

Sistemas de Bases de Datos II

Tutorial de MS Access Un sistema de Bases de Datos Relacional. Profesores: Hugo Mora, Ignacio Casas

Manual de ACCESS Intermedio

Curso Excel Básico - Intermedio

Crear BD en. Isis Bonet Cruz, PhD

Conceptos Avanzados de Bases de datos

select nombre from profesores where categoria='aso6';

Guía práctica de SQL

Tipo de Dato TRANSACT SQL

Bases de Datos SQL - Ejemplos

Trabajos de Ampliación. Bases de datos NoSQL.

Modificación de datos

Base de datos Procedimientos Almacenados y Funciones

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

Trabajo con Subconsultas

Ficheros y Bases de Datos Curso Ingeniería Técnica de Informática Primer Parcial. 1-Junio Nombre:

INSTITUCIÓN EDUCATIVA GABRIEL GARCIA MÁRQUEZ BASE DE DATOS. DESARROLLO DE SOFTWARE Página 1 de 28 SQL SQL

Qué es una subconsulta?.

CONSULTAS SIMPLES SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

BREVE INTRODUCCIÓN AL SQL Aplicación al Programa Escuela Última actualización: 17/10/2000

Restricciones de Integridad

Grupo Kybele, Pág. 1

Transcripción:

FEMEPA Partes del SQL El lenguaje SQL está compuesto de varios sub-lenguajes, entre los cuales destacan los tres siguientes: DML. Lenguaje de definición de datos. Todas las sentencias de manipulación de datos Extracción de información Actualización eliminación DDL. Manipulación de la información de la estructura: Crear y eliminar bases de datos y tablas. Definir columnas de una tabla y sus atributos Eliminar o crear índices, etc DCL.. Sentencias específicas para la seguridad de acceso a los datos: Gestión de usuarios Otorgamiento o denegación de los permisos necesarios para operar sobre cada elemento de la base de datos. 1

Lenguaje de definición de datos. Comandos DLL Estos comandos permiten crear y definir nuevas bases de datos, tablas, índices, procedimientos almacenados, vistas, funciones de usuario, etc. Los comandos que componen el DLL son: CREATE. Crea nuevas bases de datos, tablas, índices, SP, funciones de usuario, vistas, etc. ALTER. Permite modificar todos los objetos nombrados anteriormente. DROP. Utilizado para eliminar bases de datos, tablas, índices, etc. Lenguaje de control de datos. Comandos DCL Se utilizan para administrar la seguridad de las bases de datos. Se usan para asignar permisos sobre los objetos de la BD e instrucciones. Los comandos que componen el DCL son: GRANT. Usada para conceder a un usuario permiso sobre un objeto o una instrucción. DENY. Para denegar explícitamente un permiso sobre un objeto o una instrucción. Prevalece sobre cualquier otro permiso que el usuario haya heredado por su pertenencia a una función o grupo. REVOKE. Elimina toda entrada en la tabla de permisos (syspermissions) que le concediera o denegara a un usuario el acceso a un objeto o instrucción. REVOKE se usa para revertir una instrucción GRANT o DENY ejecutada previamente. 2

Lenguaje de control de datos. Comandos DCL Sintaxis para configurar permisos sobre un objeto GRANT permiso ON objeto TO usuario DENY permiso ON objeto TO usuario REVOKE permiso ON objeto TO usuario GRANT SELECT ON Categories TO usuario1 Sintaxis para configurar permisos sobre instrucciones GRANT instrucción TO usuario DENY instrucción TO usuario REVOKE instrucción TO usuario GRANT CREATE TABLE TO usuario1 Lenguaje de manipulación de datos. Comandos DML Estos comando permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Los comandos que componen el DML son: SELECT. Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado. INSERT. Utilizado para cargar lotes de datos en la base de datos en una única operación.. UPDATE. Utilizado para modificar los valores de los campos y registros especificados. DELETE. Utilizado para eliminar registros de una tabla de una base de datos. 3

Cláusulas Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular. FROM. Utilizada para especificar la tabla de la cual se van a seleccionar los registros. TOP. Especifica cuantos registros debe devolver la consulta. DISTINCT. Distingue aquellos resultados que son idénticos mostrando solo uno de ellos. 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 específicos. HAVING. Utilizada para separar los registros seleccionados en grupos específicos. ORDER BY. Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico. Operadores Lógicos AND. Es el "y" lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas. OR. Es el "o" lógico. Evalúa dos condiciones y devuelve un valor de verdadero si alguna de las dos es cierta. NOT. Negación lógica. Devuelve el valor contrario de la expresión. Operadores de comparación <. Menor que. >. Mayor que. <=. Menor o igual que. >=. Mayor o igual que. =. Igual que. BETWEEN. Utilizado para especificar un intervalo de valores. LIKE. Utilizado en la comparación de un modelo. IN. Determina si un valor dado coincide con algún valor de la subconsulta o lista. 4

La sintaxis básica de SELECT es: SELECT lista_columnas FROM tabla SELECT * FROM Shippers SELECT ShipperID, CompanyName FROM Shippers Uso de SELECT y SET para asignar valores a variables y luego mostrarlas DECLARE @nombre varchar(100), @SegundoNombre varchar(10), @apellido varchar(10) SET @nombre = Maria SELECT @SegundoNombre= Angélica, @apellido= Rojas SELECT @nombre, @segundonombre, @apellido Uso de DISTINCT para eliminar filas duplicadas en un conjunto de resultados SELECT Title FROM Employees SELECT DISTINCT Title FROM Employees ALIAS de columna Los alias de columna se pueden usar para cambiar los nombre predeterminados de las mismas. Cuando la columna es el resultado de un cálculo SQL no asigna nombre a la columna. En algunas ocasiones se repiten los nombres de las columnas (cuando utilizamos varias tablas en una misma consulta). SELECT productname + ( + quantiyperuni + ) AS Producto_con_cantidad, unitsinstock + unisonorder Unidades FROM Products 5

La Cláusula WHERE En la cláusula WHERE se pueden utilizar los operadores LIKE, NOT LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, <, <=, >, >=, =, <>. -- Devuelve todos los empleados cuyo apellido comienza por b SELECT lastname, firstname FROM Employees WHERE lastname LIKE b% -- Devuelve todos los empleados que no viven en Seattle, Redmond o Tacoma SELECT lastname, firstname, city FROM Employees WHERE city NOT IN ( Seattle, Redmond, Tacoma ) -- Devuelve todos los empleados que fueron contratados entre el 1/1/1993 y el 12/31/1993 SELECT lastname, firstname, hiredate FROM Employees WHERE hiredate BETWEEN 1/1/1993 AND 12/31/1993 -- Devuelve todos los empleados que viven en una ciudad distinta de Londres SELECT lastname, firstname, city FROM Employees WHERE city <> London La Cláusula WHERE Se pueden combinar muchas expresiones mediante los operadores lógicos AND y OR. -- Devuelve todos los empleados cuyo apellido comienza por b -- Y no viven en Seattle, Redmond o Tacoma SELECT lastname, firstname FROM WHERE lastname LIKE b% Employees AND city NOT IN ( Seattle, Redmond, Tacoma ) -- Devuelve todos los empleados que fueron contratados entre el 1/1/1993 y el 12/31/1993 -- O viven en una ciudad distinta de Londres SELECT lastname, firstname, hiredate FROM Employees WHERE hiredate BETWEEN 1/1/1993 AND 12/31/1993 OR city <> London 6

La Cláusula WHERE Uso de IS NULL y IS NOT NULL -- Obtiene la lista de los proveedores para los que le valor de la columna region no sea nulo SELECT companyname, contactname, region FROM Suppliers WHERE region IS NOT NULL -- Obtiene la lista de los proveedores para los que le valor de la columna region sea nulo SELECT companyname, contactname, region FROM Suppliers WHERE region IS NULL Funciones de Agregado Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros. AVG. Utilizada para calcular el promedio de los valores de un campo determinado. COUNT. Utilizada para devolver el número de registros de la selección. SUM. Utilizada para devolver la suma de todos los valores de un campo determinado. MAX. Utilizada para devolver el valor más alto de un campo especificado. MIN. Utilizada para devolver el valor más bajo de un campo especificado. 7

La Cláusula GROUP BY y las funciones de agregado -- Devuelve el promedio de la columna unitsinstock SELECT AVG (unitsinstock) FROM Products -- Devuelve la cantidad de filas de la tabla Employees SELECT COUNT(*) FROM Employees -- Devuelve el precio del producto más caro SELECT MAX(unitprice) FROM Products -- Devuelve la fecha de nacimiento del empleado de mayor edad SELECT MIN(birthdate) FROM Employees -- Devuelve la cantidad de productos en existencia SELECT SUM(unisinstock) FROM Products -- Devuelve cuantos títulos distintos hay en la tabla empleados SELECT COUNT(DISTINCT title) FROM Employees La Cláusula GROUP BY y las funciones de agregado Para agrupar las filas de un conjunto de resultados y generar una fila de resumen para cada grupo de datos se usa la cláusula GROUP BY -- Devuelve el promedio de la columna unitsinstock SELECT title, COUNT(*) FROM Employees -- Restringir los grupos generados or GROUP BY SELECT country, COUNT(*) FROM Customers WHERE country IN ( Spain, Venezuela ) GROUP BY country 8

La Cláusula HAVING Es similar a WHERE, con la diferencia que SQL Server evalúa HAVING después de generar los grupos y WHERE se evalúa antes de generarlos, por lo tanto no se puede hacer referencia a las funciones de agregación. -- Se obtiene la cantidad de clientes de aquellos países en los que tenemos más de cinco clientes. SELECT country AS País, COUNT(*) AS [Cantidad de Clientes] FROM Customers GROUP BY country HAVING COUNT(*) > 5 -- Combinación de condiciones en una cláusula HAVING. SELECT country AS País, COUNT(*) AS [Cantidad de Clientes] FROM Customers GROUP BY country HAVING COUNT(*) > 5 AND COUNT(*) < 10 La Cláusula ORDER BY La utilizamos para obtener el conjunto de resultados ordenado por la columna o columnas indicadas y en el orden indicado (el orden por defecto es ascendente). -- Nombre de la compañía y teléfono ordenados por el nombre de la compañía. SELECT companyname, phone FROM Shippers ORDER BY companyname -- Expresiones múltiples. SELECT lastname, firstname FROM Employees ORDER BY lastname ASC, firstname DESC La Cláusula TOP N Se utiliza para limitar los resultados de una consulta. -- Nombre de la compañía y teléfono ordenados por el nombre de la compañía. SELECT TOP 10 prductid, productname, unitprice FROM Products ORDER BY unitprice DESC 9

La instrucción SELECT...INTO SELECT INTO permite crear una tabla sobre la marcha y llenarla mediante una sola instrucción. -- Nombre de la compañía y teléfono ordenados por el nombre de la compañía. SELECT lastname, firstname INTO #tmp FROM Employees WHERE title = sales representative -- Uso de alias de columnas con SELECT INTO SELECT firstname + + lastname AS fullname, country INTO #EmployeeCountry FROM Employees ORDERY BY fullname SELECT * FROM #EmployeeCountry EL operador LIKE Determina si una cadena dada coincide o no con un determinado modelo. % _ [ ] [! ] Usado para indicar una cadena de cualquier longitud (0 o más) Representa cualquier carácter singular Se usa para buscar un carácter dentro de un intervalo o conjunto delimitado por corchetes. [a-z] [abc] Similar al anterior pero se busca un carácter que no esté dentro de cierto intervalo o conjunto 10

El operador LIKE SELECT lastname, firstname FROM Employees WHERE firstname LIKE a% SELECT lastname, firstname FROM Employees WHERE firstname LIKE _anet SELECT lastname, firstname FROM Employees WHERE firstname LIKE [js]% EL operador IN Este operador devuelve los registros cuyo campo indicado coincida con alguno de los valores de la lista. Sintaxis Ejemplo Expresión [NOT ] IN ( valor1, valor2, valor3...) SELECT * FROM Pedidos WHERE Ciudad IN ( Cozumel, Cancún, Playa ) 11

SELECT - Emparejamiento Con la sentencia SELECT podemos seleccionar de dos o más tablas SELECT columnas FROM tabla1, tabla2,... tablan OJO. La SELECT no tiene ni idea de cómo están relacionadas las tablas. Si le decimos que seleccione datos de dos tablas, combinará las dos tablas haciendo un producto cartesiano entre las dos. Por cada fila de la primera tabla se incluyen todas las filas de la segunda tabla. SELECT - Emparejamiento 12

SELECT - Emparejamiento Si existe una relación de 1 a N entre las tablas, lo que nos interesa es que, por cada fila de la tabla del lado N ( PIEZAS ) aparezca la fila relacionada en la tabla del lado 1 ( FABRICANTES ). Queremos que en el resultado sólo aparezcan las filas sombreadas cómo podemos hacer esto? SELECT - Emparejamiento SELECT * FROM Pieza, Fabricantes WHERE Piezas.Fabricante = Fabricantes.Codigo A esto se le llama la condición de emparejamiento de tablas Para hacer un emparejamiento de tablas no es necesario que haya una relación de 1 a N entre ellas. Sin embargo, el emparejamiento de tablas suele hacerse cuando queremos juntar dos o más tablas relacionadas. 13

SELECT - Emparejamiento Al hacer un emparejamiento de tablas, puede ocurrir que no queramos todas las columnas (SELECT *) sino solo unas cuantas de cada tabla. qué ocurre si en las dos tablas hay columnas que tienen el mismo nombre? Solución: Utilizamos prefijos. Antes del nombre de la columna ponemos el nombre de la tabla y un punto. Para que este trabajo no sea demasiado engorroso se pueden utilizar los alias (etiquetas) de tablas para abreviar el nombre de las mimas. SELECT - Emparejamiento 14

INNER JOIN - Emparejamiento Existe otra manera de realizar los emparejamiento. En lugar de utilizar una condición de emparejamiento podemos utilizar la cláusula INNER JOIN. SELECT columnas FROM tabla1 INNER JOIN tabla 2 ON condición_emparejamiento SELECT * FROM Piezas, Fabricantes WHERE Piezas.Fabricante = Fabricantes.Codigo SELECT * FROM Piezas INNER JOIN Fabricantes ON Piezas.Fabricante = Fabricantes.Codigo EQUIVALENTES INNER JOIN - Emparejamiento Existe otra manera de realizar los emparejamiento. En lugar de utilizar una condición de emparejamiento podemos utilizar la cláusula INNER JOIN. SELECT columnas FROM tabla1 INNER JOIN tabla 2 ON condición_emparejamiento SELECT * FROM Piezas, Fabricantes WHERE Piezas.Fabricante = Fabricantes.Codigo SELECT * FROM Piezas INNER JOIN Fabricantes ON Piezas.Fabricante = Fabricantes.Codigo EQUIVALENTES 15

OUTER JOIN - Emparejamiento Supongamos lo siguiente: OUTER JOIN - Emparejamiento Si juntamos las dos tablas de la siguiente manera: SELECT * FROM Piezas, Fabricantes WHERE Piezas.Fabricante = Fabricantes.Codigo El resultado será: dónde está la tuerca? 16

OUTER JOIN - Emparejamiento El registro de la tuerca no aparece porque no cumple la condición de emparejamiento (Fabricante es NULL). Qué hacemos si queremos que aparezcan todos los registros de una tabla, a pesar de que no cumplan la condición de emparejamiento? OUTER JOIN. SELECT columnas FROM tabla1 LEFT OUTER JOIN tabla 2 ON condición_emparejamiento SELECT columnas FROM tabla1 RIGHT OUTER JOIN tabla 2 ON condición_emparejamiento OUTER JOIN - Emparejamiento Si realizamos la siguiente consulta: SELECT * FROM Piezas LEFT OUTER JOIN Fabricantes ON Piezas.Fabricante = Fabricantes.Codigo El resultado será: 17

OUTER JOIN - Emparejamiento La consulta coge todas las filas de la tabla de la izquierda (Piezas) y las junta con la otra tabla. Por cada fila de la tabla izquierda: Si la fila cumple la condición de emparejamiento, las dos filas se juntan como si fuese una INNER JOIN. Si la fila no cumple la condición de emparejamiento, se ponen los datos de la fila correspondiente a la tabla de la izquierda y el resto de los datos se dejan a NULL. La RIGHT OUTER JOIN es igual, pero con la tabla de la derecha. También existe un FULL OUTER JOIN, que coge todas las filas de ambas tablas. OUTER JOIN - Emparejamiento Pueden abreviarse: LEFT OUTER JOIN -> LEFT JOIN RIGHT OUTER JOIN -> RIGHT JOIN FULL OUTER JOIN -> FULL JOIN 18