Advertisement
any15015

Act2_Labo3

Aug 25th, 2024
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.66 KB | None | 0 0
  1. CREATE DATABASE Libreria
  2. GO
  3. USE Libreria
  4. GO
  5.  
  6. CREATE TABLE Emails(
  7. Id_email INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  8. Descripcion VARCHAR(30) NOT NULL UNIQUE
  9. )
  10. GO
  11. CREATE TABLE Paises(
  12. Id_pais INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  13. Descripcion VARCHAR(30) NOT NULL UNIQUE
  14. )
  15. GO
  16. CREATE TABLE Provincias(
  17. Id_provincia INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  18. Descripcion VARCHAR(30) NOT NULL UNIQUE
  19. )
  20. GO
  21. CREATE TABLE Localidades(
  22. Id_localidad INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  23. Descripcion VARCHAR(30) NOT NULL UNIQUE
  24. )
  25. GO
  26. CREATE TABLE Direccion(
  27. Id_direccion INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  28. Id_pais INT NOT NULL FOREIGN KEY REFERENCES Paises(Id_pais),
  29. Id_provincia INT NOT NULL FOREIGN KEY REFERENCES Provincias(Id_provincia),
  30. Id_localidad INT NOT NULL FOREIGN KEY REFERENCES Localidades(Id_localidad),
  31. CodPostal VARCHAR(10) NOT NULL,
  32. Calle VARCHAR(30) NOT NULL,
  33. Altura SMALLINT NOT NULL
  34. )
  35. GO
  36. CREATE TABLE Clientes(
  37. Id_cliente INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  38. Nombre VARCHAR(30) NOT NULL,
  39. Apellido VARCHAR(30) NOT NULL,
  40. FechaNacimiento DATE NOT NULL,
  41. Id_direccion INT NOT NULL FOREIGN KEY REFERENCES Direccion(Id_direccion)
  42. )
  43. GO
  44. CREATE TABLE EmailsXClientes(
  45. Id_cliente INT NOT NULL FOREIGN KEY REFERENCES Clientes(Id_cliente),
  46. Id_email INT NOT NULL FOREIGN KEY REFERENCES Clientes(Id_cliente),
  47. CONSTRAINT PK_EmailsXClientes PRIMARY KEY (Id_cliente, Id_email)
  48. )
  49. GO
  50. CREATE TABLE Categorias(
  51. Id_categoria INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  52. Descripcion VARCHAR(30) NOT NULL UNIQUE
  53. )
  54. GO
  55. CREATE TABLE Autores(
  56. Id_autor BIGINT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  57. Nombre VARCHAR(30) NOT NULL,
  58. Apellido VARCHAR(30) NOT NULL,
  59. Id_paisNacimiento INT NOT NULL FOREIGN KEY REFERENCES Paises(Id_pais),
  60. )
  61. GO
  62. CREATE TABLE Libros(
  63. Id_libro INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  64. Titulo VARCHAR(50) NOT NULL,
  65. AñoPublicado SMALLINT NOT NULL
  66. )
  67. GO
  68. CREATE TABLE AutoresXlibros(
  69. Id_libro INT NOT NULL FOREIGN KEY REFERENCES Libros(Id_libro),
  70. Id_autor BIGINT NOT NULL FOREIGN KEY REFERENCES Autores(Id_autor),
  71. CONSTRAINT PK_AutoresXlibros PRIMARY KEY (Id_libro, Id_autor)
  72. )
  73. GO
  74. CREATE TABLE CategoriasXlibros(
  75. Id_libro INT NOT NULL FOREIGN KEY REFERENCES Libros(Id_libro),
  76. Id_categoria INT NOT NULL FOREIGN KEY REFERENCES Categorias(Id_categoria),
  77. CONSTRAINT PK_CategoriasXlibros PRIMARY KEY (Id_libro, Id_categoria)
  78. )
  79. GO
  80. CREATE TABLE LibrosXClientes(
  81. Id_cliente INT NOT NULL FOREIGN KEY REFERENCES Clientes(Id_cliente),
  82. Id_libro INT NOT NULL FOREIGN KEY REFERENCES Libros(Id_libro),
  83. FechaCompra DATE NOT NULL,
  84. Puntaje SMALLINT NULL CHECK(Puntaje>0 AND Puntaje<=10),
  85. CONSTRAINT PK_LibrosXClientes PRIMARY KEY (Id_cliente, Id_libro, FechaCompra)
  86. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement