SlideShare una empresa de Scribd logo
1 de 176
Descargar para leer sin conexión
Taller de Base de Datos 
Dra. Elvia Ruiz Beltrán
Objetivo general 
El estudiante identificará herramientas de software para diseñar y administrar bases de datos, así como las tecnologías de conectividad.
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.
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.
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.
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.
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.
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.
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.
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.
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
Evaluación
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.
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.
1.1 Características del gestor
Acrónimos 
SGBD: Sistema Gestor de Base de Datos 
DBMS: Data Base Manegement System
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.
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.
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.
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.
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.
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
DBMS comerciales:
DBMS a utilizar 
SQL Server 2008 
Developer Edition o superior 
MySQL 
SQL (lenguaje estructurado de Consultas o Structured Query Language ). >>>SQL2008<<<
Instalación de SQL Server 
Instalación de SQL Server. 
Instalación de MySQL.
Configuración de SQL Server 
000.2 Configuración del servicio de SQLServer
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.
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
1.2 Herramientas
1.2.1 De creación de bases de datos (ControlEscolar)
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.
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.
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.
1.2.3 De edición para crear esquemas y consultas de bases de datos
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.
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
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.
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
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
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
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.
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:
Tipos de datos carácter 
1.2.3 De edición para crear esquemas y consultas de bases de datos 
Tipos de datos
Tipos de datos numéricos 
1.2.3 De edición para crear esquemas y consultas de bases de datos 
Tipos de datos
Tipos de datos numéricos 
1.2.3 De edición para crear esquemas y consultas de bases de datos 
Tipos de datos
Tipo de datos fecha/hora 
1.2.3 De edición para crear esquemas y consultas de bases de datos 
Tipos de datos
Otros tipos de datos 
1.2.3 De edición para crear esquemas y consultas de bases de datos 
Tipos de datos
Estructura de las tablas 
1.2.3 De edición para crear esquemas y consultas de bases de datos 
Apellidos 
Nombre 
Empleados 
25 
50
Estructuras de las tablas 
1.2.3 De edición para crear esquemas y consultas de bases de datos
1.2.3 De edición para crear esquemas y consultas de bases de datos
Estructuras de las tablas 
1.2.3 De edición para crear esquemas y consultas de bases de datos
Abrir el Administrador de SQL- Server (SQL Server Management Studio) 
Crear Base de Datos Empresa 
Crear tabla Empleados
¿Cómo crearías la base de datos? 
CREATE DATABASE Empresa
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
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
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] 
)
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
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
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
ControlEscolar
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
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
INSERT INTO Materias (NM, NombreM) 
VALUES(‘M5A’,’Matemáticas I ‘), 
(‘D38’,´Derecho Laboral´), 
(‘C1C’,’Contabilidad’), 
(‘E7H’,’Estadística’) 
Select * from Alumnos 
Select * from Alumnos
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
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
Inserta registros en otra tabla que se crea automáticamente 
SELECT NoC, NombreC 
INTO Carrera2 
FROM Carreras 
ORDER BY NombreC
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.
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:
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.
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
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).
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.
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.
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.
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.
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
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
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
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
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. 
.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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
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
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.
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
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
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
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.
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)
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
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
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
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 ]
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
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.
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
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.
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]%'
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.
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:
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)
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).
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
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
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
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
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.
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
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.
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
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
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
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
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
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
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
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.
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
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
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
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
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.
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.
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.
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.
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
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.
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
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)
Ejercicio 
Borrar aquellas materias que no están siendo impartidas en ningún grupo.
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
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
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
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
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
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.
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.
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
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
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.
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
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.
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
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
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
Select distinct G.NC, NombreA 
From Grupos G, Alumnos A 
Where G.NC=A.NC
Ahora con MySQL 
En línea de comandos
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) 
);
CREATE TABLE Alumnos( 
 NC int primary key, 
NombreA Varchar(50), 
Sexo char, 
Domicilio varchar(50), 
Edad int, 
NoC int, 
Foreign key(NoC) REFERENCES Carreras(NoC) 
)
Fin de la Unidad 1
I.2.4. De control, monitoreo y estadísticas de acceso a bases de datos.
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.
I.2.5. Utilerías diversas.
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.
Diagrama
Uso de la ayuda

Más contenido relacionado

La actualidad más candente

Tipos de usuarios en una base de datos
Tipos de usuarios en una base de datosTipos de usuarios en una base de datos
Tipos de usuarios en una base de datos
jenpes
 
Ejemplos de proyectos al modelo en cascada
Ejemplos de proyectos  al modelo en cascadaEjemplos de proyectos  al modelo en cascada
Ejemplos de proyectos al modelo en cascada
aics-1986-13-saraguro
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
ayreonmx
 

La actualidad más candente (20)

Tipos de usuarios en una base de datos
Tipos de usuarios en una base de datosTipos de usuarios en una base de datos
Tipos de usuarios en una base de datos
 
Ejemplos de proyectos al modelo en cascada
Ejemplos de proyectos  al modelo en cascadaEjemplos de proyectos  al modelo en cascada
Ejemplos de proyectos al modelo en cascada
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
Transacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQLTransacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQL
 
Preguntas analisis y determinacion de requerimientos
Preguntas analisis y determinacion de requerimientosPreguntas analisis y determinacion de requerimientos
Preguntas analisis y determinacion de requerimientos
 
Ventajas vs Desventajas se SGBD
Ventajas vs Desventajas se SGBDVentajas vs Desventajas se SGBD
Ventajas vs Desventajas se SGBD
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Fundamentos y metodos de analisis de requerimientos.
Fundamentos y metodos de  analisis de requerimientos.Fundamentos y metodos de  analisis de requerimientos.
Fundamentos y metodos de analisis de requerimientos.
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Ingenieria de requisitos
Ingenieria de requisitosIngenieria de requisitos
Ingenieria de requisitos
 
Tipos de usuario en una Base de Datos
Tipos de usuario en una Base de DatosTipos de usuario en una Base de Datos
Tipos de usuario en una Base de Datos
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelas
 
Diccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de informaciónDiccionario de datos en los sistemas de información
Diccionario de datos en los sistemas de información
 
Ventajas y desventajas modelos
Ventajas y desventajas modelosVentajas y desventajas modelos
Ventajas y desventajas modelos
 
1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas1.2 arquitectura en 2 capas
1.2 arquitectura en 2 capas
 
Proceso unificado
Proceso unificadoProceso unificado
Proceso unificado
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteTopicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
 
Modelado del análisis
Modelado del análisisModelado del análisis
Modelado del análisis
 

Destacado

Ejercicio completo colegio
Ejercicio completo colegioEjercicio completo colegio
Ejercicio completo colegio
gusanchez2668
 
Análisis y Diseño de un Sistema de Control de entradas y salidas de alimentos...
Análisis y Diseño de un Sistema de Control de entradas y salidas de alimentos...Análisis y Diseño de un Sistema de Control de entradas y salidas de alimentos...
Análisis y Diseño de un Sistema de Control de entradas y salidas de alimentos...
Aranu Arekisu
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
josecuartas
 
D:\Maximina Rodriguez Herrera\Plan Unidad\Plantilla Plan Unidad
D:\Maximina Rodriguez Herrera\Plan Unidad\Plantilla Plan UnidadD:\Maximina Rodriguez Herrera\Plan Unidad\Plantilla Plan Unidad
D:\Maximina Rodriguez Herrera\Plan Unidad\Plantilla Plan Unidad
Maximina03
 
Clase 10.1-bases de datos ejemplo
Clase 10.1-bases de datos ejemploClase 10.1-bases de datos ejemplo
Clase 10.1-bases de datos ejemplo
arturo8888
 
Ejercicios practicos word
Ejercicios practicos wordEjercicios practicos word
Ejercicios practicos word
123456uy
 
Modelo entidad relacion(gestion de examenes)
Modelo entidad relacion(gestion de examenes)Modelo entidad relacion(gestion de examenes)
Modelo entidad relacion(gestion de examenes)
agustinbilmer
 
Redundancia de datos
Redundancia de datosRedundancia de datos
Redundancia de datos
diegorap
 
Interfaz base de datos
Interfaz base de datosInterfaz base de datos
Interfaz base de datos
ariandrea
 

Destacado (20)

Ejercicio completo colegio
Ejercicio completo colegioEjercicio completo colegio
Ejercicio completo colegio
 
Análisis y Diseño de un Sistema de Control de entradas y salidas de alimentos...
Análisis y Diseño de un Sistema de Control de entradas y salidas de alimentos...Análisis y Diseño de un Sistema de Control de entradas y salidas de alimentos...
Análisis y Diseño de un Sistema de Control de entradas y salidas de alimentos...
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Instructivo acces
Instructivo accesInstructivo acces
Instructivo acces
 
Plan Unidades
Plan UnidadesPlan Unidades
Plan Unidades
 
D:\Maximina Rodriguez Herrera\Plan Unidad\Plantilla Plan Unidad
D:\Maximina Rodriguez Herrera\Plan Unidad\Plantilla Plan UnidadD:\Maximina Rodriguez Herrera\Plan Unidad\Plantilla Plan Unidad
D:\Maximina Rodriguez Herrera\Plan Unidad\Plantilla Plan Unidad
 
Clase 10.1-bases de datos ejemplo
Clase 10.1-bases de datos ejemploClase 10.1-bases de datos ejemplo
Clase 10.1-bases de datos ejemplo
 
Contenido Materia Bases de Datos I
Contenido Materia Bases de Datos IContenido Materia Bases de Datos I
Contenido Materia Bases de Datos I
 
Introducción a las Bases de Datos para Bachillerato.
Introducción a las Bases de Datos para Bachillerato.Introducción a las Bases de Datos para Bachillerato.
Introducción a las Bases de Datos para Bachillerato.
 
Las velocidades del derecho penal
Las velocidades del derecho penalLas velocidades del derecho penal
Las velocidades del derecho penal
 
El ensamblaje local y su dinamica
El ensamblaje local y su dinamicaEl ensamblaje local y su dinamica
El ensamblaje local y su dinamica
 
Modelo entidad
Modelo entidadModelo entidad
Modelo entidad
 
Ejercicios practicos word
Ejercicios practicos wordEjercicios practicos word
Ejercicios practicos word
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
Tutorial Teorico-Practico Sql server 2000 (233 paginas)
Tutorial Teorico-Practico Sql server 2000 (233 paginas)Tutorial Teorico-Practico Sql server 2000 (233 paginas)
Tutorial Teorico-Practico Sql server 2000 (233 paginas)
 
Modelo entidad relacion(gestion de examenes)
Modelo entidad relacion(gestion de examenes)Modelo entidad relacion(gestion de examenes)
Modelo entidad relacion(gestion de examenes)
 
Redundancia de datos
Redundancia de datosRedundancia de datos
Redundancia de datos
 
Cómo elaborar un cursograma
Cómo elaborar un cursogramaCómo elaborar un cursograma
Cómo elaborar un cursograma
 
Interfaz base de datos
Interfaz base de datosInterfaz base de datos
Interfaz base de datos
 
Uso del registro de grado del Nivel inicial y Basica
Uso del registro de grado del Nivel inicial y BasicaUso del registro de grado del Nivel inicial y Basica
Uso del registro de grado del Nivel inicial y Basica
 

Similar a Taller de base de datos ags dic_2014 control escolar

Instituto
InstitutoInstituto
Instituto
marilue
 
Instituto
InstitutoInstituto
Instituto
marilue
 
Taller 1, 2010
Taller 1, 2010Taller 1, 2010
Taller 1, 2010
Lakxmy
 
Sistema GestióN De Bases De Datos
Sistema GestióN De Bases De DatosSistema GestióN De Bases De Datos
Sistema GestióN De Bases De Datos
Jeisson Nc
 
Sistema Gestión De Bases De Datos
Sistema  Gestión  De  Bases  De  DatosSistema  Gestión  De  Bases  De  Datos
Sistema Gestión De Bases De Datos
Jeisson Nc
 
