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

Taller de Base de Datos D t

Dra. Dra Elvia Ruiz Beltrn

Objetivo Obj i general l


El estudiante identificar herramientas de software para disear y administrar bases de datos, datos as como las tecnologas de conectividad.

Aportacin de la asignatura al perfil del egresado


Proporciona conocimientos y habilidades para que utilicen de manera ptima gestores y tecnologas de acceso a base de datos.

Temario i
1. Gestor de base de datos. 1.1. Caractersticas del gestor. 1.2. Herramientas. 1.2.1. De creacin de bases de datos. 121 datos 1.2.2. De administracion de bases de datos. 1.2.3. De edicin para crear esquemas y consultas de bases de datos. 1.2.4. De control, monitoreo y estadsticas de acceso a bases de datos. 1.2.5. Utilerias diversas. 1.3 1 3 Instalacin y configuracin del enterno operativo. operativo

Temario i
2. Administracin de bases de datos. 2.1. Creacin de bases de datos. 2.1.1. Creacin de la estructura de la base de datos. 2.1.2. Creacin de dominios definidos por el DBA. 2.1.3. Definir el esquema general de la base de datos (tablas, atributos, llaves primarias y llaves heredadas). 2.1.4. C 214 Creacin de vistas de la base de datos (view). i d i t d l b d d t ( i ) 2.1.5. Generalizacin y especializacin. 2.1.6. Agregacin. 2.1.7. Entidades recursivas. 2.2. Definicin del esquema de integridad. 2.2.1. Validar y verificar integridad de entidad e integridad referencial. 2.2.2. Creacin de disparadores (Triggers). 2.2.3. C 223 Creacin de procedimientos almacenados. i d di i t l d 2.3. Definicin del esquema de seguridad. 2.3.1. Creacin de usuarios de la base de datos. 2.3.2. Asignacin de privilegios sobre los objetos de informacin. g p g j

Temario i
2.4. Definicin del esquema de recuperacin. 2.4.1. Diseo y creacin de la bitcora. 2.4.2. Recuperacin a partir de la bitcora. 2.4.3. Respaldar bases de datos. 2.1.4. Recuperar bases de datos. 2.5. Diseo y procesamiento de transacciones. 2.5.1. Definicin d t 2 5 1 D fi i i de transacciones en lenguaje husped. i l j h d 2.5.2. Ejecucin de transacciones planas en el gestor de bases de datos. 2.5.3. Ejecucin de transacciones anidadas.

Temario i
3. T 3 Tecnologas de conectividad a base de d l d i id d b d datos. 3.1. ODBC. 3.1.1. Terminologa y conceptos. 3.1.2. Administrador de orgenes de datos ODBC. 3.1.3. Instalacin y configuracin del driver acorde al gestor de bases de datos. 3.2. ADO.NET 3.2.1. T i l y conceptos. 321 Terminologa 3.2.2. Componentes disponibles. 3.2.2.1. Connection. 3.2.2.2. Command. C 3.2.2.3. Recordsource. 3.2.2.4. Error. 3.2.3. Prototipo de aplicaciones con conectividad a bases de datos. 3.3. 3 3 JDBC 3.3.1. Terminologa y conceptos. 3.3.2. SQL y JDBC. 3.3.2.1. Jerarqua de clases q java.sql.*. 3.3.2.2. Interface java.sql.connection.

Temario i
3.3.2.3. Interface java.sql.statement 3.3.2.4. Interface java.sql.resultset 3.3.1.5. 3 3 1 5 Jerarqua de clases javax.sql.* 3.3.3. 3.3.4. Instalacin y configuracin del driver acorde al gestor de base de datos. Prototipo de aplicaciones con conectividad a base de datos.

Referencias f i
1. C. J. Date. Introduction to Data Base Systems, Volumen II. Ed. Addison Wesley Iberoamericana. 2. James R. Groff, Paul N. Weinberg. Aplique SQL. Ed. Ed Mc Garw Hill Hill. 3. Mukhar, Kevin, et.al. Fundamentos de bases de datos con Java. Ed. Wrox/Anaya Multimedia, 2002. 4. Navathe. Fundamentos de Bases de Datos. Ed. Addison Wesley 1999.

5. D it l H 5 Deitel Harvey M., et.al. M t l Visual Basic .NET for Experience Programmers. Ed. Microsoft Press, 2002. 6. Balena, Francesco. Programming Microsoft Visual Basic .NET. Ed. Microsoft Press, 2002. 7. Sceppa, David. Microsoft ADO.NET. Ed. Ed Microsoft Press, 2002. Press 2002 8. Worsley John.,et.al. Practical Postgresql. Ed. Command prompt Inc. 2002 9. Korry Douglas.,et.al. PostgreSQL. Ed. O'Reilly & Associates, 2003.

Bibliografa ibli f
10. Nielsen Paul. Microsoft SQL Server 2000 Bible. Ed. John Wiley & Sons, 2002. 11. 11 Houlette Forrest. Forrest Fundamentos de SQL.Para programadores. Ed. Mc Graw Hill, 2001. 12. Nielsen Paul. DeVry College of Technology and Monroe College Database Systems Using Oracle: A Simplified Guide to SQL and PL/SQL. Ed. Prentice Hall. 13. 13 Ray Ranking Paul Jensen Paul Bertucci. Microsoft SQL Server 2000 Unleashed, 2/E 2003. Ed Que/Sams 2003 Ed. Que/Sams.

14. Steve Holzner. Microsoft Visual C#.NET 2003 Kick Start 2003. Ed. Que/Sams. 15. B k Woody. 15 Buck W d Essential SQL Server 2000: And Administration Handbook 2002. Ed. Addison Wesley Professional. 16. Prez, C. Domine Mi D i Microsoft SQL Server 2000 ft S Administracin y Anlisis de Bases de Datos. Ed. Alfaomega-RAMA. 17. Prez, C. ORACLE 9i Administracin y Anlisis de g Bases de Datos. Ed. Alfaomega-RAMA. 18. Melton, Jim y Eisenberg, Andrew. SQL Y JAVA Gua para SQLJ, JDBC y Tecnologas Rel i d Te l Relacionadas. Ed Ed. Alfaomega-RAMA.

Bibliografa ibli f
19. Jeffrey P. McManus Chris Kinsman. C# Developer's Guide to ASP.NET, XML, and ADO.NET 2002. Ed. Ed Addison Wesley Professional. Professional

Referencias en Internet www.bivitec.org.mx www.javasun.com

Evaluacin l i

Sistema gestor de base de d Si d b d datos


Los Sistemas de gestin de base de datos son un tipo de software muy especfico, dedicado a servir de interfaz entre la base de datos, el usuario y datos las aplicaciones que la utilizan. Se compone de un: lenguaje de definicin de datos (Data Definition Language, DDL por sus siglas en ingls),
SQL

de un lenguaje de manipulacin de datos y de un lenguaje de consulta.


Usuario Base de datos

SGBD o DBMS (Data base manager system)

Reglas de convivencia l d i i
No consumir alimentos en clase. Se pasar lista a las 8:10 horas.

No se permite el uso de computadores o dispositivos mviles en clase, a menos que se indique por el instructor. Respeto entre maestro-alumno, alumnoalumno.

1.1 1 1 Caractersticas del d l gestor t

Acrnimos A i
SGBD: Sistema Gestor de Base de Datos DBMS: Data Base Manegement System g y

