SQL SERVER Curso Teórico-Práctico

Documentos relacionados
Tipo de Dato TRANSACT SQL

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

MANUAL BÁSICO DEL LENGUAJE SQL

3ra. Parte. Bases de Datos Relacionales

SENTENCIAS Y CONSULTAS EN SQL SERVER

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

Procedimientos para agrupar y resumir datos

Tema 7. Elaboración de consultas básicas de selección. Lenguajes de bases de datos. SQL básico 15/12/2011

m046a Curso Consultando SQL Server 2005/2008 con Transact-SQL, 15 h

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

Modulo I: Introducción Gestores de Bases De Datos

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

MANUAL BÁSICO DEL LENGUAJE SQL

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.

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

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

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

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

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

1. DML. Las subconsultas

Bases de Datos Relacionales

Guía práctica de SQL

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

SQL (Structured Query Language)

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

SQL Los fundamentos del lenguaje

CICLO I. Objetivos. Qué el estudiante: Utilice las funciones que trae integradas el SQL Server 2008 Cree Funciones propias en Transact SQL

S.Q.L. (Lenguaje de Consulta Estructurada)

Crear BD en. Isis Bonet Cruz, PhD

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

Manipulación de datos en SQL

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos.

Tutorial de SQL - El comando SELECT

Base de Datos Avanzado I

SQL Server FEMEPA SQL Server 2000

S.Q.L. Funciones. Prof. Leonardo Carámbula - Sistemas de Bases de Datos II C.E.T.P. 2010

Primeramente estudiaremos la forma básica de la sentencia SELECT, que esta formado por:

Taller SQL - SUP. Introducción al Lenguaje SQL. Claúsula Where. Sentencia Select Sentencia Insert Sentencia Update Sentencia Delete

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

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

ÍNDICE INTRODUCCIÓN...17

A.1. Definiciones de datos en SQL

Consultas con combinaciones

Curso SQL Nivel Avanzado 1. Miguel Jurado García

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

ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

GLOSARIO DE MICROSOFT VISUAL BASIC (HAZ CLIC EN LA OPCION DEL MENU Y ACCEDERAS RAPIDAMENTE)

8 SQL SERVER 2008 RA-MA

FUNCIONES EN SQL SERVER

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

Tema 2. El lenguaje JAVA

Tema: Uso de sentencias SQL

ADMINISTRACION DE BASES DE DATOS EN ORACLE

UNION, INTERSECCION Y DIFERENCIA. SELECT TABLE Expresión con operador de reunión (SELECT * FROM PROFESOR) UNION (SELECT * FROM ESTUDIANTE)

Lic. Gustavo Rei SQL. Todo lo trascripto en este apunte es recopilación de varios libros, más apuntes personales del autor y otros colaboradores.

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

Ser capaces de realizar una consulta dentro de otra

Oracle Database: Introducción a SQL

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

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

ACERCA DE LOS AUTO RES... III AGRADECIMIENTOS... xi INTRODUCCION... Xl

Base de Datos. Docente: Ing. Francisco Rodríguez BASE DATOS. Resultados. Internet. Requerimientos

LENGUAJE DE MANIPULACIÓN DE DATOS

Introducción a Transact-SQL

Modificación de datos

MANUAL BÁSICO DE MYSQL

Temario. Índices simples Árboles B Hashing

Bases de Datos: Structured Query Language (SQL)

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

CONSULTAS BASICAS EN SQL SERVER

Documento Informativo

Bases de Datos 2. Teórico

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

CURSO DE SQL SERVER 2005

Consultas simples Introducción Origen de datos FROM. [INTO nueva_tabla] [FROM { <origen> } [,...n ] ] [WHERE <condicion_busqueda> ]

Tema 4. SQL. Juan Ignacio Rodríguez de León

EJERCICIOS RESUELTOS Y COMENTADOS PARA EL APRENDIZAJE DE LA INSTRUCCIÓN SELECT

Unidad. Lenguaje SQL. (Structured Query Language)

Entrarás a formar parte de nuestra bolsa de empleo a la que acuden las empresas en busca de nuestros alumnos.

Maestría en Bioinformática. Bases de Datos y Sistemas de Información SQL: SELECT. Ing. Alfonso Vicente, PMP

Base de Datos. Docente: Ing. Francisco Rodríguez BASE DATOS. Resultados. Internet. Requerimientos

Sql Basico. Seminar Introduction

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

ÍNDICE PRIMERA PARTE... 17

Bases de datos: Lenguaje de consultas SQL

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

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

Conceptos Avanzados de Programación en Internet

ÍNDICE INTRODUCCIÓN...13

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui

Características del lenguaje SQL

Kaseya 2. Guía del usuario. Versión 7.0. Español

MANUAL DE SQL SERVER

