Este documento presenta el temario de un taller sobre bases de datos. El objetivo del taller es que los estudiantes aprendan a utilizar herramientas de software para diseñar y administrar bases de datos. El temario cubre gestores de bases de datos, administración de bases de datos, y tecnologías de conectividad como ODBC, ADO.NET y JDBC.
2. Objetivo general
El estudiante identificará herramientas de software para diseñar y administrar bases de datos, así como las tecnologías de conectividad.
3. Aportación de la asignatura al perfil del egresado
Proporciona conocimientos y habilidades para que utilicen de manera óptima gestores y tecnologías de acceso a base de datos.
4. Temario
1. Gestor de base de datos.
1.1. Características del gestor.
1.2. Herramientas.
1.2.1. De creación de bases de datos.
1.2.2. De administracion de bases de datos.
1.2.3. De edición para crear esquemas y consultas de bases de datos.
1.2.4. De control, monitoreo y estadísticas de acceso a bases de datos.
1.2.5. Utilerias diversas.
1.3 Instalación y configuración del enterno operativo.
5. Temario
2. Administración de bases de datos.
2.1. Creación de bases de datos.
2.1.1. Creación de la estructura de la base de datos.
2.1.2. Creación 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. Creación de vistas de la base de datos (view).
2.1.5. Generalización y especialización.
2.1.6. Agregación.
2.1.7. Entidades recursivas.
2.2. Definición del esquema de integridad.
2.2.1. Validar y verificar integridad de entidad e integridad referencial.
2.2.2. Creación de disparadores (Trigger´s).
2.2.3. Creación de procedimientos almacenados.
2.3. Definición del esquema de seguridad.
2.3.1. Creación de usuarios de la base de datos.
2.3.2. Asignación de privilegios sobre los objetos de información.
6. Temario
2.4. Definición del esquema de recuperación.
2.4.1. Diseño y creación de la bitácora.
2.4.2. Recuperación a partir de la bitácora.
2.4.3. Respaldar bases de datos.
2.1.4. Recuperar bases de datos.
2.5. Diseño y procesamiento de transacciones.
2.5.1. Definición de transacciones en lenguaje huésped.
2.5.2. Ejecución de transacciones planas en el gestor de bases de datos.
2.5.3. Ejecución de transacciones anidadas.
7. Temario
3. Tecnologías de conectividad a base de datos.
3.1. ODBC.
3.1.1. Terminología y conceptos.
3.1.2. Administrador de orígenes de datos ODBC.
3.1.3. Instalación y configuración del driver acorde al gestor de bases de datos.
3.2. ADO.NET
3.2.1. Terminología y conceptos.
3.2.2. Componentes disponibles.
3.2.2.1. Connection.
3.2.2.2. Command.
3.2.2.3. Recordsource.
3.2.2.4. Error.
3.2.3. Prototipo de aplicaciones con conectividad a bases de datos.
3.3. JDBC
3.3.1. Terminología y conceptos.
3.3.2. SQL y JDBC.
3.3.2.1. Jerarquía de clases
java.sql.*.
3.3.2.2. Interface
java.sql.connection.
8. Temario
3.3.2.3. Interface
java.sql.statement
3.3.2.4. Interface
java.sql.resultset
3.3.1.5. Jerarquía de clases
javax.sql.*
3.3.3. Instalación y configuración del driver acorde al gestor de base de datos.
3.3.4. Prototipo de aplicaciones con conectividad a base de datos.
9. Referencias
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. Mc Garw 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. Deitel Harvey M., et.al.
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. Microsoft 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.
10. Bibliografía
10. Nielsen Paul.
Microsoft SQL Server 2000 Bible.
Ed. John Wiley & Sons, 2002.
11. Houlette 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. Ray Ranking Paul Jensen Paul Bertucci.
Microsoft SQL Server 2000 Unleashed, 2/E 2003. Ed. Que/Sams.
14. Steve Holzner.
Microsoft Visual C#.NET 2003 Kick Start 2003. Ed. Que/Sams.
15. Buck Woody.
Essential SQL Server™ 2000: And Administration Handbook 2002.
Ed. Addison Wesley Professional.
16. Pérez, C.
Domine Microsoft SQL Server 2000 Administración y Análisis de Bases
de Datos. Ed. Alfaomega-RAMA.
17. Pérez, C.
ORACLE 9i Administración y Análisis de Bases de Datos. Ed. Alfaomega-RAMA.
18. Melton, Jim y Eisenberg, Andrew.
SQL Y JAVA Guía para SQLJ, JDBC y Tecnologías Relacionadas. Ed. Alfaomega-RAMA.
11. Bibliografía
19. Jeffrey P. McManus Chris Kinsman.
C# Developer's Guide to ASP.NET, XML, and ADO.NET 2002.
Ed. Addison Wesley Professional.
Referencias en Internet
www.bivitec.org.mx
www.javasun.com
13. Reglas de convivencia
• No consumir alimentos en clase.
• Se pasará lista pasados 4 minutos de la hora de inicio.
• No se permite el uso de computadores o dispositivos móviles en clase, a menos que se indique por el instructor.
•Respeto entre maestro-alumno, alumno- alumno.
14. Sistema gestor de base de datos
Los Sistemas de gestión de base de datos son un
tipo de software muy específico, dedicado a servir
de interfaz entre la base de datos, el usuario y
las aplicaciones que la utilizan.
SGBD o
DBMS
(Data base
manager
system)
Usuario Base de datos
Se compone de un:
• lenguaje de definición de datos (Data Definition
Language, DDL por sus siglas en inglés),
•SQL
• de un lenguaje de manipulación de datos y
• de un lenguaje de consulta.
17. Finalidad del DBMS
Abstracción de la información.
Ahorran a los usuarios detalles acerca del almacenamiento físico de los datos.
Independencia.
Capacidad de modificar el esquema (físico o lógico) sin tener que realizar cambios en las aplicaciones que se sirven de ella.
18. Finalidad del DBMS
Redundancia mínima.
Evitar la aparición de información repetida o redundante.
Consistencia.
Vigilar que aquella información que aparece repetida se actualice de forma coherente.
19. Finalidad del DBMS
Seguridad.
Gran valor de los datos.
SGBD garantizar que esta información se encuentra asegurada frente a usuarios malintencionados
SGBD disponen de un complejo sistema de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.
20. Finalidad del DBMS
Integridad.
Adoptar las medidas necesarias para garantizar la validez de los datos almacenados.
Proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados.
Respaldo y recuperación.
Proporcionar una forma eficiente de realizar copias de seguridad de la información almacenada.
Restaurar a partir de estas copias los datos que se hayan podido perder.
21. 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 información, que podría derivar en inconsistencias.
Tiempo de respuesta.
Minimizar el tiempo que el SGBD tarda en darnos la información solicitada y en almacenar los cambios realizados.
22. Finalidad de DBMS
1.Abstracción de la información.
2.Independencia.
3.Redundancia mínima.
4.Consistencia.
5.Seguridad.
6.Integridad.
7.Respaldo y recuperación.
8.Control de la concurrencia.
9.Tiempo de respuesta.
En resumen
24. DBMS a utilizar
SQL Server 2008
Developer Edition o superior
MySQL
SQL (lenguaje estructurado de Consultas o Structured Query Language ). >>>SQL2008<<<
25. Instalación de SQL Server
Instalación de SQL Server.
Instalación de MySQL.
27. Tarea 1
En equipo se investigará acerca de uno de los SGBD listados anteriormente.
Se presentará por equipo las características de cada gestor, el resumen general (donde se incluya información extraída de otras presentaciones) contará como tarea y se subirá a la plataforma Dropbox el día que se especifique.
28. Elementos de la Presentación
Portada
Introducción
Antecedentes del Gestor de Bases de Datos
Características
Entorno
Conclusiones
Referencias o fuentes de información
31. 1.2.2 De administración de base de datos
Administrador de bases de datos (DBA)
Define, maneja y controla las bases de datos,
proporciona asesoría a los desarrolladores, usuarios y ejecutivos que la requieran.
tiene experiencia en DBMS, diseño de bases de datos, Sistemas operativos, comunicación de datos, hardware y programación,
nociones de administración, manejo de personal e incluso un cierto grado de diplomacia.
32. 1.2.2 De administración 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.
33. 1.2.2 De administración de base de datos
Objetivos del DBA
Mantener la Integridad de los Datos.
Mantener la Seguridad de los Datos.
Mantener la Disponibilidad de los Datos.
34. 1.2.3 De edición para crear esquemas y consultas de bases de datos
35. 1.2.3 De edición para crear esquemas y consultas de bases de datos
Componentes de SQL
• Comandos,
• Cláusulas,
• Operadores,
• Funciones.
Se combinan en las instrucciones para crear, actualizar y manipular bases de datos.
36. Comandos SQL (DDL y DML)
1.2.3 De edición para crear esquemas y consultas de bases de datos
• DDL (Data Definition Language ) permite crear y definir nuevas bases de datos, campos e índices.
Comandos DDL
Comando Descripción
CREATE Utilizado para crear nuevas tablas, campos e índices.
DROP Empleado para eliminar tablas e índices.
ALTER Utilizado para modificar las tablas agregando campos o combinando la definición de los campos.
Componentes de SQL
37. Comandos SQL (DDL y DML)
Comandos DML
Comando Descripción
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 table de una table de una base de datos.
Componentes de SQL
1.2.3 De edición para crear esquemas y consultas de bases de datos
• DML (Data Manipulation Language) permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.
38. Cláusulas
1.2.3 De edición para crear esquemas y consultas de bases de datos
• Son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.
Cláusula Descripción
FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros.
WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar.
GROUP BY Utilizada para separar los registros seleccionados en grupos específicos.
HAVING Utilizada para expresar la condición que debe satisfacer cada grupo.
ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico
Componentes de SQL
39. Operadores Lógicos
1.2.3 De edición para crear esquemas y consultas de bases de datos
Operador Uso
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 verdad si alguna de las dos es cierta.
NOT Negación lógica. Devuelve el valor contrario de la expresión.
Componentes de SQL
40. Operadores de comparación
1.2.3 De edición para crear esquemas y consultas de bases de datos
Operador Uso
< Menor que
> Mayor que
<= Menor ó Igual que
>= Mayor ó Igual que
= Igual que
<>, != Diferente
!< No menor que
!> No mayor que
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE Utilizado en la comparación de un modelo.
In Utilizado para especificar registros de una base de datos.
Componentes de SQL
41. Funciones de agrupamiento
1.2.3 De edición para crear esquemas y consultas de bases de datos
Componentes de SQL
•Se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un conjunto de registros.
Función Descripción
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.
42. Tipos de datos
1.2.3 De edición para crear esquemas y consultas de bases de datos
Cada columna, variable local, expresión y parámetro dispone de un tipo de dato.
SQL Server suministra el siguiente conjunto de tipos de datos:
43. Tipos de datos carácter
1.2.3 De edición para crear esquemas y consultas de bases de datos
Tipos de datos
44. Tipos de datos numéricos
1.2.3 De edición para crear esquemas y consultas de bases de datos
Tipos de datos
45. Tipos de datos numéricos
1.2.3 De edición para crear esquemas y consultas de bases de datos
Tipos de datos
46. Tipo de datos fecha/hora
1.2.3 De edición para crear esquemas y consultas de bases de datos
Tipos de datos
47. Otros tipos de datos
1.2.3 De edición para crear esquemas y consultas de bases de datos
Tipos de datos
48. Estructura de las tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Apellidos
Nombre
Empleados
25
50
49. Estructuras de las tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
50. 1.2.3 De edición para crear esquemas y consultas de bases de datos
51. Estructuras de las tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
52. Abrir el Administrador de SQL- Server (SQL Server Management Studio)
Crear Base de Datos Empresa
Crear tabla Empleados
54. Crear tabla
Crea una nueva tabla llamada Empleados con dos campos, uno llamado Nombre con longitud 25 y otro llamado Apellidos con longitud 50.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Apellidos
Nombre
Empleados
25
50
CREATE TABLE dbo.Empleados
( Nombre VARCHAR (25),
Apellidos VARCHAR (50)
)
GO
55. 1.2.3 De edición para crear esquemas y consultas de bases de datos
Crea una nueva tabla llamada Empleados2 con un campo Nombre con longitud 10, otro con llamado Apellidos longitud 50 y uno más llamado Fecha_Nacimiento de tipo Fecha/Hora.
También crea una restricción que no permite valores repetidos para los tres campos.
Crear tabla
CREATE TABLE dbo.Empleados2
(
Nombre VARCHAR (10),
Apellidos VARCHAR (50),
Fecha_Nacimiento DATETIME,
CONSTRAINT valor_unico
UNIQUE ([Nombre], [Apellidos], [Fecha_Nacimiento])
) GO
56. Crear tabla
Crea una tabla llamada Empleados3 con un campo de longitud 20 llamado Nombre, otro llamado Apellidos de longitud 25, otro campo llamado Fecha_Nacimiento de tipo Fecha/Hora y por ultimo un ID de tipo entero el que establece como llave primaria.
1.2.3 De edición para crear esquemas y consultas de bases de datos
CREATE TABLE dbo.Empleado3
( ID INT PRIMARY KEY,
Nombre VARCHAR(20),
Apellidos VARCHAR(25),
Fecha_Nacimiento DATETIME,
CONSTRAINT valor_unico2
UNIQUE ([Nombre], [Apellidos], [Fecha_Nacimiento]
)
57. Añadir registros a las tablas
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.
INSERT INTO [nombre_BaseDeDatos.][ dueño.] nombre_tabla (campo1, campo2, .., campoN) VALUES (valor1, valor2, ..., valorN)
1. Insertar un único Registro
1.2.3 De edición para crear esquemas y consultas de bases de datos
58. Añadir registros a las tablas
Inserte a la tabla Empleados a “Ramón Pérez Jiménez”.
INSERT INTO dbo.Empleados3 (ID, Nombre, Apellidos
,Fecha_Nacimiento)
VALUES (121, 'Ramón', 'Pérez Jiménez‘,
'1990-06-12 00:00:00')
GO
Inserte a la tabla Empleados3 a “Rosa Ramírez García”, con fecha de nacimiento 12 de Julio de 1990.
INSERT INTO Empleados3 (ID, Nombre, Apellidos,
Fecha_Nacimiento)
VALUES (122, 'Rosa', 'Ramírez García', '1990-06-12 00:00:00' )
1.2.3 De edición para crear esquemas y consultas de bases de datos
59. Añadir registros a las tablas
Inserte a la tabla Empleados el trabajador “Alberto Medina Ruiz”, con ID 295 y fecha de nacimiento 25 de Agosto de 1998 a 4:05 pm.
INSERT INTO dbo.Empleados (ID, Nombre, Apellidos,
Fecha_Nacimiento)
VALUES (295, ‘Alberto’, ‘Medina Ruiz’,
‘1998-08-12 16:05:00’ )
GO
1.2.3 De edición para crear esquemas y consultas de bases de datos
62. 1 Crear la Base de Datos ControlEscolar
CREATE TABLE dbo.Carreras (
NoC INT IDENTITY (1, 1) PRIMARY KEY,
NombreC varchar (20),
CONSTRAINT valor_unico
UNIQUE ([NoC], [NombreC])
)
CREATE TABLE dbo.Alumnos (
NC INT PRIMARY KEY,
NombreA VARCHAR(50),
Sexo VARCHAR(1),
Domicilio VARCHAR(50),
Edad TINYINT,
NoC INT
FOREIGN KEY (NoC) REFERENCES Carreras)
Antes de crear la tabla Alumnos debemos de crear la tabla Carrera
1.2.3 De edición para crear esquemas y consultas de bases de datos
63. Añadir registros a las tablas
Inserte los registros de la base de datos Carrera
INSERT INTO dbo.Carreras(NombreC)
VALUES('Ingenieria Civil')
INSERT INTO Carreras
VALUES('Abogado')
INSERT INTO dbo.Carreras(NombreC)
VALUES('Lic. en Admón.')
INSERT INTO
Carreras
VALUES('Contador Publico')
GO
1.2.3 De edición para crear esquemas y consultas de bases de datos
64. INSERT INTO Materias (NM, NombreM)
VALUES(‘M5A’,’Matemáticas I ‘),
(‘D38’,´Derecho Laboral´),
(‘C1C’,’Contabilidad’),
(‘E7H’,’Estadística’)
Select * from Alumnos
Select * from Alumnos
65. 2 Inserte a la tabla Alumnos las dos primeras tuplas
INSERT INTO dbo.Alumnos
VALUES(76, 'Jose Martinez', 'M', 'Fresno # 503',
22, 1)
INSERT INTO dbo.Alumnos
VALUES(95, 'Ramon Ramos', 'M', 'Valle # 301',
23, 1)
INSERT INTO dbo.Alumnos
VALUES( , '', '', '', ,) ,
( , '', '', '', ,), …
( , '', '', '', ,)
1.2.3 De edición para crear esquemas y consultas de bases de datos
66. Añadir registros a las tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
2. la segunda es Insertar en una tabla los registros contenidos en otra tabla.
INSERT INTO [nombre_BaseDeDatos.][ dueño.] nombre_tabla
(campo1, campo2, .., campoN)
SELECT Campo1, Campo2, ..., CampoN
FROM TablaOrigen
Si Tabla y TablaOrigen poseen la misma estructura podemos simplificar la sintaxis a:
INSERT INTO [nombre_BaseDeDatos.][ dueño.] Alumnos2
SELECT * FROM Alumnos
67. Inserta registros en otra tabla que se crea automáticamente
SELECT NoC, NombreC
INTO Carrera2
FROM Carreras
ORDER BY NombreC
68. Práctica 1 (Tarea 2)
Crear en MySQL la Base de Datos Control Escolar, de acuerdo a como se especifica en el modelo relacional. Además insertar la información que se específica en las tablas.
69. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT selección
[ INTO nueva_tabla ]
FROM tabla_fuente
[ WHERE condición ]
[ GROUP BY grupo ]
[ HAVING condición_grupo ]
[ ORDER BY expresión
[ ASC | DESC ] ]
La sintaxis de una consulta de selección es la siguiente:
70. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT selección
[ INTO nueva_tabla ]
FROM tabla_fuente
[ WHERE condición ]
[ GROUP BY grupo ]
[ HAVING condición_grupo ]
[ ORDER BY expresión
[ ASC | DESC ] ]
Especifica las columnas que va a devolver la consulta.
71. Consultas a las Tablas
SELECT selección
[ INTO nueva_tabla ]
FROM tabla_fuente
[ WHERE condición ]
[ GROUP BY grupo ]
[ HAVING condición_grupo ]
[ ORDER BY expresión
[ ASC | DESC ] ]
Crea una nueva tabla e inserta en ella las filas resultantes de la consulta.
1.2.3 De edición para crear esquemas y consultas de bases de datos
72. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT selección
[ INTO nueva_tabla ]
FROM tabla_fuente
[ WHERE condición ]
[ GROUP BY grupo ]
[ HAVING condición_grupo ]
[ ORDER BY expresión
[ ASC | DESC ] ]
Especifica las tablas de las que se van a obtener filas. La cláusula FROM es necesaria excepto cuando la lista de selección sólo contiene constantes, variables y expresiones aritméticas (no nombres de columna).
73. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT selección
[ INTO nueva_tabla ]
FROM tabla_fuente
[ WHERE condición ]
[ GROUP BY grupo ]
[ HAVING condición_grupo ]
[ ORDER BY expresión
[ ASC | DESC ] ]
Especifica una condición de búsqueda para restringir las filas que se van a devolver.
74. Consultas a las Tablas
SELECT selección
[ INTO nueva_tabla ]
FROM tabla_fuente
[ WHERE condición ]
[ GROUP BY grupo ]
[ HAVING condición_grupo ]
[ ORDER BY expresión
[ 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 cláusula SELECT selección, calcula el valor de resumen de cada grupo.
75. Consultas a las Tablas
SELECT selección
[ INTO nueva_tabla ]
FROM tabla_fuente
[ WHERE condición ]
[ GROUP BY grupo ]
[ HAVING condición_grupo ]
[ ORDER BY expresión
[ ASC | DESC ] ]
Especifica una condición de búsqueda de un grupo o agregado. Normalmente, HAVING se utiliza con la cláusula GROUP BY. Cuando no se utiliza GROUP BY, HAVING se comporta como la cláusula WHERE.
76. Consultas a las Tablas
SELECT selección
[ INTO nueva_tabla ]
FROM tabla_fuente
[ WHERE condición ]
[ GROUP BY grupo ]
[ HAVING condición_grupo ]
[ ORDER BY expresión
[ ASC | DESC ] ]
Especifica el orden del conjunto de resultados.
77. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT [ ALL | DISTINCT ]
[ TOP n [PERCENT] ]
< Selección >
< Selección > ::=
{ *
| { nombre_tabla | nombre_vista | alias }.*
| { nombre_columna | expresión }
[ [ AS ] alias_columna ]
| alias_columna
Cláusula SELECT y sus Argumentos
78. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT [ ALL | DISTINCT ]
[ TOP n [PERCENT] ]
< Selección >
< Selección > ::=
{ *
| { nombre_tabla | nombre_vista | alias }.*
| { nombre_columna | expresión }
[ [ AS ] alias_columna ]
| alias_columna
Específica que pueden aparecer filas duplicadas en el conjunto de resultados. ALL es el valor predeterminado.
Cláusula SELECT
79. Consultas a las Tablas
SELECT [ ALL | DISTINCT ]
[ TOP n [PERCENT] ]
< Selección >
< Selección > ::=
{ *
| { nombre_tabla | nombre_vista | alias }.*
| { nombre_columna | expresión }
[ [ AS ] alias_columna ]
| alias_columna
Específica que sólo 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 edición para crear esquemas y consultas de bases de datos
Cláusula SELECT
80. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT [ ALL | DISTINCT ]
[ TOP n [PERCENT] ]
< Selección >
< Selección > ::=
{ *
| { nombre_tabla | nombre_vista | alias }.*
| { nombre_columna | expresión }
[ [ AS ] alias_columna ]
| alias_columna
Especifica que sólo se van a utilizar las primeras n filas del conjunto de resultados de la consulta; n es un valor entero entre 0 y 4294967295. Si también se especifica PERCENT, sólo se va a utilizar el primer n por ciento de filas del conjunto de resultados. Cuando se especifica con PERCENT, n debe ser un entero entre 0 y 100.
.
Cláusula SELECT
81. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT [ ALL | DISTINCT ]
[ TOP n [PERCENT] ]
< Selección >
< Selección > ::=
{ *
| { nombre_tabla | nombre_vista | alias }.*
| { nombre_columna | expresión }
[ [ AS ] alias_columna ]
| alias_columna
Cláusula SELECT
Son las columnas que se van a seleccionar para el conjunto de resultados. La lista de selección es una serie de expresiones separadas por comas.
.
82. Consultas a las Tablas
SELECT [ ALL | DISTINCT ]
[ TOP n [PERCENT] ]
< Selección >
< Selección > ::=
{ *
| { nombre_tabla | nombre_vista | alias }.*
| { nombre_columna | expresión }
[ [ AS ] alias_columna ]
| alias_columna
Cláusula SELECT
1.2.3 De edición para crear esquemas y consultas de bases de datos
Especifica que se deben devolver todas las columnas de todas las tablas y vistas de la cláusula FROM. Las columnas se devuelven por tabla o vista, tal como se especifique en la cláusula FROM, en el orden en que se encuentran en la tabla o vista.
83. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT [ ALL | DISTINCT ]
[ TOP n [PERCENT] ]
< Selección >
< Selección > ::=
{ *
| { nombre_tabla | nombre_vista | alias }.*
| { nombre_columna | expresión }
[ [ AS ] alias_columna ]
| alias_columna
Cláusula SELECT
Limita el alcance de * a la tabla o vista especificada.
84. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT [ ALL | DISTINCT ]
[ TOP n [PERCENT] ]
< Selección >
< Selección > ::=
{ *
| { nombre_tabla | nombre_vista | alias }.*
| { nombre_columna | expresión }
[ [ AS ] alias_columna ]
| alias_columna
Cláusula SELECT
Es el nombre de una columna que se va a devolver.
85. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT [ ALL | DISTINCT ]
[ TOP n [PERCENT] ]
< Selección >
< Selección > ::=
{ *
| { nombre_tabla | nombre_vista | alias }.*
| { nombre_columna | expresión }
[ [ AS ] alias_columna ]
| alias_columna
Cláusula SELECT
Es un nombre de columna, constante, función, o una combinación de nombres de columnas, constantes y funciones conectados mediante operadores, o una subconsulta.
86. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT [ ALL | DISTINCT ]
[ TOP n [PERCENT] ]
< Selección >
< Selección > ::=
{ *
| { nombre_tabla | nombre_vista | alias }.*
| { nombre_columna | expresión }
[ [ AS ] alias_columna ]
| alias_columna
Cláusula SELECT
Es un nombre alternativo para reemplazar el nombre de la columna en el conjunto de resultados de la consulta.
87. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Especifica las tablas de las que se van a obtener filas. La cláusula FROM es necesaria excepto cuando la lista de selección sólo contiene constantes, variables y expresiones aritméticas (no nombres de columna).
Cláusula FROM
88. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Cláusula FROM (Sintaxis)
[ FROM { < tabla_fuente > } [ ,...n ] ]
< tabla_fuente > ::=
tabla_fuente [ [ AS ] alias ]
| nombre_vista [ [ AS ] alias ]
| < tabla_fuente > JOIN < tabla_fuente2> ON < búsqueda2 >
Especifica el nombre de una tabla y un alias opcional.
89. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Cláusula FROM (Sintaxis)
[ FROM { < tabla_fuente > } [ ,...n ] ]
< tabla_fuente > ::=
tabla_fuente [ [ AS ] alias ]
| nombre_vista [ [ AS ] alias ]
| < tabla_fuente > JOIN < tabla_fuente2> ON < búsqueda2 >
Especifica el nombre de una vista y un alias opcional.
90. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Cláusula FROM (Sintaxis)
[ FROM { < tabla_fuente > } [ ,...n ] ]
< tabla_fuente > ::=
tabla_fuente [ [ AS ] alias ]
| nombre_vista [ [ AS ] alias ]
| < tabla_fuente > JOIN < tabla_fuente2> ON < búsqueda2 >
Indica que las tablas o vistas especificadas deben combinarse.
91. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Cláusula FROM (Sintaxis)
[ FROM { < tabla_fuente > } [ ,...n ] ]
< tabla_fuente > ::=
tabla_fuente [ [ AS ] alias ]
| nombre_vista [ [ AS ] alias ]
| < tabla_fuente > JOIN < tabla_fuente2> ON < búsqueda2 >
Nombre de la tabla de unión.
92. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Cláusula FROM (Sintaxis)
[ FROM { < tabla_fuente > } [ ,...n ] ]
< tabla_fuente > ::=
tabla_fuente [ [ AS ] alias ]
| nombre_vista [ [ AS ] alias ]
| < tabla_fuente > JOIN < tabla_fuente2> ON < búsqueda2 >
Especifica la condición en la que se basa la combinación. La condición puede especificar cualquier predicado, aunque se suelen utilizar columnas y operadores de comparación.
93. 3. Liste Número de Control y Nombres de los Alumnos
Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT NC, NombreA
FROM Alumnos
SELECT NC AS 'No. de control', NombreA as 'Nombre del Alumno'
FROM Alumnos
94. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Especifica una condición de búsqueda para restringir las filas que se van a devolver.
Cláusula WHERE
95. Consultas a las Tablas
[ WHERE < condición> | < unos_otros > ]
< izq_der > ::=
nombre_columna { * = | = * } nombre_columna
1.2.3 De edición para crear esquemas y consultas de bases de datos
Cláusula WHERE (Sintaxis)
Limita las filas devueltas en el conjunto de resultados mediante el uso de predicados. No hay límite en el número de predicados que se pueden incluir en una condición de búsqueda.
96. Consultas a las Tablas
[ WHERE < condición> | < unos_otros > ]
< izq_der > ::=
nombre_columna { * = | = * } nombre_columna
1.2.3 De edición para crear esquemas y consultas de bases de datos
Cláusula WHERE (Sintaxis)
Se utiliza el operador *= para especificar una combinación externa izquierda y el operador =* para especificar una combinación externa derecha.
Ejemplo: especifica una combinación externa izquierda en que las filas de Tab1 que no cumplen la condición especificada se incluyen en el conjunto de resultados:
SELECT Tab1.name, Tab2.id
FROM Tab1, Tab2
WHERE Tab1.id *=Tab2.id
97. 4. Liste los Nombres de los Alumnos que tenga una edad entre 22 a 24 años.
Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
SELECT NombreA , Edad
FROM Alumnos
WHERE Edad >= 22 AND Edad <= 24
98. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Para indicar que deseamos recuperar los registros según el intervalo de valores de un campo emplearemos el operador BETWEEN.
Rango de registros
99. Consultas a las Tablas
Campo [ NOT ] BETWEEN expresión_inicio AND expresión_fin
Campo Se trata de la expresión que se va a probar en el intervalo definido mediante expresión_inicio y expresión_fin.
El argumento Campo debe ser del mismo tipo de datos que los argumentos expresión_inicio y expresión_fin.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Rango de registros BETWEEN (Sintaxis)
NOT Específica que se niega el resultado del predicado. expresión_inicio Valor inicial.
expresión_fin Valor final.
100. Consultas a las Tablas
Ejemplos:
SELECT * FROM Alumnos WHERE Edad Between 22 And 24
SELECT * FROM Alumnos WHERE Edad NOT Between 22 And 24
1.2.3 De edición para crear esquemas y consultas de bases de datos
Rango de registros BETWEEN (Sintaxis)
101. Listaremos nombres de los Alumnos que tenga una edad entre 22 a 24 años utilizando el BETWEEN.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
SELECT NombreA, Edad FROM Alumnos WHERE Edad BETWEEN 22 AND 24
102. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Determina si una cadena de caracteres dada coincide o no con un determinado modelo.
Operador LIKE
103. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Operador LIKE (Sintaxis)
Expresión_comparar [ NOT ] LIKE patrón [ ESCAPE carácter_escape ]
Expresión_comparar
Es cualquier expresión SQL Server válida del tipo de datos cadena de caracteres.
patrón Es el modelo que se va a buscar y puede incluir cualquiera de los siguientes caracteres comodín:
Carácter Descripción
% Cualquier cadena de cero o más caracteres.
_ Cualquier carácter individual.
[ ] Cualquier carácter individual que se encuentre en el intervalo o el conjunto especificado.
[ ^ ] Cualquier carácter individual que no se encuentre en el intervalo
104.
105. Consultas a las Tablas
carácter_escape Carácter que le precede a un carácter especial para quitarle esa propiedad.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Operador LIKE (Sintaxis)
Expresión_comparar [ NOT ] LIKE patrón [ ESCAPE carácter_escape ]
106. Liste de la tabla Empleados3 los registros que el primer apellido sea Ramírez.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Liste de la tabla Empleados3 los registros que el segundo apellido comience con la letra J.
SELECT * FROM Alumnos WHERE NombreA LIKE ‘% Jimenez%’
SELECT * FROM Empleados
WHERE Apellidos LIKE '% J%'
LIKE
Arc: Consulta_1_2_Empleados
107. 1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
LIKE
Qué pasaría si existieran apellidos con j minúscula, dado a que no cumplen el patrón no serían listado, por tal motivo para listar los dos casos se realizaría de la siguiente forma:
Arc: Consulta_3_Empleados
SELECT * FROM Empleados
WHERE Apellidos LIKE ‘% [Jj]%’
SELECT * FROM Empleados
WHERE Apellidos LIKE ‘% [^Jj]%’
Liste de la tabla Empleados los registros que el segundo apellido no comience con la letra J.
108. Fernández o Hernández ya sea con mayúscula o minúscula.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
LIKE
Liste los empleados que contenga un guión de piso en el campo apellido
SELECT * FROM Empleados
WHERE Apellidos LIKE ‘_ernández %’
SELECT * FROM Empleados
WHERE Apellidos LIKE ‘%_%’
Arc: Consulta_4_Empleados
109. 1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
LIKE
Este ejemplo listaría todos los registros de la tabla Empleados, porque todos cumplen con el patrón, recordemos que el carácter ‘_’ tiene un significado especial en SQL, para quitárselo debemos utilizar una carácter de escape, de la siguiente forma:
Arc: Consulta_4_Empleados
SELECT * FROM Empleados
WHERE Apellidos LIKE ‘%!_%’ ESCAPE ´!´
SELECT * FROM Empleados
WHERE Apellidos LIKE ‘%!%’ ESCAPE ´!´
Busca Apellidos que contengan el carácter %. Pero no existe, por lo tanto no lista ningúno.
110. 1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
LIKE
Liste los alumnos cuyo apellido comience con la letra R.
Arc:Seleccion3
SELECT * FROM Alumnos
WHERE NombreA LIKE '% [Rr]%'
SELECT * FROM Alumnos
WHERE NombreA LIKE '[Rr]%'
111. Ejercicios
Liste el nombre de todos aquellos alumnos que están en la carrera de Ingeniería Civil.
Liste el nombre de todos aquellos alumnos que son mujeres.
Liste el nombre de todos aquellos alumnos cuyo apellino inicie con R o r.
112. Subconsultas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Es una consulta SELECT que devuelve un valor único y está anidada en una instrucción SELECT, INSERT, UPDATE o DELETE, o dentro de otra subconsulta.
Una subconsulta se puede utilizar en cualquier parte en la que se permita una expresión.
La consulta SELECT de una subconsulta se incluye siempre entre paréntesis.
Las instrucciones que incluyen una subconsulta normalmente tienen uno de estos formatos:
113. Subconsultas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
• WHERE expression [NOT] IN (subconsulta)
• WHERE expression { = | <> | != | > | >= | !> | < | <= | !< }
[SOME | ANY | ALL] (subconsulta)
• WHERE [NOT] EXISTS (subconsulta)
114. Ejercicio
SELECT NC, NombreA FROM Alumnos WHERE NC IN (SELECT NC FROM Grupos)
Arc: Consulta_7_Alumnos_y_Grupos
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Liste los nombres de los alumnos que están inscritos(en al menos un grupo).
115. 5. Liste los nombres de los Catedráticos que no imparten clases
SELECT NombreC FROM Catedraticos WHERE NCC NOT IN (SELECT NCC FROM Grupos)
Arc: Consulta_8_Catedraticos_y_Grupos
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
116. Utilizar combinaciones cruzadas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Una combinación cruzada que no tenga una cláusula WHERE produce el producto cartesiano de las tablas involucradas en la combinación.
El tamaño del conjunto de resultados es de
número de filas de la primera tabla (N) x por el número de filas de la segunda tabla (M) .
N x M
117. Utilizar combinaciones cruzadas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
SELECT * FROM Alumnos, Carrera
Arc: Consulta_9_Producto_Alumnos_Carrera
118. 1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
6. Liste el Número de Control, Nombre del Alumno y Nombre de Carrera de todos los Alumnos.
SELECT NC, NombreA, NombreC
FROM Alumnos A, Carreras C
WHERE A.NoC = C.NoC
SELECT NC, NombreA, NombreC
FROM Alumnos A
INNER JOIN Carreras C ON A.NoC = C.NoC
Arc: Consulta_9_Producto_Alumnos_Carrera_2
119. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Cláusula GROUP BY
Sintaxis
[ GROUP BY grupo [ ,...n ] ]
Grupo Es la expresión en la que se realiza el agrupamiento; grupo también se conoce como columna de agrupamiento y puede ser una columna o una expresión diferente a una de agregado, que hace referencia a una columna.
No se puede utilizar un alias de columna en la lista de selección para especificar una columna de agrupamiento.
120. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Agrupar alumnos por número de carrera
Arc: Consulta_5_Emp1eados_1
SELECT NoC
FROM Alumnos
GROUP BY NoC
SELECT NoC,NombreA
FROM Alumnos GROUP BY NoC,NombreA
121. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Funciones de agregado
Las funciones de agregado realizan un cálculo sobre un conjunto de valores y devuelven un solo valor.
Las funciones de agregado se suelen utilizar con la cláusula GROUP BY de la instrucción SELECT.
COUNT Devuelve el número 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 máximo de la expresión.
MIN Devuelve el valor mínimo de la expresión.
SUM Devuelve la suma de todos los valores, sólo puede utilizarse con columnas numéricas. Los valores nulos se pasan por alto.
122. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Funciones de agregado
Ventas Factura NoV Fecha Monto
1202 25 10/01/2007 2500
1203 33 10/01/2007 3000
1204 43 12/01/2007 5000
1205 25 10/02/2007 1000
1206 25 12/02/2007 1200
1207 33 15/02/2007 2000
1208 25 07/03/2007 500
1209 45 10/03/2007 4000
1210 25 15/04/2007 1400
De la tabla Ventas, liste por
cada vendedor, cuantas
ventas realizó, el monto
total, el monto de la venta
máxima y el monto de la
venta mínima.
Arc: Consulta_5_Empleados
SELECT NoV,
COUNT(*) AS [No. de ventas],
SUM(Monto) AS [Monto Total],
MAX(Monto) AS [Monto Máximo],
MIN(Monto) AS [Monto Mínimo]
FROM Ventas GROUP BY NoV
123. 7. De cada grupo liste Número de grupo, Nombre del Catedrático, Nombre de la Materia, Número de Alumnos, Calificación Máxima, Calificación Mínima y Promedio.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Arc: Consulta_11_PromedioAlumnos
SELECT NG, G.NCC, C.NombreC, G.NM, M.NombreM,
COUNT(*) AS [No de Alumnos],
MAX(Calificación) AS [CAL.MAX],
MIN(Calificación) AS [CAL. MIN],
AVG(Calificación) AS [PROMEDIO]
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
FIN
124. 7. De cada grupo liste Número de grupo, Nombre del Catedrático, Nombre de la Materia, Número de Alumnos, Calificación Máxima, Calificación Mínima y Promedio.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Otra solución
SELECT NG, G.NCC, C.Nombrec, G.NM, M.NombreM,
COUNT(*) AS [No de Alumnos],
MAX(Calificacion) AS [CAL.MAX],
MIN(Calificacion) AS [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
125. 7. De cada grupo liste Número de grupo, Nombre del Catedrático, Nombre de la Materia, Número de Alumnos, Calificación Máxima, Calificación Mínima y Promedio.
SELECT NG, G.NCC, C.Nombrec, G.NM, M.NombreM,
COUNT(*) AS [No de Alumnos],
MAX(Calificación) AS [CAL.MAX],
MIN(Calificación) AS [CAL. MIN],
AVG(Calificación) AS [PROMEDIO]
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
SELECT NG, G.NCC, C.Nombrec, G.NM, M.NombreM,
COUNT(*) AS [No de Alumnos],
MAX(Calificacion) AS [CAL.MAX],
MIN(Calificacion) AS [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
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Comparación
126.
127. 8. De cada grupo liste Número de grupo, Número del Catedrático, Número de Materia y Alumnos acreditados(igual o superior a 70).
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Arc: Consulta_12
SELECT NG, NCC, NM,
COUNT(*) AS [No de Alumnos Acreditados]
FROM Grupos
WHERE Calificacion >= 70
GROUP BY NG, NCC, NM
128. Funciones de agregado solo con SELECT
SELECT COUNT(*) AS [Número de Alumnos ]FROM Alumnos
SELECT MIN(NC) FROM Alumnos
SELECT MAX(NC) FROM Alumnos
SELECT AVG(NC) FROM Alumnos
SELECT SUM(NC) FROM Alumnos
129. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Especifica una condición de búsqueda de un grupo o agregado.
Normalmente, HAVING se utiliza con la cláusula GROUP BY.
Cuando no se utiliza GROUP BY, HAVING se comporta como la cláusula WHERE.
Cláusulas HAVING
130. Consultas a las Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
Cláusulas HAVING (Sintaxis)
[ HAVING < condición_grupo > ]
Especifica la condición de búsqueda del grupo o del agregado que se debe cumplir.
NOTA: No se puede utilizar los tipos de datos text, image y ntext en una cláusula HAVING.
131. De la tabla Ventas, liste por cada vendedor, cuantas ventas realizó, el monto total, el monto de la venta máxima y el monto de la venta mínima, pero solo de aquellos montos totales entre 6000 a 10000.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Arc: Consulta_6_Empleados
SELECT NoV,
COUNT(*) AS [No. de ventas],
SUM(Monto) AS [Monto Total],
MAX(Monto) AS [Monto Máximo],
MIN(Monto) AS [Monto Mínimo]
FROM Ventas GROUP BY NoV HAVING SUM(Monto) BETWEEN 6000 AND 8000
Ventas Factura NoV Fecha Monto
1202 25 10/01/2007 2500
1203 33 10/01/2007 3000
1204 43 12/01/2007 5000
1205 25 10/02/2007 1000
1206 25 12/02/2007 1200
1207 33 15/02/2007 2000
1208 25 07/03/2007 500
1209 45 10/03/2007 4000
1210 25 15/04/2007 1400
132. 9. De cada grupo liste Número de grupo, Número del Catedrático, Número de Materia y Promedio, pero solo de aquellos grupos donde el promedio sea mayor a 80.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Consultas a las Tablas
Arc: Consulta_13
SELECT NG, NCC, NM,
AVG(Calificacion) AS [Promedio del Grupo]
FROM Grupos GROUP BY NG, NCC, NM
HAVING AVG(Calificacion) > 80
133. 9. De cada grupo liste Número de grupo, Número del Catedrático, Número de Materia y Promedio, pero solo de aquellos grupos donde el promedio sea mayor a 80.
SELECT NG, NCC, G.NM, NombreM
AVG(Calificacion) AS [Promedio del Grupo]
FROM Grupos G, Materias M
WHERE G.NM=M.NM
GROUP BY NG, NCC, G.NM, NombreM
HAVING AVG(Calificacion) > 80
134. Consultas a las Tablas
Especifica el orden del conjunto de resultados.
La cláusula ORDER BY no es válida en vistas, funciones en línea, tablas derivadas ni subconsultas, salvo que se especifique también TOP.
Cláusula ORDER BY
1.2.3 De edición para crear esquemas y consultas de bases de datos
135. Consultas a las Tablas
[ ORDER BY { expresión [ ASC | DESC ] } [ ,...n] ]
Cláusula ORDER BY (Sintaxis)
1.2.3 De edición para crear esquemas y consultas de bases de datos
Especifica la columna según 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 expresión o un entero no negativo que representa la posición del nombre, alias o expresión en la lista de selección.
136. Consultas a las Tablas
[ ORDER BY { expresión [ ASC | DESC ] } [ ,...n] ]
Cláusula ORDER BY (Sintaxis)
1.2.3 De edición para crear esquemas y consultas de bases de datos
Se puede especificar varias columnas de orden. La secuencia de columnas de orden en la cláusula ORDER BY define la estructura del conjunto ordenado de resultados.
Nota: Las columnas de tipo ntext, text o image no se pueden utilizar en una cláusula ORDER BY.
137. Consultas a las Tablas
[ ORDER BY { expresión [ ASC | DESC ] } [ ,...n] ]
Cláusula ORDER BY (Sintaxis)
1.2.3 De edición para crear esquemas y consultas de bases de datos
Indica que los valores de la columna especificada se deben ordenar de manera ascendente, desde el valor más bajo al más alto.
138. Consultas a las Tablas
[ ORDER BY { expresión [ ASC | DESC ] } [ ,...n] ]
Cláusula ORDER BY (Sintaxis)
1.2.3 De edición para crear esquemas y consultas de bases de datos
Indica que los valores de la columna especificada se deben ordenar de manera descendente, desde el valor más alto al valor más bajo.
Nota: Los valores NULL se tratan como los valores de menor denominación.
139. Consultas a las Tablas
Cláusula ORDER BY (Sintaxis)
1.2.3 De edición para crear esquemas y consultas de bases de datos
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
140. Quitar filas de las tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
DELETE (Sintaxis)
DELETE
FROM { < nombre_tabla > } [ ,...n ]
[ WHERE { < condición_búsqueda > } ]
Nombre de la tabla o vista a la que se le borraran las filas.
Condición para borrar los registros.
141. Borrar de la tabla ventas las filas que tienen un monto menor a 1000 pesos.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Borrar registros
Arc: DELETE 1
DELETE FROM Ventas WHERE Monto < 1000
142. 10. Borre los alumnos que no están inscritos en ningún grupo.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Borrar registros
Arc: DELETE_Alumnos_1
DELETE FROM Alumnos WHERE NC
NOT IN (SELECT NC FROM Grupos)
144. Cambia datos de una tabla
UPDATE (Sintaxis)
UPDATE { < nombre_tabla > } SET { nombre_columna = { expresión | DEFAULT | NULL} [ ,...n ] } [ FROM { < nombre_tabla > } [ ,...n ] ] [ WHERE < condición_búsqueda > ]
Nombre de la tabla o vista a la que se actualizar.
1.2.3 De edición para crear esquemas y consultas de bases de datos
145. Cambia datos de una tabla
UPDATE (Sintaxis)
UPDATE { < nombre_tabla > } SET { nombre_columna = { expresión | DEFAULT | NULL} [ ,...n ] } [ FROM { < nombre_tabla > } [ ,...n ] ] [ WHERE < condición_búsqueda > ]
Especifica la lista de nombres de columnas o variables que se van a actualizar.
1.2.3 De edición para crear esquemas y consultas de bases de datos
146. Cambia datos de una tabla
UPDATE (Sintaxis)
UPDATE { < nombre_tabla > } SET { nombre_columna = { expresión | DEFAULT | NULL} [ ,...n ] } [ FROM { < nombre_tabla > } [ ,...n ] ] [ WHERE < condición_búsqueda > ]
Nombre de la columna a actualizar.
1.2.3 De edición para crear esquemas y consultas de bases de datos
147. Cambia datos de una tabla
UPDATE (Sintaxis)
UPDATE { < nombre_tabla > } SET { nombre_columna = { expresión | DEFAULT | NULL} [ ,...n ] } [ FROM { < nombre_tabla > } [ ,...n ] ] [ WHERE < condición_búsqueda > ]
Condición para borrar los registros.
1.2.3 De edición para crear esquemas y consultas de bases de datos
148. Actualice el domicilio de la alumna Leticia Flores (NC=33) por el domicilio Robles # 502.
1.2.3 De edición para crear esquemas y consultas de bases de datos
Actualizar
Arc: Actualizar_Alumnos_1
UPDATE Alumnos SET Domicilio = 'Roble # 502' WHERE NC = 33
149. Elimina tablas
DROP TABLE
1.2.3 De edición para crear esquemas y consultas de bases de datos
Elimina una definición de tabla y todos los datos, índices, desencadenadores, restricciones y especificaciones de permisos de la tabla.
150. Elimina tablas
DROP TABLE (Sintaxis)
1.2.3 De edición para crear esquemas y consultas de bases de datos
DROP TABLE nombre_tabla
Es el nombre de la tabla que se va a eliminar.
151. Observaciones
No se puede utilizar DROP TABLE para quitar una tabla a la que se haga referencia con una restricción FOREIGN KEY. Primero se debe quitar la restricción 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 de la misma pierden sus enlaces y se quitan automáticamente 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 instrucción DROP TABLE sobre las tablas del sistema.
Elimina tablas
DROP TABLE (Sintaxis)
1.2.3 De edición para crear esquemas y consultas de bases de datos
152. Elimine la tabla Ventas.
Elimina Tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
DROP TABLE Ventas
DROP DATABASE ControlEscolar
Arc: DropTable_Ventas_1
153. Modificar tablas
ALTER TABLE
1.2.3 De edición para crear esquemas y consultas de bases de datos
Modifica una definición de tabla al alterar, agregar o quitar columnas y restricciones, o al deshabilitar o habilitar restricciones y desencadenadores.
154. Agregue una el campo edad a la tabla Catedráticos
Modificar tablas
1.2.3 De edición para crear esquemas y consultas de bases de datos
ALTER TABLE Catedraticos ADD Edad INT
Arc: AlterTable_Catedraticos_1
UPDATE Catedraticos SET Edad = 20
ALTER TABLE Catedraticos DROP COLUMN Edad
155. TAREA 3
1.Liste el nombre de los alumnos de Ingeniería Civil que están inscritos en al menos un grupo.
2.Liste el nombre, número de cuenta, nombre de las materias que cursan cada uno de los alumnos, ordenados por orden alfabético.
3.Liste el número de alumnos que cursan la misma carrera y de cada carrera quien tiene mayor edad.
4.Liste código y nombre de aquellas materias que no están siendo cursadas por ningún estudiante.
5.Liste los nombres de los alumnos y nombres de las materias que podrían cursar los alumnos de la carrera de Ingeniería Civil.
156. Tarea 4 ¿Qué está pidiendo el código siguiente?
Select G.NM, M.NombreM, A.NombreA,
count(*) as 'Total de alumnos por materia'
From Grupos G, Materias M, Alumnos A
Where G.NM=M.NM AND G.NC=A.NC
Group by G.NM, M.NombreM, A.NombreA
157. Use ControlEscolar
Select G.NM, M.NombreM, A.NombreA
From Grupos G, Materias M, Alumnos A
Where G.NM=M.NM AND G.NC=A.NC AND G.Cal>70
Group by G.NM, M.NombreM,G.NM,A.NombreA
158. Use ControlEscolar
Select G.NM, M.NombreM,
Count(*) as 'Número de alumnos aprobados'
from Grupos G, Materias M
Where G.Cal>70
Group by G.NM, M.NombreM
161. Crear Base de Datos Control Escolar y todas las tablas y agregar registros a cada tabla
CREATE TABLE Carreras
( NoC int primary key,
NombreC Varchar(50)
);
164. I.2.4. De control, monitoreo y estadísticas de acceso a bases de datos.
165. Mostrar estadísticas del cliente
Se pueden mostrar las estadísticas eligiendo
Mostrar estadísticas del cliente del menú Consulta, o seleccionando esta opción del menú contextual que se obtiene presionando el botón derecho dentro del ventana de edición SQL.
Una vez seleccionado deberá ejecutar la consulta SQL para que aparezca como una pestaña en la ventana de resultados.
I.2.4. De control, monitoreo y estadísticas de acceso a bases de datos.
172. Al igual que las estadísticas del cliente, se puede
Mostrar el plan de de ejecución seleccionando esta opción del menú Consulta o del menú contextual. Una vez seleccionado deberá ejecutar la consulta SQL para que aparezca como una pestaña en la ventan de resultados.