Finalidad del DBMS i lid d d l S


Abstraccin de la informacin. Ahorran a los usuarios detalles acerca del almacenamiento fsico de los datos.

Independencia. Capacidad de modificar el esquema (fsico o lgico) sin tener que realizar cambios en las aplicaciones que se sirven de ella.

Finalidad del DBMS i lid d d l S


Redundancia mnima. R d d i i Evitar la aparicin de informacin repetida o redundante. tid d d t

Consistencia. Vi il que aquella i f Vigilar ll informacin que i aparece repetida se actualice de forma coherente. coherente

Finalidad del DBMS


Seguridad. g Gran valor de los datos. SGBD garantizar que esta informacin se encuentra asegurada frente a g usuarios malintencionados SGBD disponen de un complejo p p j sistema de permisos a usuarios y grupos de usuarios, que permiten otorgar ,q p g diversas categoras de permisos.

Finalidad del DBMS


Integridad. Adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Proteger los datos ante fallos de hardware hardware, datos introducidos por usuarios descuidados. Respaldo y recuperacin. Proporcionar una forma eficiente de realizar copias de seguridad de la informacin almacenada. Restaurar a partir de estas copias los datos que se hayan podido perder.

Finalidad del DBMS


Control de la concurrencia. Son muchas las personas que acceden a una base de datos. SGBD debe controlar este acceso concurrente a la informacin, que podra derivar en inconsistencias. Tiempo de respuesta. Minimizar el tiempo que el SGBD tarda en darnos la informacin solicitada y en almacenar los cambios realizados. os ca b os ea ados

En resumen

Caractersticas de un DBMS C i d S
1. 2. 3. 4. 4 5. 6. 6 7. 8. 9.

Abstraccin de la informacin. Independencia. Redundancia mnima. Consistencia. Consistencia Seguridad. Integridad. Integridad Respaldo y recuperacin. Control de la concurrencia. Tiempo de respuesta.

DBMS comerciales:
dBase FileMaker Fox Fox Pro IBM DB2 IBM Informix Interbase de Borland Microsoft Microsoft Access Microsoft SQL Server Oracle Oracle Progress Sybase

DBMS a utilizar S ili


SQL Server 2000 Developer Edition

SQL(lenguaje estructurado de Consultas o Structured Query Language ).

Instalacin de SQL Server l i d SQ S

000.1 Gua de Instalacin de SQL Server.

Configuracin de SQL Server C fi i d SQ S

000.2 Configuracin del servicio de SQLServer

Tarea 1
Investigar la historia de los Gestores de Bases de Datos mencionados anteriomente. Hacer resumen se comentar en resumen, clase lo que investig y se recoger el resumen que contar como tarea. l t t

1.2 H 1 2 Herramientas i t

1.2.1 De creacin de bases de datos (ControlEscolar)

1.2.2 De administracin de base de datos


Administrador de bases de datos (DBA)
Define, maneja y controla las bases de datos, j proporciona asesora a los desarrolladores, usuarios y ejecutivos q la requieran. j que q tiene experiencia en DBMS, diseo de bases de p datos, Sistemas operativos, comunicacin de datos, hardware y programacin, j p nociones de administracin, manejo de personal e incluso un cierto grado de diplomacia.

1.2.2 De administracin de base de datos


Responsabilidades del DBA
Administrar la estructura de la Base de Datos. Administrar la actividad de los datos. Administrar el Sistema Manejador de Base de Datos. Establecer el Diccionario de Datos. Asegurar la confiabilidad de la Base de Datos. Confirmar la seguridad de la Base de Datos.

1.2.2 De administracin de base de datos


Objetivos del DBA
Mantener Datos. D t la Integridad de los

M t Mantener la Seguridad de los l S id d d l Datos. Mantener la Disponibilidad de los Datos. D t

1.2.2 De administracin de base de datos


Funciones Bsicas del Administrador de la Bases de Datos.
Creacin de Bases de Datos y Tablas. Especificacin de las Restricciones de Integridad de los Datos. Administrar la Concurrencia. Optimizacin del Acceso a Datos. Definir el Esquema Conceptual. Definir el Esquema Interno. Procedimientos de Respaldo y Recuperacin. Concesin de Autorizacin para el Acceso a los Datos Datos. Definicin de la estructura de almacenamiento del mtodo de acceso.

1.2.3 De edicin para crear esquemas y consultas de bases de datos d t

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Componentes d SQ C de SQL
Comandos, Clusulas, Operadores, F i Funciones.
Se combinan en las instrucciones para crear, actualizar y manipular bases de datos. p

1.2.3 De edicin para crear esquemas y consultas de bases de datos


Componentes de SQL

Comandos SQ ( C d SQL (DDL y DML) )


DDL (Data Definition Language ) permite crear y definir nuevas bases de datos, campos e ndices.
Comandos DDL Comando C d Descripcin D i i

CREATE Utilizado para crear nuevas tablas, campos e ndices ndices. DROP Empleado para eliminar tablas e ndices. ALTER Utilizado para modificar las tablas agregando campos o combinando la definicin de los campos.

1.2.3 De edicin para crear esquemas y consultas de bases de datos


Componentes de SQL

Comandos SQ ( C d SQL (DDL y DML) )


DML (D t M i l ti L (Data Manipulation Language) permiten generar ) it consultas para ordenar, filtrar y extraer datos de la base de datos. datos
Comandos DML Comando Descripcin

SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado determinado. INSERT Utilizado para cargar lotes de datos en la base de datos en una nica operacin. UPDATE Utilizado para modificar los valores de los campos y registros especificados. DELETE Utilizado para eliminar registros de una table de una table de una base de datos.

1.2.3 De edicin para crear esquemas y consultas de bases de datos


Componentes de SQL

Clusulas Cl l
Son condiciones de modificacin utilizadas para definir p los datos que desea seleccionar o manipular.
Clusula Cl l Descripcin D i i

FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros registros. WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar. g q 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

1.2.3 De edicin para crear esquemas y consultas de bases de datos


Componentes de SQL

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

1.2.3 De edicin para crear esquemas y consultas de bases de datos


Componentes de SQL

Operadores d comparacin O d de i
Operador O d < > <= >= = <>, ! <> != !< ! !> BETWEEN LIKE In datos. Uso U Menor que Mayor que Menor Igual que Mayor Igual que Igual que Diferente No menor que No mayor que Utilizado para especificar un intervalo de valores. p Utilizado en la comparacin de un modelo. Utilizado para especificar registros de una base de

1.2.3 De edicin para crear esquemas y consultas de bases de datos


Componentes de SQL

Funciones de agrupamiento i d i
Se usan dentro de una clusula SELECT en grupos de registros para devolver un nico valor que se aplica a un conjunto de registros. Funcin Descripcin

AVG Utilizada para calcular el promedio de los valores de un campo determinado . COUNT Utilizada para devolver el nmero de registros de la seleccin. seleccin SUM Utilizada para devolver la suma de todos los valores de un campo 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.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Tipos de datos i d d
Cada columna, variable local expresin y columna local, parmetro dispone de un tipo de dato. SQL Server suministra el siguiente conjunto de tipos de datos:

1.2.3 De edicin para crear esquemas y consultas de bases de datos


Tipos de datos

Tipos de datos carcter i d d

