Taller de base de datos ags dic_2014 control escolar

176
Taller de Base de Datos Dra. Elvia Ruiz Beltrán

description

CREACION DE TABLAS Y COMO HACER CONSULTAS EN SQL SERVER

Transcript of Taller de base de datos ags dic_2014 control escolar

Page 1: Taller de base de datos ags dic_2014 control escolar

Taller de Base de

Datos

Dra. Elvia Ruiz Beltrán

Page 2: Taller de base de datos ags dic_2014 control escolar

Objetivo general

El estudiante identificará

herramientas de software para

diseñar y administrar bases de

datos, así como las tecnologías

de conectividad.

Page 3: Taller de base de datos ags dic_2014 control escolar

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.

Page 4: Taller de base de datos ags dic_2014 control escolar

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.

Page 5: Taller de base de datos ags dic_2014 control escolar

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.

Page 6: Taller de base de datos ags dic_2014 control escolar

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.

Page 7: Taller de base de datos ags dic_2014 control escolar

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.

Page 8: Taller de base de datos ags dic_2014 control escolar

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.

Page 9: Taller de base de datos ags dic_2014 control escolar

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.

Page 10: Taller de base de datos ags dic_2014 control escolar

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.

Page 11: Taller de base de datos ags dic_2014 control escolar

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

Page 12: Taller de base de datos ags dic_2014 control escolar

Evaluación

Page 13: Taller de base de datos ags dic_2014 control escolar

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.

Page 14: Taller de base de datos ags dic_2014 control escolar

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.

Page 15: Taller de base de datos ags dic_2014 control escolar

1.1 Características

del gestor

Page 16: Taller de base de datos ags dic_2014 control escolar

Acrónimos

SGBD: Sistema Gestor de Base de Datos

DBMS: Data Base Manegement System

Page 17: Taller de base de datos ags dic_2014 control escolar

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.

Page 18: Taller de base de datos ags dic_2014 control escolar

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.

Page 19: Taller de base de datos ags dic_2014 control escolar

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.

Page 20: Taller de base de datos ags dic_2014 control escolar

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.

Page 21: Taller de base de datos ags dic_2014 control escolar

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.

Page 22: Taller de base de datos ags dic_2014 control escolar

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

Page 23: Taller de base de datos ags dic_2014 control escolar

DBMS comerciales:

Page 24: Taller de base de datos ags dic_2014 control escolar

DBMS a utilizar

SQL Server 2008

Developer Edition o superior

MySQL

SQL (lenguaje estructurado de

Consultas o Structured Query Language

). >>>SQL2008<<<

Page 25: Taller de base de datos ags dic_2014 control escolar

Instalación de SQL Server

Instalación de SQL Server.

Instalación de MySQL.

Page 26: Taller de base de datos ags dic_2014 control escolar

Configuración de SQL Server

000.2 Configuración del servicio de

SQLServer

Page 27: Taller de base de datos ags dic_2014 control escolar

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.

Page 28: Taller de base de datos ags dic_2014 control escolar

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

Page 29: Taller de base de datos ags dic_2014 control escolar

1.2 Herramientas

Page 30: Taller de base de datos ags dic_2014 control escolar

1.2.1 De creación de bases de

datos (ControlEscolar)

Page 31: Taller de base de datos ags dic_2014 control escolar

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.

Page 32: Taller de base de datos ags dic_2014 control escolar

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.

Page 33: Taller de base de datos ags dic_2014 control escolar

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.

Page 34: Taller de base de datos ags dic_2014 control escolar

1.2.3 De edición para crear

esquemas y consultas de bases de

datos

Page 35: Taller de base de datos ags dic_2014 control escolar

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.

Page 36: Taller de base de datos ags dic_2014 control escolar

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

Page 37: Taller de base de datos ags dic_2014 control escolar

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.

Page 38: Taller de base de datos ags dic_2014 control escolar

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

Page 39: Taller de base de datos ags dic_2014 control escolar

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

Page 40: Taller de base de datos ags dic_2014 control escolar

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

Page 41: Taller de base de datos ags dic_2014 control escolar

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.

Page 42: Taller de base de datos ags dic_2014 control escolar

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:

Page 43: Taller de base de datos ags dic_2014 control escolar

Tipos de datos carácter

1.2.3 De edición para crear esquemas y consultas de bases de datos

Tipos de datos

Page 44: Taller de base de datos ags dic_2014 control escolar

Tipos de datos numéricos

1.2.3 De edición para crear esquemas y consultas de bases de datos

Tipos de datos

Page 45: Taller de base de datos ags dic_2014 control escolar

Tipos de datos numéricos

1.2.3 De edición para crear esquemas y consultas de bases de datos

Tipos de datos

Page 46: Taller de base de datos ags dic_2014 control escolar

Tipo de datos fecha/hora

1.2.3 De edición para crear esquemas y consultas de bases de datos

Tipos de datos

Page 47: Taller de base de datos ags dic_2014 control escolar

Otros tipos de datos

1.2.3 De edición para crear esquemas y consultas de bases de datos

Tipos de datos

Page 48: Taller de base de datos ags dic_2014 control escolar

Estructura de las tablas

1.2.3 De edición para crear esquemas y consultas de bases de datos

Apellidos Nombre

Empleados

25 50

Page 49: Taller de base de datos ags dic_2014 control escolar

Estructuras de las tablas

1.2.3 De edición para crear esquemas y consultas de bases de datos

Page 50: Taller de base de datos ags dic_2014 control escolar

1.2.3 De edición para crear esquemas y consultas de bases de datos

Page 51: Taller de base de datos ags dic_2014 control escolar

Estructuras de las tablas

1.2.3 De edición para crear esquemas y consultas de bases de datos

Page 52: Taller de base de datos ags dic_2014 control escolar

Abrir el Administrador de SQL-

Server (SQL Server Management

Studio)

Crear Base de Datos Empresa

Crear tabla Empleados

Page 53: Taller de base de datos ags dic_2014 control escolar

¿Cómo crearías la base de datos?

CREATE DATABASE Empresa

Page 54: Taller de base de datos ags dic_2014 control escolar

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

Page 55: Taller de base de datos ags dic_2014 control escolar

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

Page 56: Taller de base de datos ags dic_2014 control escolar

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]

)

Page 57: Taller de base de datos ags dic_2014 control escolar

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

Page 58: Taller de base de datos ags dic_2014 control escolar

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

Page 59: Taller de base de datos ags dic_2014 control escolar

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

Page 60: Taller de base de datos ags dic_2014 control escolar

ControlEscolar

Page 61: Taller de base de datos ags dic_2014 control escolar
Page 62: Taller de base de datos ags dic_2014 control escolar

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

Page 63: Taller de base de datos ags dic_2014 control escolar

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

Page 64: Taller de base de datos ags dic_2014 control escolar

INSERT INTO Materias (NM, NombreM)

VALUES(‘M5A’,’Matemáticas I ‘),

(‘D38’,´Derecho Laboral´),

(‘C1C’,’Contabilidad’),

(‘E7H’,’Estadística’)

Select * from Alumnos

Select * from Alumnos

Page 65: Taller de base de datos ags dic_2014 control escolar

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

Page 66: Taller de base de datos ags dic_2014 control escolar

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

Page 67: Taller de base de datos ags dic_2014 control escolar

Inserta registros en otra tabla que

se crea automáticamente

SELECT NoC, NombreC

INTO Carrera2

FROM Carreras

ORDER BY NombreC

Page 68: Taller de base de datos ags dic_2014 control escolar

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.

Page 69: Taller de base de datos ags dic_2014 control escolar

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:

Page 70: Taller de base de datos ags dic_2014 control escolar

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.

Page 71: Taller de base de datos ags dic_2014 control escolar

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

Page 72: Taller de base de datos ags dic_2014 control escolar

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).