Tema 33. El lenguaje SQL

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

INDICE Primera Parte. Panorámica general de SQL 2. Rápido repaso de SQL 3. SQL en Perspectiva

Práctica Obtener el código y el doble del precio de los artículos cuyo precio es inferior a 5 céntimos de euro.

Bases de Datos Relacionales

SQL básico. SQL básico 1. Contenido

Transcripción:

SQL SERVER 2008-2012 Curso Teórico-Práctico

IMPLEMENTACION DE LA BASE DE DATOS

Nomenclatura Todas las tablas tendrán: - Un identificador de tipo entero auto numérico. Ésta será la clave primaria. La denominamos ID para poder compatibilizar con el framework. Un indicador de baja lógica denominado FLAG_MOSTRAR que admitirá 0 1 como valores 0 el registro es visible 1 el registro se considera eliminado Para procesos internos utilizamos también el valor 99 -Un campo de ultima modificación, donde se almacenará la fecha y hora en que un registro se dio de alta o ha sido modificado. Sirve también para bloquear lógicamente un registro, llamada ULTIMA_MODIFICACION Un campo de usuario donde se almacenará el usuario que realizó el alta o modificación del registro, denominada USUARIO Un campo que se utiliza para almacenar el ID de transacción del framework cuando el programa realiza una acción sobre un registro denominado IDTX

Nomenclatura Otras especificaciones Al utilizar un campo como clave foránea o referenciar al id de otra tabla utilizaremos el nombre ID + NOMBRE TABLA Tendremos una tabla de log por cada tabla a auditar, actualizada por un trigger. Un diseño tipo se observa en la siguiente figura, los tipos de datos son los reales. PERSONAS Nombre Tipo Nulos ID int NOT NULL ID_GRADOS int NULL NOMBRE APELLIDO varchar(5 0) varchar(5 0) NULL NOT NULL FECHA_NAC datetime NULL FLAG_MOSTRAR Tinyint NOT NULL IDTX Bigint NULL ULTIMA_MODIFICACI ON GRADOS ID Datetime NOT NULL

Consultas T-SQL - Es el lenguaje utilizado para realizar las consultas en SQL server - No es un lenguaje estándar aunque cumple con varios estándares del SQL genérico. Permite Selección de datos Actualización de datos Inserción de datos Eliminación de datos Selección de datos Se utiliza la instrucción SELECT Selección de un conjunto de columnas sobre un conjunto de datos de una o varias tablas. Para elegir el conjunto de datos se utiliza la expresión FROM

Consultas Elementos de una consulta SELECT Instrucción de selección, se indican las columnas a obtener. FROM Especifica el origen de datos. WHERE Condiciones a aplicar. GROUP BY Para consultas agrupadas se indican las columnas a agrupar. HAVING Devuelve para las consultas agrupadas valores especificos. ORDER BY Indica como será el ordenamiento de los resultados El orden de ejecución de una consulta se realiza en el siguiente orden: FROM WHERE GROUP BY HAVING SELECT ORDER BY

Consultas - Clausulas FROM -Se debe especificar el nombre de las tablas de donde se obtendrán los datos. Un SELECT con FROM devuelve los datos de todas las filas de una tabla. Se puede especificar un alias para las tablas SELECT NOMBRE, APELLIDO P WHERE -Se indica la expresión lógica para filtras las filas que serán devueltas. Se devolverán aquellas filas cuya expresión sea TRUE. Se escribe SELECT COLUMNAS FROM TABLA WHERE CONDICIÓN Ej: SELECT NOMBRE, APELLIDO P WHERE FECHA_NAC> 31/12/1970

Consultas - Clausulas GROUP BY -Devuelve los resultados agrupados por las columnas que se elijan como grupo. Ejemplo SELECT DNI, YEAR(FECHA_NAC) GROUP BY YEAR(FECHA_NAC) Se pueden utilizar en consultas de agregación SUM AVG MAX MIN COUNT SELECT YEAR(FECHA_NAC), COUNT(*), GROUP BY YEAR(FECHA_NAC) Devuelve las cantidades de la tabla personas nacidas por año. Consideraciones SUM MAX AVG MIN SE REALIZAN SOBRE COLUMNAS ESPECIFICAS -COUNT PUEDE REALIZARSE SOBRE UNA COLUMNA O SOBRE TODAS UTILIZANDO EL *. SI SE REALIZA SOBRE UN CAMPO NO TIENE EN CUENTA EL VALOR NULL Ejemplos: SELECT SUM(IMPORTE) FROM FACTURA SELECT COUNT(*) SELECT COUNT(ID_GRADOS) FROM PERSONAS