1.2.3 De edicin para crear esquemas y consultas de bases de datos


Tipos de datos

Tipos de datos numricos i d d i

1.2.3 De edicin para crear esquemas y consultas de bases de datos


Tipos de datos

Tipos de datos numricos i d d i

1.2.3 De edicin para crear esquemas y consultas de bases de datos


Tipos de datos

Tipo de datos fecha/hora i d d f h /h

1.2.3 De edicin para crear esquemas y consultas de bases de datos


Tipos de datos

Otros tipos de d O i d datos

ControlEscolar C l l

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Estructura d l tablas de las bl

Empleados

Nombre 25

Apellidos 50

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Estructuras d l tablas de las bl

1.2.3 De edicin para crear esquemas y consultas de bases de datos

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Estructuras d l tablas de las bl

Abrir l A li d d Ab i el Analizador de consultas l

Crear Base de Datos Empresa Crear tabla Empleados

Cmo crearas la base de datos? C l b d d ?


CREATE DATABASE Empresa ON ( NAME=alum_dat, FILENAME='C:\Archivos de programa\microsoft sql server\mssql\data\empresa.mdf' ) GO

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Crear tabla C
Crea una nueva tabla llamada Empleados con dos campos, uno llamado Nombre con longitud 25 y otro llamado Apellidos con longitud 50. p g

CREATE TABLE dbo.Empleados ( N b VARCHAR (25), Nombre (25) Apellidos VARCHAR (50) ) GO
Empleados E l d

Nombre 25

Apellidos 50

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Crear tabla C
Crea una nueva tabla llamada Empleados con un campo Nombre con longitud 10, otro con llamado Apellidos longitud 50 y uno ms llamado Fecha_Nacimiento de tipo g _ p Fecha/Hora. Tambin crea una restriccin que no permite valores repetidos para l t tid los tres campos.
CREATE TABLE dbo.Empleados ( Nombre VARCHAR (10), Apellidos VARCHAR (50), p V C ( ), Fecha_Nacimiento DATETIME, CONSTRAINT valor_unico UNIQUE ([Nombre] [Apellidos], [Fecha Nacimiento]) ([Nombre], [Apellidos] [Fecha_Nacimiento]) ) GO

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Crear tabla C
Crea una tabla llamada Empleados con un campo de longitud 20 llamado Nombre, otro llamado Apellidos de longitud 25 otro campo llamado Fecha Nacimiento de 25, Fecha_Nacimiento tipo Fecha/Hora y por ultimo un ID de tipo entero el que establece como llave primaria. p CREATE TABLE dbo.Empleados ( ID INT PRIMARY KEY, KEY Nombre VARCHAR(20), Apellidos VARCHAR(25), Fecha_Nacimiento Fecha Nacimiento DATETIME) GO

1.2.3 De edicin para crear esquemas y consultas de bases de datos

1 Crear la tabla Alumnos C l bl Al


Antes de crear la tabla Alumnos debemos de crear la tabla Carrera
CREATE TABLE dbo.Carrera ( NoC INT IDENTITY (1, 1) PRIMARY KEY, NombreC varchar (20)) ( )) GO

CREATE TABLE dbo Alumnos ( dbo.Alumnos NC INT PRIMARY KEY, NombreA VARCHAR(50), Sexo VARCHAR(1), ( ) Domicilio VARCHAR(50), Edad TINYINT, NoC INT FOREIGN KEY (NoC) REFERENCES Carrera) GO

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Aadir registros a las tablas A i i


Para agrega uno o varios registros en una tabla se puede realizar por medio de dos procedimientos: 1. la primera es Insertar un nico registro, 2. la segunda es Insertar en una tabla los registros contenidos en otra tabla.

1. 1 Insertar un nico Registro