Page 73: Taller de base de datos ags dic_2014 control escolar

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.

Page 74: Taller de base de datos ags dic_2014 control escolar

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.

Page 75: Taller de base de datos ags dic_2014 control escolar

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.

Page 76: Taller de base de datos ags dic_2014 control escolar

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.

Page 77: Taller de base de datos ags dic_2014 control escolar

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

Page 78: Taller de base de datos ags dic_2014 control escolar

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

Page 79: Taller de base de datos ags dic_2014 control escolar

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

Page 80: Taller de base de datos ags dic_2014 control escolar

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

Page 81: Taller de base de datos ags dic_2014 control escolar

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.

.

Page 82: Taller de base de datos ags dic_2014 control escolar

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.

Page 83: Taller de base de datos ags dic_2014 control escolar

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.

Page 84: Taller de base de datos ags dic_2014 control escolar

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.

Page 85: Taller de base de datos ags dic_2014 control escolar

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.

Page 86: Taller de base de datos ags dic_2014 control escolar

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.

Page 87: Taller de base de datos ags dic_2014 control escolar

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

Page 88: Taller de base de datos ags dic_2014 control escolar

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.

Page 89: Taller de base de datos ags dic_2014 control escolar

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.

Page 90: Taller de base de datos ags dic_2014 control escolar

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.

Page 91: Taller de base de datos ags dic_2014 control escolar

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.

Page 92: Taller de base de datos ags dic_2014 control escolar

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.

Page 93: Taller de base de datos ags dic_2014 control escolar

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

Page 94: Taller de base de datos ags dic_2014 control escolar

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

Page 95: Taller de base de datos ags dic_2014 control escolar

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.

Page 96: Taller de base de datos ags dic_2014 control escolar

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

Page 97: Taller de base de datos ags dic_2014 control escolar

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

Page 98: Taller de base de datos ags dic_2014 control escolar

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

Page 99: Taller de base de datos ags dic_2014 control escolar

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.

Page 100: Taller de base de datos ags dic_2014 control escolar

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)

Page 101: Taller de base de datos ags dic_2014 control escolar

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

Page 102: Taller de base de datos ags dic_2014 control escolar

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

Page 103: Taller de base de datos ags dic_2014 control escolar

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

Page 104: Taller de base de datos ags dic_2014 control escolar
Page 105: Taller de base de datos ags dic_2014 control escolar

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 ]

Page 106: Taller de base de datos ags dic_2014 control escolar

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

Page 107: Taller de base de datos ags dic_2014 control escolar

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.

Page 108: Taller de base de datos ags dic_2014 control escolar

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

Page 109: Taller de base de datos ags dic_2014 control escolar

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.

Page 110: Taller de base de datos ags dic_2014 control escolar

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]%'

Page 111: Taller de base de datos ags dic_2014 control escolar

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.

Page 112: Taller de base de datos ags dic_2014 control escolar

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:

Page 113: Taller de base de datos ags dic_2014 control escolar

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)

Page 114: Taller de base de datos ags dic_2014 control escolar

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).

Page 115: Taller de base de datos ags dic_2014 control escolar

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

Page 116: Taller de base de datos ags dic_2014 control escolar

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

Page 117: Taller de base de datos ags dic_2014 control escolar

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

Page 118: Taller de base de datos ags dic_2014 control escolar

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

Page 119: Taller de base de datos ags dic_2014 control escolar

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.

Page 120: Taller de base de datos ags dic_2014 control escolar

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

Page 121: Taller de base de datos ags dic_2014 control escolar

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.

Page 122: Taller de base de datos ags dic_2014 control escolar

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

Page 123: Taller de base de datos ags dic_2014 control escolar

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

Page 124: Taller de base de datos ags dic_2014 control escolar

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

Page 125: Taller de base de datos ags dic_2014 control escolar

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

Page 126: Taller de base de datos ags dic_2014 control escolar
Page 127: Taller de base de datos ags dic_2014 control escolar

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