Consultas - Clausulas HAVING - Con la cláusula HAVING, se puede especificar un predicado para filtrar los grupos en lugar de filtrado individuales Debido a que la cláusula HAVING se procesa después de que las filas se han agrupado, puede hacer referencia a consultas agregadas SELECT DNI,ANIO,SUM(SANCIONES) FROM SANCIONES WHERE ANIO>2009 HAVING SUM(SANCIONES)>5 Aquí nos devolvería todas las personas por año, que tuvieron mas de 5 sanciones en cada año, a partir del año 2010. SIN HAVING DNI ANI O 238889 99 238889 99 238889 99 2010 7 2011 6 2012 3 SUM (SANCIONES) 240000 2010 3 CON 00 HAVING DNI ANI SUM 240000 2011 O 6(SANCIONES) 00 238889 2010 7 99 238889 99 2011 6 240000 2011 6

Consultas - Clausulas SELECT -Sirve para especificar las columnas que devolverán las consultas. Se pueden especificar alias para las columnas Se pueden realizar operaciones sobre las columnas, pero no sobre los alias. Se pueden incluir funciones como getdate(), substring,funciones propias. Admite consultas como columnas Se puede especificar un alias para las tablas. Mediante la clausula DISTINCT se pueden ignorar valores duplicados Con la clausula TOP, devolvemos una cierta cantidad de registros, los primeros (TOP). SELECT TOP(10) Devuelve los primeros 10registros según la clave primaria. SELECT DISTINCT APELLIDO El resultado serán todos los apellidos que existen en la tabla. SELECT APELLIDO+ +NOMBRE as APENOM, FECHA_NAC AS FECHA NACIMIENTO Retorna el nombre y apellido en una columna llamada APENOM y la fecha de nacimiento en una denominada FECHA NACIMIENTO.

Consultas - Clausulas COMPUTE -Sirve para calcular resultados en base a la consulta. -Se escribe siempre luego del order by, que es obligatorio. [ COMPUTE { { AVG COUNT MAX MIN STDEV STDEVP VAR VARP SUM } ( expression ) } [,...n ] [ BY expression [,...n ] ] ] AVG COUNT MAX MIN STDEV STDEVP VAR VARP SUM son las funciones de agregado que admite No existe para count(*) No se permite utilizar la palabra clave DISTINCT Pueden especificarse cortes de control, utilizando mas de un compute BY Ejemplo SELECT DNI, CANT_SANCIONES, TIPO_SANCION FROM SANCIONES ORDER BY DNI, TIPO_SANCION COMPUTE SUM(SANCIONES) by TIPO_SANCION COMPUTE SUM(SANCIONES) UNION Devuelve los resultados de la combinación de 2 o mas consultas El número y el orden de las columnas deben ser idénticos en todas las consultas Los tipos de datos deben ser compatibles. SELECT CAMPO1, CAMPO2 FROM TABLA1 UNION SELECT CAMPO1, CAMPO2 FROM TABLA2 Si se especifica UNION ALL devuelve las filas duplicadas, si no las ignora. El order by se especifica al final de la consulta y debe ser sobre campos que estén en el resultado

Consultas - Clausulas ORDER BY -Determina como estarán ordenados los resultados. -Se escribe al final de la consulta Admite orden ascendente y descendente Se puede dentro de la misma consulta ordenar por una ascendente y otra descendente Puede especificarse un orden sobre un campo que no este dentro del select pero que forme parte de la consulta PREDICADOS Y OPERADORES =, >=, <=,<>,!=,!>,!< IN LIKE BETWEEN - AND OR NOT () *+/- + concatenación = Asignación

Consultas - Clausulas Precedencia de los operadores 1- () 2- *, /,% 3- +,- (Positivo, negativo, suma, resta, concatenación) 4- =, >=, <=,<>,!=,!>,!< Comparación 5- NOT 6- AND 7- BETWEEN, IN, LIKE, OR 8- = Asignación IN El valor a filtrar puede ser cualquiera de un set de valores. SELECT * WHERE YEAR(FECHA_NAC) in(1988,1989,1990) LIKE Realiza una comparación de campos de tipo texto según un patrón dado. SELECT * WHERE APELLIDO LIKE CON% Devuelve aquellas personas cuyo apellido comience con CON BETWEEN Filtra por un rango especificado. SELECT * WHERE FECHA_NAC BETWEEN 01/01/1980 and 01/01/1991 Retorna quienes nacieron entre el 01/01/1980 y el 01/01/1991

Consultas - Clausulas Ejemplo de consulta SELECT NOMBRE + +APELLIDO as APENOM,DNI WHERE (FECHA_NAC BETWEEN 01/01/1980 and 01/01/1991 OR YEAR(FECHA_NAC) IN(1988,1989,1990)) AND NOT APELLIDO LIKE CON % Valores nulos Se pueden filtrar con IS NULL IS NOT NULL EJEMPLO SELECT * FROM UNIFORMADOS WHERE FECHA_BAJA IS NOT NULL Retorna los uniformados que tienen fecha de baja. Se puede forzar un valor nulo con la función ISNULL o COALESCE que es estandar.

