Sql Silberchatz
Database System Concepts, 5th Ed.
©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use
Capítulo 3: SQL
Definición de datos Estructura básica de las consultas SQL Operaciones sobre conjuntos Funciones de agregación
Valores nulos
Subconsultas anidadas Consultas complejas Vistas
Modificación de la BD
Reunión derealciones
Database System Concepts, 5th Edition, Oct 5, 2006
3.2
©Silberschatz, Korth and Sudarshan
Historia
IBM Sequel lenguaje desarrollado como parte del proyecto System R
en el laboratorio de San Jose
Renombrado Structured Query Language (SQL) Lenguaje
estructurado de consultas
ANSI y ISO publicaron una norma de SQL:
SQL-86 SQL-89 SQL-92 SQL:1999SQL:2003
Sistemas comerciales ofrecen casi todo, sino todo SQL-92
(características)
No todos los ejemplos funcionan en tu sistema (particular)
Database System Concepts, 5th Edition, Oct 5, 2006
3.3
©Silberschatz, Korth and Sudarshan
Lenguaje de Definición de Datos
Proporciona la especificación no solo de un conjunto de relaciones pero también la información de cadarelación incluyendo:
El esquema de cada relación
El dominio de valores asociados con cada atributo
Las restricciones de integridad El conjunto de índices que se debe mantener para cada relación. La información de seguridad y de autorización de cada relación. La estructura de almacenamiento físico de cada relación en el disco.
Database System Concepts, 5th Edition, Oct 5,2006
3.4
©Silberschatz, Korth and Sudarshan
Figure 3.1: Esquema de la entidad bancaria
branch (branch_name, branch_city, assets) sucursal (Nombre_sucursal, Ciudad_sucursal, activos) customer (customer_name, customer_street, customer_city) Cliente (Nombre_cliente, Calle_cliente, Ciudad_cliente) loan (loan_number, branch_name, amount) Prestamo(Numero_prestamo, Nombre_sucursal, Importe)borrower (customer_name, loan_number) prestatario (Nombre_cliente, Numero_prestamo)
account (account_number, branch_name, balance)
cuenta (Numero_cuenta, Nombre_sucursal, saldo) depositor (customer_name, account_number) Impositor(Nombre_cliente, Numero_cuenta)
Database System Concepts, 5th Edition, Oct 5, 2006 3.5 ©Silberschatz, Korth and Sudarshan
-- Create schema banco
-CREATE DATABASE IF NOT EXISTS banco; USE banco; - -- Definition of table `cliente` - DROP TABLE IF EXISTS `cliente`; CREATE TABLE `cliente` (
`Nombre_cliente` char(20) NOT NULL,
`Calle_cliente` char(30) NOT NULL, `Ciudad_cliente` char(30) NOT NULL, PRIMARY KEY (`Nombre_cliente`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Database System Concepts, 5th Edition, Oct 5,2006
3.6
©Silberschatz, Korth and Sudarshan
INSERT INTO `cliente`
(`Nombre_cliente`,`Calle_cliente`,`Ciudad_cliente`) VALUES
('Abril','Precialos','Valsaín'), ('Amo','Embajadores','Arganzuela'), ('Badorrey','Delicias','Valsaín'), ('Fernández','Jazmin','Leon'), ('Gómez','Carretas','Cerceda'), ('González','Arenal','La Granja'),('López','Mayor','Peguerinos'), ('Pérez','Carretas','Cerceda'), ('Rodríguez','Yeserías','Cádiz'), ('Rupérez','Ramblas','León'), ('Santos','Mayor','Peguerinos'), ('Valdivieso','Goya','Vigo');
3.7 ©Silberschatz, Korth and Sudarshan
Database System Concepts, 5th Edition, Oct 5, 2006
DROP TABLE IF EXISTS `cuenta`;
CREATE TABLE `cuenta` (
`Numero_cuenta` char(10) NOT NULL, `Nombre_sucursal` char(15)NOT NULL, `Saldo` decimal(12,2) NOT NULL,
PRIMARY KEY (`Numero_cuenta`),
KEY `FK_Cuenta_1` (`Nombre_sucursal`), CONSTRAINT `FK_Cuenta_1` FOREIGN KEY (`Nombre_sucursal`) REFERENCES `sucursal` (`Nombre_sucursal`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Database System Concepts, 5th Edition, Oct 5, 2006
3.8
©Silberschatz, Korth and Sudarshan
NSERT INTO `cuenta`...
Regístrate para leer el documento completo.