INSERT INTO [nombre_BaseDeDatos.][ dueo.] nombre_tabla (campo1, campo2, nombre tabla (campo1 campo2 .., campoN) VALUES (valor1, valor2, ..., valorN)

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Aadir registros a las tablas A i i


Inserte a la tabla Empleados a Ramn Prez Jimnez. Ramn Jimnez INSERT INTO db E l d (ID N b A llid ) dbo.Empleados (ID, Nombre, Apellidos) VALUES (121, 'Ramn', 'Prez Jimnez') GO Inserte a la tabla Empleados a Rosa Ramrez Garca, con fecha de nacimiento 12 de Julio de 1990 1990. INSERT INTO dbo.Empleados (ID, Nombre, Apellidos, Fecha_Nacimiento) VALUES (122, 'Rosa', 'Ramrez Garca', '1990-06-12 00:00:00' 00 00 00' ) GO

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Aadir registros a las tablas A i i


Inserte a la tabla Empleados el trabajador Alberto I t l t bl E l d l t b j d Alb t Medina Ruiz, con ID 295 y fecha de nacimiento 25 de Agosto de 1998 a 4:05 pm pm. INSERT INTO dbo Empleados (ID Nombre dbo.Empleados (ID, Nombre, Apellidos, Fecha_Nacimiento) Fecha Nacimiento) VALUES (295, Alberto, Medina Ruiz, 1998-08-12 16:05:00 ) GO

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Aadir registros a las tablas A i i


Inserte los registros de la base de datos Carrera INSERT INTO dbo.Carrera(NombreC) VALUES('Ingenieria Civil') GO INSERT INTO dbo.Carrera(NombreC) VALUES('Abogado') GO INSERT INTO dbo.Carrera(NombreC) VALUES('Lic. en Admn.') U S( c e d ) GO INSERT INTO dbo.Carrera(NombreC) VALUES('Contador Publico') GO

1.2.3 De edicin para crear esquemas y consultas de bases de datos

2 Inserte a la tabla Alumnos las dos primeras tuplas


INSERT INTO dbo Alumnos dbo.Alumnos VALUES(76, 'Jose Martinez', 'M', 'Fresno # 503', 22, 1) GO INSERT INTO dbo.Alumnos VALUES(95, 'Ramon Ramos', 'M', 'Valle # 301', 23, 1) GO

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Aadir registros a las tablas A i i


2. la segunda es Insertar en una tabla los registros contenidos en otra tabla.
INSERT INTO [nombre_BaseDeDatos.][ dueo.] nombre_tabla (campo1, campo2, .., campoN) SELECT Campo1, Campo2, ..., CampoN FROM TablaOrigen g

Si Tabla y TablaOrigen poseen la misma estructura podemos simplificar la sintaxis a: INSERT INTO [nombre_BaseDeDatos.][ dueo.] nombre_tabla SELECT * FROM TablaOrigen

Prctica 1 (Tarea 2) i (
Crear el resto de tablas (de la Base de Datos Control Escolar) del examen (en el analizador de consultas), de acuerdo a como se especifica en el diagrama relacional. Adems insertar la informacin que se especfica en las tablas. -Entregar prctica en archivo y reporte escrito indicando que pasos siguieron. - Slo contar la prctica si funciona el programa entregado.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


La sintaxis de una consulta de seleccin es la siguiente: SELECT seleccin [ INTO nueva_tabla ] FROM tabla_fuente [ WHERE condicin ] [ GROUP BY grupo ] [ HAVING condicin grupo ] condicin_grupo [ ORDER BY expresin [ ASC | DESC ] ]

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Especifica las columnas que va a devolver la consulta.

SELECT seleccin [ INTO nueva_tabla ] FROM tabla_fuente [ WHERE condicin ] [ GROUP BY grupo ] [ HAVING condicin grupo ] condicin_grupo [ ORDER BY expresin [ ASC | DESC ] ]

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


SELECT seleccin [ INTO nueva_tabla ] FROM tabla_fuente [ WHERE condicin ] [ GROUP BY grupo ] [ HAVING condicin grupo ] condicin_grupo [ ORDER BY expresin [ ASC | DESC ] ]
Crea una nueva tabla e inserta en ella las filas resultantes de la consulta.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


SELECT seleccin [ INTO nueva_tabla ] FROM tabla_fuente [ WHERE condicin ] [ GROUP BY grupo ] [ HAVING condicin grupo ] condicin_grupo [ ORDER BY expresin [ ASC | DESC ] ]
Especifica las tablas de las que se van a obtener filas. La clusula FROM es necesaria excepto cuando la lista de seleccin slo contiene constantes, variables y expresiones aritmticas (no i it ti ( nombres de columna).

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


SELECT seleccin Especifica una condicin de bsqueda para restringir las [ INTO nueva_tabla ] filas que se van a devolver. FROM tabla_fuente [ WHERE condicin ] [ GROUP BY grupo ] [ HAVING condicin grupo ] condicin_grupo [ ORDER BY expresin [ ASC | DESC ] ]

Consultas a las Tablas C l l bl


SELECT seleccin [ INTO nueva_tabla ] FROM tabla_fuente [ WHERE condicin ] [ GROUP BY grupo ] [ HAVING condicin grupo ] condicin_grupo [ ORDER BY expresin [ ASC | DESC ] ]
Especifica los grupos en los que se van a colocar las filas de salida y, si se incluyen funciones de agregado en la clusula SELECT seleccin, calcula el valor de resumen de cada grupo.

Consultas a las Tablas C l l bl


SELECT seleccin [ INTO nueva_tabla ] FROM tabla_fuente [ WHERE condicin ] [ GROUP BY grupo ] [ HAVING condicin grupo ] condicin_grupo [ ORDER BY expresin [ ASC | DESC ] ]
Especifica una condicin de bsqueda de un grupo o agregado. Normalmente, HAVING se utiliza con la clusula GROUP BY. Cuando no se utiliza GROUP BY, HAVING se comporta como la clusula WHERE.

Consultas a las Tablas C l l bl


SELECT seleccin [ INTO nueva_tabla ] FROM tabla_fuente [ WHERE condicin ] [ GROUP BY grupo ] [ HAVING condicin grupo ] condicin_grupo [ ORDER BY expresin [ ASC | DESC ] ]

Especifica el orden del conjunto de resultados resultados.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula SELECT y sus Argumentos SELECT [ ALL | DISTINCT ] [ TOP n [PERCENT] ] < Seleccin > < Seleccin > ::= {* | { nombre_tabla | nombre_vista | alias } * b t bl b i t li }.* | { nombre_columna | expresin } [ [ AS ] alias_columna ] alias columna | alias_columna

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas


Clusula SELECT

Especfica que pueden aparecer filas duplicadas en el conjunto de resultados. ALL es el valor predeterminado.

SELECT [ ALL | DISTINCT ] [ TOP n [PERCENT] ] < Seleccin > < Seleccin > ::= {* | { nombre_tabla | nombre_vista | alias } * b t bl b i t li }.* | { nombre_columna | expresin } [ [ AS ] alias_columna ] alias columna | alias_columna

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas


Clusula SELECT SELECT [ ALL | DISTINCT ] [ TOP n [PERCENT] ] < Seleccin > < Seleccin > ::= {* | { nombre_tabla | nombre_vista | alias } * b t bl b i t li }.* | { nombre_columna | expresin } [ [ AS ] alias_columna ] alias columna | alias_columna
Especfica que slo pueden aparecer filas exclusivas en el conjunto de resultados. Los valores NULL se consideran iguales a efectos de la palabra clave DISTINCT.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas


Clusula SELECT
Especifica que slo se van a utilizar las primeras n filas del conjunto de SELECT [ ALL | DISTINCT ] lt d d lla consulta; n es un resultados de lt valor entero entre 0 y 4294967295. [ TOP n [PERCENT] ] Si tambin se especifica PERCENT, < Seleccin > s o slo se va a u a e p e n po a utilizar el primer por ciento de filas del conjunto de < Seleccin > ::= resultados. Cuando se especifica {* con PERCENT, n debe ser un entero | alias100 | { nombre_tabla | nombre_vista entre 0 y 100. b t bl b i t t t li } * }.*

| { nombre_columna | expresin } [ [ AS ] alias_columna ] alias columna | alias_columna

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula SELECT SELECT [ ALL | DISTINCTSon las columnas que se van ] [ TOP n [PERCENT] ] a seleccionar para el conjunto de resultados. La lista de < Seleccin > seleccin es una serie de < Seleccin > ::= expresiones separadas por comas. {* . | { nombre_tabla | nombre_vista | alias } * b t bl b i t li }.* | { nombre_columna | expresin } [ [ AS ] alias_columna ] alias columna | alias_columna

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula SELECT SELECT [ ALL | DISTINCT ] [ TOP n [PERCENT] ] Especifica que se deben devolver todas las < Seleccin > columnas de todas las tablas y vistas de la clusula FROM. Las columnas se devuelven por < Seleccin > ::= tabla o vista, tal como se especifique en la {* clusula FROM, en el orden en que se encuentran en l t bl t vista. li | { nombre_tabla | nombre_vista i |t alias } * b t bl b la tabla o i }.* | { nombre_columna | expresin } [ [ AS ] alias_columna ] alias columna | alias_columna

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula SELECT
Limita el alcance de * a la tabla o vista especificada. ifi d

SELECT [ ALL | DISTINCT ] [ TOP n [PERCENT] ] < Seleccin > < Seleccin > ::= {* | { nombre_tabla | nombre_vista | alias } * b t bl b i t li }.* | { nombre_columna | expresin } [ [ AS ] alias_columna ] alias columna | alias_columna

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula SELECT SELECT [ ALL | DISTINCT ] [ TOP n [PERCENT] ] Es el nombre de una columna que se va < Seleccin > a de ol er devolver. < Seleccin > ::= {* | { nombre_tabla | nombre_vista | alias } * b t bl b i t li }.* | { nombre_columna | expresin } [ [ AS ] alias_columna ] alias columna | alias_columna

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula SELECT SELECT [ ALL | DISTINCT ] [ TOP n [PERCENT] ] Es un nombre de columna, constante, < Seleccin > funcin, f ncin o una combinacin de nombres na < Seleccin > ::= de columnas, constantes y funciones conectados mediante operadores, o una {* subconsulta. | { nombre_tabla | nombre_vista | alias } * b t bl b i t li }.* | { nombre_columna | expresin } [ [ AS ] alias_columna ] alias columna | alias_columna

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula SELECT SELECT [ ALL | DISTINCT ] [ TOP n [PERCENT] ] Es un nombre alternativo para < Seleccin > reemplazar el nombre de la columna en <S Seleccin > ::= el conjunto de resultados de la consulta. {* | { nombre_tabla | nombre_vista | alias }.* nombre tabla nombre vista } | { nombre_columna | expresin } [ [ AS ] alias_columna ] | alias_columna

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula FROM Especifica las tablas de las q se van a p que obtener filas. La clusula FROM es necesaria excepto cuando la lista de seleccin slo contiene constantes, variables y expresiones aritmticas (no nombres de columna).

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula FROM (Sintaxis) ( )
Especifica el nombre de una tabla y un alias opcional.

[ FROM { < tabla_fuente > } [ ,...n ] ] _ < tabla_fuente > ::= tabla_fuente [ [ AS ] alias ] | nombre vista [ [ AS ] alias ] nombre_vista | < tabla_fuente > JOIN < tabla_fuente2> ON < bsqueda2 >

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula FROM (Sintaxis) ( )
[ FROM { < tabla_fuente > } [ ,...n ] ] _ < tabla_fuente > ::= tabla_fuente [ [ AS ] alias ] | nombre vista [ [ AS ] alias ] nombre_vista | < tabla_fuente > JOIN < tabla_fuente2> ON < bsqueda2 >
Especifica el nombre de una vista y un alias opcional.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula FROM (Sintaxis) ( )
[ FROM { < tabla_fuente > } [ ,...n ] ] _ < tabla_fuente > ::= tabla_fuente [ [ AS ] alias ] | nombre vista [ [ AS ] alias ] nombre_vista | < tabla_fuente > JOIN < tabla_fuente2> ON < bsqueda2 >
Indica que las tablas o vistas especificadas deben combinarse.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula FROM (Sintaxis) ( )
[ FROM { < tabla_fuente > } [ ,...n ] ] _ < tabla_fuente > ::= tabla_fuente [ [ AS ] alias ] | nombre vista [ [ AS ] alias ] nombre_vista | < tabla_fuente > JOIN < tabla_fuente2> ON < bsqueda2 >
Nombre de la tabla de unin.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula FROM (Sintaxis) ( )
[ FROM { < tabla_fuente > } [ ,...n ] ] _ < tabla_fuente > ::= tabla_fuente [ [ AS ] alias ] | nombre vista [ [ AS ] alias ] nombre_vista | < tabla_fuente > JOIN < tabla_fuente2> ON < bsqueda2 >
Especifica la condicin en la que se basa la combinacin. La condicin puede especificar cualquier predicado, d ifi l i di d aunque se suelen utilizar columnas y operadores de comparacin.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

3. Liste Nmero de Control y Nombres de los Alumnos


SELECT NC N b A NC, NombreA FROM Alumnos

SELECT NC AS 'No de control', No. control NombreA as 'Nombre del Alumno' FROM Al Alumnos

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula WHERE Especifica una condicin de bsqueda para p q p restringir las filas que se van a devolver.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


el Clusula WHERE (Sintaxis) devueltas ende conjunto de (Limita las filas ) resultados mediante el uso predicados predicados. No hay lmite en el nmero de predicados que se pueden incluir en una condicin de bsqueda.

[ WHERE < condicin> | < unos_otros > ] < izq_der > ::= q_ nombre_columna { * = | = * } nombre_columna

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula WHERE (Sintaxis) ( ) [ WHERE < condicin> | < unos otros > ] unos_otros < izq_der > ::= nombre_columna nombre columna { * = | = * } nombre columna nombre_columna
Se tili S utiliza el operador * para especificar l d *= ifi una combinacin externa izquierda y el operador =* para especificar una combinacin externa derecha.

Ejemplo: especifica una combinacin externa izquierda en que l fil d T b1 que no cumplen la condicin las filas de Tab1 l l di i especificada se incluyen en el conjunto de resultados: SELECT Tab1.name, Tab2.id FROM Tab1, Tab2 WHERE Tab1.id *=Tab2.id

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

4. 4 Liste los Nombres de los Alumnos que tenga una edad entre 22 a 24 aos.

SELECT NombreA A, Edad FROM Alumnos WHERE Edad >= 22 and Edad <= 24

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas


Rango de registros g g Para indicar que deseamos recuperar los q p registros segn el intervalo de valores de un campo emplearemos el operador BETWEEN.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Rango de registros BETWEEN (Sintaxis) Campo [ NOT ] BETWEEN expresin_inicio AND expresin_fin expresin fin Campo Se trata de la expresin q se va a p p p que probar en el intervalo definido mediante expresin_inicio y expresin_fin. El argumento Campo debe ser del mismo tipo de datos que los argumentos expresin_inicio y expresin_fin. NOT Especfica que se niega el resultado del O f predicado. expresin_inicio Valor inicial. expresin_fin Valor final.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Rango de registros BETWEEN (Sintaxis) Ejemplos: SELECT * FROM Pedidos WHERE CodPostal Between 28000 And 28999

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

Listaremos nombres de los Alumnos que tenga una edad entre 22 a 24 aos utilizando el BETWEEN BETWEEN.

SELECT NombreA, Edad FROM Alumnos WHERE Edad BETWEEN 22 AND 24

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Operador LIKE p Determina si una cadena de caracteres dada coincide o no con un determinado modelo.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Operador LIKE ( p (Sintaxis) ) Expresin_comparar [ NOT ] LIKE patrn [ ESCAPE carcter escape ] carcter_escape Expresin_comparar Es E cualquier expresin SQL S l i i Server vlida d l ti d lid del tipo de datos cadena de caracteres. patrn Es el modelo que se va a buscar y puede incluir cualquiera de los siguientes caracteres comodn:
Carcter % _ Descripcin Cualquier cadena de cero o ms caracteres. Cualquier carcter individual.

[] Cualquier carcter individual que se encuentre en el intervalo o el conjunto especificado.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Operador LIKE ( p (Sintaxis) ) Expresin_comparar [ NOT ] LIKE patrn [ ESCAPE carcter escape ] carcter_escape carcter_escape Carcter que le precede a un carcter especial para quitarle esa propiedad.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas


LIKE

Liste de la tabla Empleados los registros que el primer apellido sea Ramrez.
SELECT * FROM Empleados WHERE Apellidos LIKE Ramrez %

Liste de la tabla Empleados los registros que el segundo apellido comience con la letra J J.
SELECT * FROM Empleados WHERE Apellidos LIKE '% J%'

Arc: Consulta_1_2_Empleados

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas


LIKE

Qu pasara si existieran apellidos con j minscula, minscula dado a que no cumplen el patrn no seran listado, por tal motivo para listar los dos casos se realizara de la siguiente forma:
SELECT * FROM Empleados p WHERE Apellidos LIKE % [Jj]% Liste de la tabla Empleados los registros q e el seg ndo que segundo apellido no comience con la letra J. SELECT * FROM Empleados WHERE Apellidos LIKE % [^Jj]%
Arc: Consulta_3_Empleados

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas


LIKE

Fernndez o Hernndez ya sea con mayscula o minscula. SELECT * FROM Empleados WHERE Apellidos LIKE _ernndez %

Liste los empleados q contenga un g p que g guin de p piso en el campo apellido SELECT * FROM Empleados WHERE Apellidos LIKE %_%

Arc: Consulta_4_Empleados

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas


LIKE

Este ejemplo listara todos los registros de la tabla Empleados, porque todos cumplen con el patrn, recordemos que el carcter _ tiene un significado q g especial en SQL, para quitrselo debemos utilizar una carcter de escape, de la siguiente forma: SELECT * FROM Empleados WHERE Apellidos LIKE %! % ESCAPE ! %!_% ! SELECT * FROM Empleados WHERE Apellidos LIKE %!% ESCAPE ! Busca Apellidos que contengan el carcter %. Pero no existe, por lo tanto no lista ningno.
Arc: Consulta_4_Empleados

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas


LIKE

Liste los a u os cuyo ape do co e ce ste os alumnos apellido comience con la letra R. SELECT * FROM Alumnos WHERE NombreA LIKE '% [Rr]%' SELECT * FROM Alumnos WHERE NombreA LIKE '[Rr]%'

Arc:Seleccion3

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

Subconsultas S b l
Es una consulta SELECT que devuelve un valor nico y est anidada en una instruccin SELECT, INSERT, UPDATE o DELETE, o dentro de otra subconsulta. Una subconsulta se puede utilizar en cualquier parte en la que se permita una expresin expresin. La consulta SELECT de una subconsulta se incluye siempre entre parntesis. i t t i q y Las instrucciones que incluyen una subconsulta normalmente tienen uno de estos formatos:

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

Subconsultas S b l
WHERE expression [NOT] IN ( b i (subconsulta) lt ) WHERE expression { = | <> | != | > | >= | !> | < | <= | !< } [SOME | ANY | ALL] (subconsulta) WHERE [NOT] EXISTS (subconsulta)

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

Ejemplo j l
Liste los nombres de los alumnos que estn inscritos. q SELECT NC FROM Grupo SELECT DISTINCT NC FROM Grupo

Arc: Consulta_6_Grupos

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

Ejercicio j i i
SELECT NC, NombreA FROM Alumnos WHERE NC IN (SELECT NC FROM Grupos)

Arc: Consulta_7_Alumnos_y_Grupos

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

5. 5 Liste los nombres de los Catedrticos que no imparten clases


SELECT NombreC FROM Catedraticos WHERE ( p ) NCC NOT IN (SELECT NCC FROM Grupos)

Arc: Consulta_8_Catedraticos_y_Grupos

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Utilizar combinaciones cruzadas

Consultas a las Tablas

Una combinacin cruzada que no tenga una clusula p producto cartesiano de las tablas WHERE produce el p involucradas en la combinacin. El tamao del conjunto de resultados es de j nmero de filas de la primera tabla x por el nmero de g filas de la segunda tabla.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Utilizar combinaciones cruzadas


SELECT * FROM Alumnos, Carrera

Consultas a las Tablas

Arc: Consulta_9_Producto_Alumnos_Carrera

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

6. 6 Liste el Nmero de Control Nombre del Alumno y Control, Nombre de Carrera de todos los Alumnos. SELECT NC, NombreA, NombreC FROM Al Alumnos A A, Carreras C WHERE A NoC = C NoC A.NoC C.NoC SELECT NC, NombreA, NombreC FROM Alumnos A INNER JOIN Carreras C ON A.NoC C NoC A NoC = C.NoC
Arc: Consulta_9_Producto_Alumnos_Carrera_2

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula GROUP BY Sintaxis [ GROUP BY grupo [ ,...n ] ] Grupo Es la expresin en la que se realiza el agrupamiento; grupo tambin se conoce como columna de agrupamiento y p g p puede ser una columna o una expresin diferente a una de agregado, que hace referencia a una columna. No se puede utilizar un alias de columna en la lista de seleccin para especificar una columna de agrupamiento.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Ventas

Agrupar vendedores por nmero de vendedor

Factura 1202 1203 1204 1205 1206 1207 1208 1209 1210

NoV 25 33 43 25 25 33 25 45 25

Fecha 10/01/2007 10/01/2007 12/01/2007 10/02/2007 12/02/2007 15/02/2007 07/03/2007 10/03/2007 15/04/2007

Monto 2500 3000 5000 1000 1200 2000 500 4000 1400

SELECT NoV FROM Ventas GROUP BY NoV

Arc: Consulta_5_Emp1eados_1

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Funciones de agregado g g Las funciones de agregado realizan un clculo sobre un conjunto de valores y devuelven un solo valor. Las funciones de agregado se suelen utilizar con la clusula GROUP BY de la instruccin SELECT.
COUNT Devuelve el nmero de elementos de un grupo. AVG Devuelve la media de los valores de un grupo. Los valores nulos se pasan por alto. MAX Devuelve el valor mximo de la expresin. MIN Devuelve el valor mnimo de la expresin expresin. SUM Devuelve la suma de todos los valores, slo puede utilizarse con columnas numricas. Los valores nulos se pasan por alto.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Funciones de agregado g g
De la tabla Ventas, liste por cada vendedor, cuantas ventas realiz, e monto e as ea , el o o total, el monto de la venta mxima y el monto de la venta mnima.
Ventas Factura 1202 1203 1204 1205 1206 1207 1208 1209 1210 NoV 25 33 43 25 25 33 25 45 25 Fecha 10/01/2007 10/01/2007 12/01/2007 10/02/2007 12/02/2007 15/02/2007 07/03/2007 10/03/2007 15/04/2007 Monto 2500 3000 5000 1000 1200 2000 500 4000 1400

SELECT NoV, COUNT(*) AS [No. de ventas], SUM(Monto) AS [Monto Total] Total], MAX(Monto) AS [Monto Mximo], MIN(Monto) AS [Monto Mnimo] FROM Ventas GROUP BY NoV

Arc: Consulta_5_Empleados

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

FIN

7. De cada grupo liste Nmero de grupo, Nombre del Catedrtico, Nombre de la Materia, Nmero de Alumnos, Calificacin Mxima, Calificacin Mnima y Promedio.
SELECT NG, G.NCC, C.NombreC, G.NM, M.NombreM, COUNT(*) AS [No de Alumnos] Alumnos], MAX(Calificacin) AS [CAL.MAX], MIN(Calificacin) AS [CAL. MIN], AVG(Calificacin) AS [PROMEDIO] G(C f ) S O O FROM Grupos G, Catedraticos C, Materias M WHERE G.NCC = C.NCC AND G.NM = M.NM GROUP BY NG, G.NCC, C.Nombrec, G.NM, M.NombreM

Arc: Consulta_11_PromedioAlumnos

1.2.3 De edicin para crear esquemas y consultas de bases de datos

7. De cada grupo liste Nmero de grupo, Nombre del Catedrtico, Nombre de la Materia, Nmero de Alumnos, Calificacin Mxima, Calificacin Mnima yP Promedio. di Otra solucin

Consultas a las Tablas

SELECT NG G.NCC, C.Nombrec, G NM M NombreM NG, G NCC C Nombrec G.NM, M.NombreM, COUNT(*) AS [No de Alumnos], MAX(Calificacion) AS [CAL.MAX], MIN(Calificacion) AS [CAL MIN] MIN(C lifi i ) [CAL. MIN], AVG(Calificacion) AS [PROMEDIO] FROM Grupos G INNER JOIN Catedraticos C ON G.NCC = C.NCC INNER JOIN Materias M ON G.NM = M.NM GROUP BY NG, G.NCC, C.Nombrec, G.NM, M.NombreM

Arc: Consulta_11_PromedioAlumnos_2

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

7. D 7 De cada grupo liste Nmero de grupo, Nombre d li t N d N b del Catedrtico, Nombre de la Materia, Nmero de Alumnos, Calificacin Mxima, Calificacin Mnima y Promedio. p Comparacin
SELECT NG, G.NCC, C.Nombrec, G.NM, M.NombreM, SELECT NG, G.NCC, C.Nombrec, G.NM, M.NombreM, COUNT(*) AS [No de Alumnos], COUNT(*) AS [No de Alumnos], MAX(Calificacin) AS [CAL MAX] [CAL.MAX], MAX(Calificacion) AS [CAL MAX] MAX(C lifi i ) [CAL.MAX], MIN(Calificacin) AS [CAL. MIN], MIN(Calificacion) AS [CAL. MIN], AVG(Calificacin) AS [PROMEDIO] AVG(Calificacion) AS [PROMEDIO] FROM Grupos G, Catedraticos C, Materias M FROM Grupos G INNER JOIN Catedraticos C ON G.NCC = C.NCC WHERE G.NCC = C.NCC AND G.NM = M.NM INNER JOIN Materias M ON G.NM = M.NM GROUP BY NG, G.NCC, C.Nombrec, G.NM, M.NombreM GROUP BY NG, G.NCC, C.Nombrec, G.NM, M.NombreM , , , ,

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

8. De cada grupo liste Nmero de grupo, Nmero g p g p , del Catedrtico, Nmero de Materia y Alumnos acreditados(igual o superior a 70). SELECT NG, NCC, NM, COUNT(*) AS [No de Al mnos Acreditados] Alumnos FROM Grupos WHERE Calificacion >= 70 GROUP BY NG, NCC, NM

Arc: Consulta_12

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusulas HAVING Especifica una condicin de bsqueda de un p q grupo o agregado. Normalmente, HAVING se utiliza con la clusula , GROUP BY. Cuando no se utiliza GROUP BY, HAVING se , comporta como la clusula WHERE.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusulas HAVING (Sintaxis) ( ) [ HAVING < condicin_grupo > ] condicin grupo Especifica l condicin E ifi la di i de bsqueda del grupo o del agregado que se debe cumplir.

NOTA: No se puede utilizar los tipos de datos text, image y ntext en una clusula HAVING.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

De la tabla Ventas, liste por cada vendedor, cuantas ventas realiz, el monto total, el monto de la venta mxima y el monto de la venta mnima, pero solo de aquellos montos totales entre 6000 a 10000.
SELECT NoV, , COUNT(*) AS [No. de ventas], SUM(Monto) AS [Monto Total], MAX(Monto) AS [Monto Mximo] Mximo], MIN(Monto) AS [Monto Mnimo] FROM Ventas GROUP BY NoV HAVING SUM(Monto) BETWEEN 6000 AND 8000

Arc: Consulta_6_Empleados

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas

9. De cada grupo liste Nmero de grupo, Nmero g p g p , del Catedrtico, Nmero de Materia y Promedio, pero solo de aquellos grupos donde el promedio sea mayor a 80. SELECT NG, NCC, NM, , , , AVG(Calificacion) AS [Promedio del Grupo] FROM Grupos GROUP BY NG, NCC, NM HAVING AVG(Calificacion) > 80 G G(C f )

Arc: Consulta_13

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula ORDER BY Especifica el orden del conjunto de resultados. p j La clusula ORDER BY no es vlida en vistas, funciones en lnea, tablas derivadas ni , subconsultas, salvo que se especifique tambin TOP.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula ORDER BY (Sintaxis) ( ) [ ORDER BY { expresin [ ASC | DESC ] } [ , ] ] p ,...n]