Page 128: Taller de base de datos ags dic_2014 control escolar

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

Page 129: Taller de base de datos ags dic_2014 control escolar

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

1.2.3 De edición para crear esquemas y consultas de bases de datos

Page 130: Taller de base de datos ags dic_2014 control escolar

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.

Page 131: Taller de base de datos ags dic_2014 control escolar

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

Page 132: Taller de base de datos ags dic_2014 control escolar

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

Page 133: Taller de base de datos ags dic_2014 control escolar

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

Page 134: Taller de base de datos ags dic_2014 control escolar

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

Page 135: Taller de base de datos ags dic_2014 control escolar

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.

Page 136: Taller de base de datos ags dic_2014 control escolar

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.

Page 137: Taller de base de datos ags dic_2014 control escolar

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.

Page 138: Taller de base de datos ags dic_2014 control escolar

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.

Page 139: Taller de base de datos ags dic_2014 control escolar

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

Page 140: Taller de base de datos ags dic_2014 control escolar

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.

Page 141: Taller de base de datos ags dic_2014 control escolar

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

Page 142: Taller de base de datos ags dic_2014 control escolar

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)

Page 143: Taller de base de datos ags dic_2014 control escolar

Ejercicio

Borrar aquellas materias que no están

siendo impartidas en ningún grupo.

Page 144: Taller de base de datos ags dic_2014 control escolar

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

Page 145: Taller de base de datos ags dic_2014 control escolar

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

Page 146: Taller de base de datos ags dic_2014 control escolar

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

Page 147: Taller de base de datos ags dic_2014 control escolar

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

Page 148: Taller de base de datos ags dic_2014 control escolar

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

Page 149: Taller de base de datos ags dic_2014 control escolar

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.

Page 150: Taller de base de datos ags dic_2014 control escolar

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.

Page 151: Taller de base de datos ags dic_2014 control escolar

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

Page 152: Taller de base de datos ags dic_2014 control escolar

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

Page 153: Taller de base de datos ags dic_2014 control escolar

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.

Page 154: Taller de base de datos ags dic_2014 control escolar

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

Page 155: Taller de base de datos ags dic_2014 control escolar

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.

Page 156: Taller de base de datos ags dic_2014 control escolar

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

Page 157: Taller de base de datos ags dic_2014 control escolar

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

Page 158: Taller de base de datos ags dic_2014 control escolar

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

Page 159: Taller de base de datos ags dic_2014 control escolar

Select distinct G.NC, NombreA

From Grupos G, Alumnos A

Where G.NC=A.NC

Page 160: Taller de base de datos ags dic_2014 control escolar

Ahora con MySQL

En línea de comandos

Page 161: Taller de base de datos ags dic_2014 control escolar

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)

);

Page 162: Taller de base de datos ags dic_2014 control escolar

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)

)

Page 163: Taller de base de datos ags dic_2014 control escolar

Fin de la Unidad 1

Page 164: Taller de base de datos ags dic_2014 control escolar

I.2.4. De control, monitoreo

y estadísticas de acceso a

bases de datos.

Page 165: Taller de base de datos ags dic_2014 control escolar

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.

Page 166: Taller de base de datos ags dic_2014 control escolar
Page 167: Taller de base de datos ags dic_2014 control escolar
Page 168: Taller de base de datos ags dic_2014 control escolar
Page 169: Taller de base de datos ags dic_2014 control escolar
Page 170: Taller de base de datos ags dic_2014 control escolar

I.2.5. Utilerías

diversas.

Page 171: Taller de base de datos ags dic_2014 control escolar
Page 172: Taller de base de datos ags dic_2014 control escolar

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.

Page 173: Taller de base de datos ags dic_2014 control escolar
Page 174: Taller de base de datos ags dic_2014 control escolar
Page 175: Taller de base de datos ags dic_2014 control escolar

Diagrama

Page 176: Taller de base de datos ags dic_2014 control escolar

Uso de la ayuda