Consultas Funciones Comunes Manejo de caracteres, funciones mas comunes Operador+ SELECT NOMBRE + +APELLIDO SUBSTRING SELECT SUBSTRING( 12345,1,3) LEFT SELECT LEFT( ertyu,3) RIGHT SELECT RIGHT( qwerty,2) LEN SELECT LEN( pepe ), SELECT LEN(APELLIDO) DATALENGTH SELECT DATALENGTH(APELLIDO) CHARINDEX SELECT CHARINDEX( X, ASSX,1) PATINDEX SELECT PATINDEX('%[0-9]%', e23h') REPLACE SELECT REPLACE( cadena, DE, de ) REPLICATE SELECT REPLICATE( 0,10) UPPER SELECT UPPER ( minuscula ) LOWER SELECT LOWER ( MAYUSCULA ) RTRIM SELECT RTRIM( ESPACIOS ) LTRIM SELECT RTRIM( ESPACIOS ) FORMAT SELECT FORMAT (2233, 0000000 ) Manejo de fecha y hora, funciones mas comunes - LITERALES una fecha se puede expresar en una cadena literal como aaaammdd CAST SELECT CAST( 02/12/2011 as DATETIME) Depende del lenguaje devuelve 2 de febrero de2011 o 2 de diciembre de 2011 Se puede utilizar la sentencia SET LANGUAGE para que devuelva la fecha según el lenguaje. CONVERT SELECT CONVERT(DATETIME, 02/12/2011,101) Devuelve en formato mm/dd/aaaa CONVERT SELECT CONVERT(DATETIME, 02/12/2011,103) Devuelve en formato dd/mm/aaaa YEAR SELECT YEAR(FECHA) MONTH SELECT MONTH(FECHA) DAY SELECT DAY(FECHA) GETDATE() Devuelve la fecha del día DATEADD SELECT DATEADD(DD,31,FECHA) DATEDIFF SELECT DATEDIFF(day,FECHA_DESDE,FECHA_HASTA) DATEPART SELECT DATEPART(month, 12/10/2012 )

Consultas Varios CASE...WHEN Instrucción condicional Se aplica en el SELECT Devuelve una expresión escalar. Acepta 2 modos Evaluando la expresión SELECT CASE [Expresion] WHEN [Valor1] THEN Resultado1 WHEN [Valor2] THEN Resultado2 END AS CAMPO -Sin evaluación de expresión SELECT CASE WHEN CAMPO1<10 THEN Resultado1 WHEN CAMPO1>10 THEN Resultado2 END AS CAMPO Manejo de literales con LIKE Permite búsquedas de cadenas parciales mediante patrones. Utiliza el % como comodín para indicar que a partir de ahí o hasta ahí acepta cualquier valor. SELECT DNI, APELLIDO WHERE APELLIDO LIKE C% Devuelve aquellas personas empiezan con C. El comodín _ (guión bajo) representa un carácter solo que puede tomar cualquier valor a diferencia de % que pueden ser n caracteres. SELECT DNI, APELLIDO WHERE APELLIDO LIKE _O% Devuelve aquellos cuyo apellido tiene como segunda letra una O.

Consultas Varios Manejo de literales con LIKE SELECT DNI, APELLIDO WHERE APELLIDO LIKE _O% Devuelve aquellos cuyo apellido contiene una O. Una [lista de caracteres] como comodín SELECT DNI, APELLIDO WHERE APELLIDO LIKE [ABC]% Devuelve aquellas personas empiezan con A, B o C. Una [lista de caracteres con rango ] como comodín SELECT DNI, APELLIDO WHERE APELLIDO LIKE [A-D]% Devuelve aquellas personas empiezan con A, B,C o. Manejo de literales con LIKE Permite búsquedas de cadenas parciales mediante patrones. Utiliza el % como comodín para indicar que a partir de ahí o hasta ahí acepta cualquier valor. SELECT DNI, APELLIDO WHERE APELLIDO LIKE C% Devuelve aquellas personas empiezan con C. El comodín _ (guión bajo) representa un carácter solo que puede tomar cualquier valor a diferencia de % que pueden ser n caracteres. SELECT DNI, APELLIDO WHERE APELLIDO LIKE _O% Devuelve aquellos cuyo apellido tiene como segunda letra una O. SELECT DNI, APELLIDO WHERE APELLIDO LIKE _O% Devuelve aquellos cuyo apellido contiene una O.

RECURSOS VIRTUALES el aula virtual se encuentran los recursos complementarios referidos a creación de bases de datos en SQL Server