Especifica la columna segn la que se ordenar. Se puede especificar una columna de orden como un nombre o alias de columna (que puede estar calificado con el nombre de una tabla o vista), una expresin o un entero no negativo que representa la posicin del nombre, alias o expresin en la lista de seleccin.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula ORDER BY (Sintaxis) ( ) [ ORDER BY { expresin [ ASC | DESC ] } [ , ] ] p ,...n] Se puede especificar varias columnas de orden. La secuencia de columnas de orden en la clusula ORDER BY define la estructura del conjunto ordenado d resultados. d d de lt d Nota: Las columnas de tipo ntext, text o image no se pueden utilizar en una clusula ORDER BY BY.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula ORDER BY (Sintaxis) ( ) [ ORDER BY { expresin [ ASC | DESC ] } [ , ] ] p ,...n]

Indica que los valores de la columna especificada se d b ordenar d manera ascendente, d d el deben d de d t desde l valor ms bajo al ms alto.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula ORDER BY (Sintaxis) ( ) [ ORDER BY { expresin [ ASC | DESC ] } [ , ] ] p ,...n]

Indica que los valores de la columna p especificada se deben ordenar de manera descendente, desde el valor ms alto al valor ms bajo.

Nota: Los valores NULL se tratan como los valores de menor denominacin.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Consultas a las Tablas C l l bl


