EjemploSQL CreateSelect
EjemploSQL CreateSelect
MODELO RELACIONAL
1
1 CREATE DATABASE IF NOT EXISTS LibreriaSanty ;
2 USE LibreriaSanty ;
3
4 CREATE TABLE IF NOT EXISTS Autor (
5 CCAutor VARCHAR (45) PRIMARY KEY ,
6 Apellido VARCHAR (45) NOT NULL ,
7 Nombre VARCHAR (45) NOT NULL ,
8 FechaNacimiento DATE NOT NULL
9 );
10
11 CREATE TABLE IF NOT EXISTS Editorial (
12 Nombre VARCHAR (45) PRIMARY KEY ,
13 Ciudad VARCHAR (45) NOT NULL ,
14 Complemento VARCHAR (45) NOT NULL
15 );
16
17 CREATE TABLE IF NOT EXISTS Libro (
18 ISBN VARCHAR (45) PRIMARY KEY ,
19 NombreEditorial VARCHAR (45) NOT NULL ,
20 NumeroPaginas INT NOT NULL ,
21 FechaPublicacion DATE NOT NULL ,
22 Titulo VARCHAR (45) NOT NULL ,
23 FOREIGN KEY ( NombreEditorial ) REFERENCES Editorial ( Nombre )
24 );
25
26 CREATE TABLE IF NOT EXISTS Escribir (
27 ISBN Libro Escrib ir VARCHAR (45) NOT NULL ,
28 CCAutorEscribir VARCHAR (45) NOT NULL ,
29 PRIMARY KEY ( ISBNLibroEscribir , CCAutorEscribir ) ,
30 FOREIGN KEY ( I SBNLib roEscr ibir ) REFERENCES Libro ( ISBN ) ,
31 FOREIGN KEY ( CCAutorEscribir ) REFERENCES Autor ( CCAutor )
32 );
33
34 CREATE TABLE IF NOT EXISTS Cliente (
35 IdCliente VARCHAR (45) PRIMARY KEY ,
36 FechaNacimiento DATE NOT NULL ,
37 Apellido VARCHAR (45) NOT NULL ,
38 Nombre VARCHAR (45) NOT NULL
2
39 );
40
3
92
93 -- Tabla Cliente
94 INSERT INTO Cliente ( IdCliente , FechaNacimiento , Apellido , Nombre )
95 VALUES
96 ( " C001 " , " 1985 -01 -01 " , " Lopez " , " Juan " ) ,
97 ( " C002 " , " 1986 -02 -01 " , " Garcia " , " Pedro " ) ,
98 ( " C003 " , " 1987 -03 -01 " , " Ruiz " , " Miguel " ) ,
99 ( " C004 " , " 1988 -04 -01 " , " Jimenez " , " Luis " ) ,
100 ( " C005 " , " 1989 -05 -01 " , " Ramirez " , " Jorge " ) ;
101
102 -- Tabla Comprar
103 INSERT INTO Comprar ( ISBNLibroComprar , IdClienteComprar )
104 VALUES
105 ( " L001 " , " C001 " ) ,
106 ( " L002 " , " C002 " ) ,
107 ( " L003 " , " C003 " ) ,
108 ( " L004 " , " C004 " ) ,
109 ( " L005 " , " C005 " ) ;
110
111 -- Tabla TelefonoCliente
112 INSERT INTO TelefonoCliente ( TelefonoCliente , IdCliente )
113 VALUES
114 ( " 555 -555 -5555 " , " C001 " ) ,
115 ( " 555 -555 -5556 " , " C002 " ) ,
116 ( " 555 -555 -5557 " , " C003 " ) ,
117 ( " 555 -555 -5558 " , " C004 " ) ,
118 ( " 555 -555 -5559 " , " C005 " ) ;
Listing 1: Creación de tablas y inserción de registros en SQL
Mostrar todos los libros con su título, nombre de la editorial y número de páginas:
1 SELECT Titulo , NombreEditorial , NumeroPaginas
2 FROM Libro ;
Mostrar todos los libros escritos por un autor específico (en este ejemplo, el autor con
CCAutor = ’A001’):
1 SELECT l . Titulo , l . NombreEditorial , l . NumeroPaginas
2 FROM Libro l
3 JOIN Escribir e ON l . ISBN = e . I SBNLib roEscr ibir
4 WHERE e . CCAutorEscribir = ’ A001 ’;
Mostrar todos los clientes que han comprado libros con su nombre completo y fecha de
nacimiento
1 SELECT CONCAT ( Nombre , ’ ’ , Apellido ) AS NombreCompleto , FechaNacimiento
2 FROM Cliente ;
4
2 FROM Comprar c
3 JOIN Cliente cl ON c . IdClienteComprar = cl . IdCliente
4 GROUP BY c . IdCliente , cl . Nombre , cl . Apellido ;