Sistema GestióN De Bases De Datos
Sistema GestióN De Bases De DatosSistema GestióN De Bases De Datos
Sistema GestióN De Bases De Datos
Jeisson Nc
 

Similar a Taller de base de datos ags dic_2014 control escolar (20)

Sistemas Gestores de Base de Datos
Sistemas Gestores de Base de DatosSistemas Gestores de Base de Datos
Sistemas Gestores de Base de Datos
 
Administrador de Dase de Datos
Administrador de Dase de DatosAdministrador de Dase de Datos
Administrador de Dase de Datos
 
1. introducción
1. introducción1. introducción
1. introducción
 
Tipos de BDD y SGBD
Tipos de BDD y SGBDTipos de BDD y SGBD
Tipos de BDD y SGBD
 
diapositivasdesgbd-170504023703.pdf
diapositivasdesgbd-170504023703.pdfdiapositivasdesgbd-170504023703.pdf
diapositivasdesgbd-170504023703.pdf
 
Diapositivas de sgbd
Diapositivas de sgbdDiapositivas de sgbd
Diapositivas de sgbd
 
Semana 01.pdf
Semana 01.pdfSemana 01.pdf
Semana 01.pdf
 
Instituto
InstitutoInstituto
Instituto
 
Instituto
InstitutoInstituto
Instituto
 
Instituto
InstitutoInstituto
Instituto
 
Instituto
InstitutoInstituto
Instituto
 
Instituto
InstitutoInstituto
Instituto
 
Taller 1, 2010
Taller 1, 2010Taller 1, 2010
Taller 1, 2010
 
Gestor de Base de Datos
Gestor de Base de DatosGestor de Base de Datos
Gestor de Base de Datos
 
Introducción a las Bases de Datos
Introducción a las Bases de DatosIntroducción a las Bases de Datos
Introducción a las Bases de Datos
 
Expo
ExpoExpo
Expo
 
Guia de planeacion 2
Guia de planeacion 2Guia de planeacion 2
Guia de planeacion 2
 
Sistema GestióN De Bases De Datos
Sistema GestióN De Bases De DatosSistema GestióN De Bases De Datos
Sistema GestióN De Bases De Datos
 
Sistema Gestión De Bases De Datos
Sistema  Gestión  De  Bases  De  DatosSistema  Gestión  De  Bases  De  Datos
Sistema Gestión De Bases De Datos
 
Sistema GestióN De Bases De Datos
Sistema GestióN De Bases De DatosSistema GestióN De Bases De Datos
Sistema GestióN De Bases De Datos
 

Último

🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 

Último (20)

Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 

Taller de base de datos ags dic_2014 control escolar

  • 1. Taller de Base de Datos Dra. Elvia Ruiz Beltrán
  • 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.
  • 16. Acrónimos SGBD: Sistema Gestor de Base de Datos DBMS: Data Base Manegement System
  • 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.
  • 26. Configuración de SQL Server 000.2 Configuración del servicio de SQLServer
  • 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
  • 30. 1.2.1 De creación de bases de datos (ControlEscolar)
  • 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
  • 53. ¿Cómo crearías la base de datos? CREATE DATABASE Empresa
  • 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
  • 61.
  • 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)
  • 143. Ejercicio Borrar aquellas materias que no están siendo impartidas en ningún grupo.
  • 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
  • 159. Select distinct G.NC, NombreA From Grupos G, Alumnos A Where G.NC=A.NC
  • 160. Ahora con MySQL En línea de comandos
  • 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) );
  • 162. CREATE TABLE Alumnos(  NC int primary key, NombreA Varchar(50), Sexo char, Domicilio varchar(50), Edad int, NoC int, Foreign key(NoC) REFERENCES Carreras(NoC) )
  • 163. Fin de la Unidad 1
  • 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.
  • 166.
  • 167.
  • 168.
  • 169.
  • 171.
  • 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.
  • 173.
  • 174.
  • 176. Uso de la ayuda