Clusula ORDER BY (Sintaxis) ( ) SELECT Nov FROM Ventas GROUP BY Nov ORDER BY Nov DESC SELECT Nov FROM Ventas GROUP BY Nov ORDER BY Nov ASC

Arc: Consulta_Order_By

TAREA 3
1.

Liste el nombre de los alumnos de Ingeniera Civil q que estn inscritos en al menos un g p grupo. Liste el nombre, nmero de cuenta, nombre de las materias que cursan cada uno de los alumnos alumnos, ordenados por orden alfabtico. Liste el nmero de alumnos que cursan la misma carrera y de cada carrera quien tiene mayor edad. Liste cdigo y nombre de aquellas materias que no estn siendo cursadas por ningn estudiante. Liste los nombres de los alumnos y nombres de las materias que podran cursar los alumnos de la carrera de Ingeniera Civil.

2.

3.

4.

5.

Tarea 4 Qu est pidiendo el cdigo siguiente?

Select G.NM, M.NombreM, A.NombreA, count(*) as 'Total de alumnos por count( ) Total materia' From Grupos G Materias M Alumnos A G, M, Where G.NM=M.NM AND G.NC=A.NC Group by G.NM, M.NombreM, A.NombreA

Use ControlEscolar Select G.NM, M.NombreM, A.NombreA From Grupos G Materias M Alumnos A G, M, Where G.NM=M.NM AND G.NC=A.NC AND G.Cal>70 Group by G NM G.NM, M.NombreM,G.NM,A.NombreA

Use ControlEscolar Select G.NM, M.NombreM, Count(*) as 'Nmero de alumnos Count( ) Nmero aprobados' from Grupos G, Materias M Where G Cal>70 G.Cal>70 Group by G.NM, M.NombreM

Select distinct G.NC, NombreA From Grupos G, Alumnos A Where G.NC=A.NC G NC=A NC

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Quitar filas d l Q i fil de las tablas bl


DELETE (Sintaxis) ( ) DELETE FROM { < nombre_tabla > } [ ,...n ] [ WHERE { < condicin_bsqueda > } ]
Nombre de la tabla o vista a la que se le borraran las filas.

Condicin para borrar los registros.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Borrar registros

Borrar de la tabla ventas las filas que tienen un monto menor a 1000 pesos. DELETE FROM Ventas WHERE Monto < 1000

Arc: DELETE 1

1.2.3 De edicin para crear esquemas y consultas de bases de datos

10. Borre los alumnos que no estn inscritos en un grupo.


DELETE FROM Alumnos WHERE NC NOT IN (SELECT NC FROM Grupos)

Borrar registros

Arc: DELETE_Alumnos_1

Ejercicio j i i
Borrar aquellas materias que no estn siendo impartidas en ningn grupo.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Cambia d C bi datos de Nombre de la tabla o vista a d una tabla bl


UPDATE (Sintaxis) ( ) q la que se actualizar. UPDATE { < nombre_tabla > } SET { nombre_columna = { expresin | DEFAULT | NULL} [ ,...n ] } [ FROM { < nombre_tabla > } [ ,...n ] ] [ WHERE < condicin_bsqueda > ]

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Cambia d C bi datos de una tabla d bl


UPDATE (Sintaxis) ( ) UPDATE { < nombre_tabla > } SET { nombre_columna = { expresin | DEFAULT | NULL} [ ,...n ] } [ FROM { < nombre_tabla > } [ ,...n ] ] [ WHERE < condicin_bsqueda > ] Especifica la lista de nombres de columnas o variables que se van a actualizar.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Cambia d C bi datos de una tabla d bl


UPDATE (Sintaxis) ( ) UPDATE { < nombre_tabla > } SET { nombre_columna = { expresin | DEFAULT | NULL} [ ,...n ] } [ FROM { < nombre_tabla > } [ ,...n ] ] [ WHERE < condicin_bsqueda > ] Nombre de la columna a actualizar.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Cambia d C bi datos de una tabla d bl


UPDATE (Sintaxis) ( ) UPDATE { < nombre_tabla > } SET { nombre_columna = { expresin | DEFAULT | NULL} [ ,...n ] } [ FROM { < nombre_tabla > } [ ,...n ] ] [ WHERE < condicin_bsqueda > ]

Co d c para borrar os Condicin pa a bo a los registros.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Actualice el domicilio de la alumna Leticia Flores (NC=33) por el domicilio Robles # 502.

Actualizar

UPDATE Alumnos SET Domicilio = 'Roble # 502 502' WHERE NC = 33

Arc: Actualizar_Alumnos_1

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Elimina tablas li i bl
DROP TABLE Elimina una definicin de tabla y todos los datos, ndices, d di desencadenadores, restricciones y d d ti i especificaciones de permisos de la tabla.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Elimina tablas li i bl
DROP TABLE (Sintaxis) ( ) DROP TABLE nombre_tabla

Es el nombre de la tabla que se va a eliminar.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Elimina tablas li i bl
DROP TABLE (Sintaxis) ( )
Observaciones N se puede utilizar DROP TABLE para quitar una t bl a l que No d tili it tabla la se haga referencia con una restriccin FOREIGN KEY. Primero se debe quitar la restriccin FOREIGN KEY o la tabla de referencia. El propietario de una tabla puede quitar la tabla de cualquier base de datos. Cuando se quita la tabla, las reglas o valores predeterminados d l misma pierden sus enlaces y se quitan d t i d de la i i d l it automticamente las restricciones o desencadenadores asociados con ella. Si vuelve a crear una tabla, debe volver a enlazar las reglas y valores predeterminados apropiados, volver a crear los desencadenadores y agregar todas las restricciones necesarias. No puede utilizar la instruccin DROP TABLE sobre las tablas del sistema.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Elimina Tablas

Elimine la tabla Ventas.

DROP TABLE Ventas

Arc: DropTable_Ventas_1

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Modificar tablas difi bl


ALTER TABLE Modifica una definicin de tabla al alterar, agregar o quitar columnas y restricciones, o al d h bilit o it l ti i l deshabilitar habilitar restricciones y desencadenadores.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Modificar tablas
ALTER TABLE
ALTER TABLE nombre_tabla { [ ALTER COLUMN nombre_columna { nuevo_tipo_dato [ ( precisin [ , escala ] ) ] [ NULL | NOT NULL ] | {ADD | DROP } ROWGUIDCOL } ] < restriccin > ::= [ CONSTRAINT nombre_restriccin ] | ADD { [ < definicin_columna > ] | nombre_columna AS expresin } [ ,...n ] | DROP { [ CONSTRAINT ] nombre_restriccin | COLUMN columna } [ ,...n ] } < definicin_columna > ::= { nombre_columna tipo_dato } [ [ DEFAULT expresin_constante ] i t t | [ IDENTITY [ (inicial , incremento ) ] ] ] [restriccin ] [ ...n ] { [ NULL | NOT NULL ] | [ { PRIMARY KEY | UNIQUE } ] | [ [ FOREIGN KEY ] REFERENCES referencia_tabla [ ( referencia_columna ) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] ] | CHECK ( expresin_logica ) }

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Modificar tablas
ALTER TABLE
nombre_tabla Es el nombre de la tabla que se va a modificar. ALTER COLUMN Especifica que la columna dada va a cambiarse o modificarse. La columna alterada: No puede ser una columna con un tipo de datos text, image, ntext o timestamp. N puede ser l columna ROWGUIDCOL d l t bl No d la l de la tabla. No puede ser una columna calculada o utilizarse en una columna calculada. Es una columna duplicada. No puede utilizarse en una restriccin PRIMARY KEY o [FOREIGN KEY] REFERENCES. No puede utilizarse en una restriccin CHECK o UNIQUE, excepto si se permite alterar la longitud de una columna de longitud variable empleada en una restriccin CHECK o UNIQUE. nombre_columna Es el nombre de la columna que se va a alterar, agregar o quitar. nuevo_tipo_dato nuevo tipo dato Es el nuevo tipo de datos de la columna alterada. precisin Es la escala del tipo de datos especificado. NULL | NOT NULL Especifica si la columna puede aceptar valores NULL. [ {ADD | DROP} ROWGUIDCOL ] Especifica que la propiedad ROWGUIDCOL se agrega a la columna indicada o se quita de ella. ADD Especifica que se agregan una o ms definiciones de columna definiciones de columna, columnas calculadas o restricciones de tabla. nombre_columna AS expresin Es una expresin que define el valor de una columna calculada. n Es un marcador de posicin que indica que el elemento anterior se puede repetir n veces. DROP { [ CONSTRAINT ] nombre_restriccin | COLUMN columna } Especifica que nombre_restriccin o columna se ha quitado de la tabla.

1.2.3 De edicin para crear esquemas y consultas de bases de datos

Modificar tablas

Agregue una el campo edad a la tabla Catedrticos g g p

ALTER TABLE Catedraticos ADD Edad DEC (3,0) UPDATE Catedraticos SET Edad = 20 WHERE NCC = 130

Arc: AlterTable_Catedraticos_1

I.2.4. I 2 4 De control, monitoreo control y estadsticas de acceso a bases de datos.

I.2.4. De control, monitoreo y estadsticas de acceso a bases de datos.

Mostrar estadsticas del cliente d i d l li


Se pueden mostrar las estadsticas eligiendo Mostrar estadsticas del cliente del men Consulta o Consulta, seleccionando esta opcin del men contextual que se obtiene presionando el botn derecho dentro del ventana de edicin SQL. Una vez seleccionado deber ejecutar la consulta SQL para que aparezca como una pestaa en la ventan de resultados.

I.2.5. I 2 5 Utileras diversas. di

Al igual que las estadsticas del cliente, se puede Mostrar el plan de de ejecucin seleccionando esta opcin del men Consulta o del men contextual. Una vez seleccionado deber ejecutar la consulta SQL para que aparezca como una pestaa en la ventan de resultados.

Uso d l ayuda de la d

Diagrama i

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