-
check_circle_outlineMódulo 1 | 8 clases
Introdución
expand_more -
check_circle_outlineMódulo 2 | 3 clases
Servidor de base de datos
expand_more -
check_circle_outlineMódulo 3 | 10 clases
Base de datos y tablas
expand_more -
check_circle_outlineMódulo 4 | 8 clases
Restricciones
expand_more -
check_circle_outlineMódulo 5 | 2 clases
Modificar tablas
expand_more -
check_circle_outlineMódulo 6 | 12 clases
Sentencias basicas
expand_more -
check_circle_outlineMódulo 7 | 8 clases
Funciones
expand_more -
check_circle_outlineMódulo 8 | 12 clases
Sentencias avanzadas
expand_more -
check_circle_outlineMódulo 9 | 7 clases
Joins
expand_more -
check_circle_outlineMódulo 10 | 4 clases
Vistas
expand_more -
check_circle_outlineMódulo 11 | 7 clases
Procedimientos
expand_more -
check_circle_outlineMódulo 12 | 4 clases
Transacciones
expand_more -
check_circle_outlineMódulo 13 | 5 clases
Extras
expand_more -
check_circle_outlineMódulo 14 | 5 clases
Triggers
expand_more -
check_circle_outlineMódulo 15.-
Examen del curso
expand_more-
done_all
Examen
Examen final del curso
-
12 comentario(s)
¿Entonces no podemos tener varía llaves foráneas según entiendo por qué estas se relacionan con una llave primaria de otra tabla.? ¿Se pueden hacer relaciones entre tablas sin las llaves?
Buenas, no me funciona cuando uso el SOURCE, pero si voy metiendo el texto de apartes funciona todo correcto, alguien sabe porque? Dejo mi texto y el error a abajo.
DROP DATABASE IF EXISTS libreria_cf;
CREATE DATABASE libreria_cf;
USE libreria_cf;
CREATE TABLE IF NOT EXISTS autores(
autor_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(25) NOT NULL,
apellido VARCHAR(25) NOT NULL,
seudonimo VARCHAR(50) UNIQUE,
genero ENUM('M','F'),
fecha_nacimiento DATE NOT NULL,
pais_origen VARCHAR(40) NOT NULL,
fecha_creacion DATETIME DEFAULT current_timestamp
);
CREATE TABLE IF NOT EXISTS libros(
libro_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
autor_id INT UNSIGNED NOT NULL,
titulo VARCHAR(50) NOT NULL,
descripcion VARCHAR(190),
paginas INTEGER UNSIGNED,
fecha_publicacion DATE NOT NULL,
fecha_creacion DATETIME DEFAULT current_timestamp,
FOREIGN KEY (autor_id) REFERENCES autores(autor_id)
);
INSERT INTO autores(nombre,apellido,seudonimo,genero,fecha_nacimiento,pais_origen)
VALUES ('Stephen Edwin','King','Richard Bachman','M','1947-09-27','USA'),
('Joanne','Rowling','J.K','F','1947-09-27','Reino Unido')
INSERT INTO libros(autor_id, titulo, fecha_publicacion)
VALUES (1,'Carrie','1974-01-01'),
(1, 'El misterio de salmes lot','1975-01-01'),
(1, 'El resplando','1977-01-01'),
(2, 'Harry Potter y la piedra filosofal', '1997-06-30'),
(2, 'Harry Potter y la camara secreta', '1998-07-2'),
(2, 'Harry Potter y el prisionero de azkaban', '1999-07-8'),
(2, 'Harry Potter y el Caliz de fuego', '2000-03-20'),
(2, 'Harry Potter y a orden de fenix','2003-06-21'),
(2, 'Harry Potter y el misterio del principe','2005-06-16'),
(2, 'Harry Potter y la reliquias de la muerte', '2007-07-21');
SELECT * FROM autores;
SELECT * FROM libros;
Y EL ERROR ES
mysql> SOURCE C:\Users\Nano\Desktop\tablas.sql
Query OK, 2 rows affected (0.03 sec)
Query OK, 1 row affected (0.00 sec)
Database changed
Query OK, 0 rows affected (0.03 sec)
Query OK, 0 rows affected (0.04 sec)
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO libros(autor_id, titulo, fecha_publicacion)
VALUES (1,'Carrie','1974' at line 7
Empty set (0.00 sec)
Empty set (0.00 sec)
DROP DATABASE IF EXISTS libreria_cf;
CREATE DATABASE libreria_cf;
USE libreria_cf;
CREATE TABLE IF NOT EXISTS autores(
autor_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(25) NOT NULL,
apellido VARCHAR(25) NOT NULL,
seudonimo VARCHAR(50) UNIQUE,
genero ENUM('M','F'),
fecha_nacimiento DATE NOT NULL,
pais_origen VARCHAR(40) NOT NULL,
fecha_creacion DATETIME DEFAULT current_timestamp
);
CREATE TABLE IF NOT EXISTS libros(
libro_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
autor_id INT UNSIGNED NOT NULL,
titulo VARCHAR(50) NOT NULL,
descripcion VARCHAR(190),
paginas INTEGER UNSIGNED,
fecha_publicacion DATE NOT NULL,
fecha_creacion DATETIME DEFAULT current_timestamp,
FOREIGN KEY (autor_id) REFERENCES autores(autor_id)
);
INSERT INTO autores(nombre,apellido,seudonimo,genero,fecha_nacimiento,pais_origen)
VALUES ('Stephen Edwin','King','Richard Bachman','M','1947-09-27','USA'),
('Joanne','Rowling','J.K','F','1947-09-27','Reino Unido')
INSERT INTO libros(autor_id, titulo, fecha_publicacion)
VALUES (1,'Carrie','1974-01-01'),
(1, 'El misterio de salmes lot','1975-01-01'),
(1, 'El resplando','1977-01-01'),
(2, 'Harry Potter y la piedra filosofal', '1997-06-30'),
(2, 'Harry Potter y la camara secreta', '1998-07-2'),
(2, 'Harry Potter y el prisionero de azkaban', '1999-07-8'),
(2, 'Harry Potter y el Caliz de fuego', '2000-03-20'),
(2, 'Harry Potter y a orden de fenix','2003-06-21'),
(2, 'Harry Potter y el misterio del principe','2005-06-16'),
(2, 'Harry Potter y la reliquias de la muerte', '2007-07-21');
SELECT * FROM autores;
SELECT * FROM libros;
Y EL ERROR ES
mysql> SOURCE C:\Users\Nano\Desktop\tablas.sql
Query OK, 2 rows affected (0.03 sec)
Query OK, 1 row affected (0.00 sec)
Database changed
Query OK, 0 rows affected (0.03 sec)
Query OK, 0 rows affected (0.04 sec)
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO libros(autor_id, titulo, fecha_publicacion)
VALUES (1,'Carrie','1974' at line 7
Empty set (0.00 sec)
Empty set (0.00 sec)
Siento corregir amigo, pero tengo un poco de experiencia en esto y ciertamente está mal, la relación de LIBROS- AUTORES es de muchos a muchos. Es decir se debe crear una relación con una tabla intermedia que contiene como atributos, la primaria de cada tabla (en este caso son libro_id y autor_id).
Alguien me puede ayudar? me sale este error
ERROR 1364 (HY000): Field 'ID_AUTOR' doesn't have a default value
ERROR 1364 (HY000): Field 'ID_AUTOR' doesn't have a default value
A mi no me ha podido salir. Veo que a muchos les ha salido el mismo error.
CREATE TABLE IF NOT EXISTS libros(
libro_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
autor_id INT,
titulo VARCHAR(50) NOT NULL,
descripcion VARCHAR(190),
fecha_creacion DATETIME DEFAULT CURRENT_TIMESTAMP,
paginas INTEGER UNSIGNED,
fecha_publicacion DATE NOT NULL,
FOREIGN KEY (autor_id) REFERENCES autores(autor_id)
);
CREATE TABLE IF NOT EXISTS libros(
libro_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
autor_id INT,
titulo VARCHAR(50) NOT NULL,
descripcion VARCHAR(190),
fecha_creacion DATETIME DEFAULT CURRENT_TIMESTAMP,
paginas INTEGER UNSIGNED,
fecha_publicacion DATE NOT NULL,
FOREIGN KEY (autor_id) REFERENCES autores(autor_id)
);
BUENAS NOCHES AMIGOS! DESEO ACLARAR QUE SOLO ME DEJÓ REGISTRAR LA TABLA LIBROS, CUANDO ELIMINÉ EN AUTOR_ID EL "UNSIGNED", ME DABA ERROR PARA CREAR EL FK. SALUDO CORDIAL!
mysql> CREATE TABLE libros(
-> libro_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
-> autor_id INT UNSIGNED NOT NULL,
-> titulo VARCHAR(50) NOT NULL,
-> descripcipon VARCHAR(250),
-> paginas INTEGER UNSIGNED,
-> fecha_publicacion DATE NOT NULL,
-> fecha_creacion DATETIME DEFAULT current_timestamp,
-> FOREIGN KEY autor_id REFERENCES autores(autor_id)
-> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REFERENCES autores(autor_id)
)' at line 9
mysql>
Que hice mal?
-> libro_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
-> autor_id INT UNSIGNED NOT NULL,
-> titulo VARCHAR(50) NOT NULL,
-> descripcipon VARCHAR(250),
-> paginas INTEGER UNSIGNED,
-> fecha_publicacion DATE NOT NULL,
-> fecha_creacion DATETIME DEFAULT current_timestamp,
-> FOREIGN KEY autor_id REFERENCES autores(autor_id)
-> );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'REFERENCES autores(autor_id)
)' at line 9
mysql>
Que hice mal?
hola tengo un error, ayudenme
DROP DATABASE IF EXISTS libreria_cf;
CREATE DATABASE IF NOT EXISTS libreria_cf;
USE libreria_cf;
CREATE TABLE IF NOT EXISTS autores(
autor_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
Nombre VARCHAR(25) NOT NULL,
Apellido VARCHAR(25) NOT NULL,
seudonimo VARCHAR(50) UNIQUE,
Genero ENUM('M','F'),
Fecha_nacimiento DATE NOT NULL ,
Pais_origen VARCHAR(40) NOT NULL,
fecha de creacion DATETIME DEFAULT current_timestamp
);
CREATE TABLE IF NOT EXISTS libros(
libro id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
autor_id INT UNSIGNED NOT NULL,
titulo VARCHAR(25) NOT NULL,
descripcion VARCHAR(250),
paginas INTEGER UNSIGNED,
fecha_publicacion DATE NOT NULL,
fecha_creacion DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (autor_id) REFERENCES autores(autor_id));
INSERT INTO autores (Nombre, Apellido, seudonimo, Genero, Fecha_nacimiento, Pais_origen)
VALUES ('Stephen Edwin', 'King', 'Richard Bachman', 'M', '1947-09-27', 'United States'),
('Joanne','Rowling', ' J.K Rowling', 'F', '1947-09-27','United Kingdom');
INSERT INTO libros(autor_id, titulo, fecha_publicacion)
VALUES (1, 'Carrie','1974-01-01'),
(1, 'El misterio de salmes lot','1975-01-01'),
(1, 'El resplando','1977-01-01'),
(2, 'Harry Potter y la piedra filosofal', '1997-06-30'),
(2, 'Harry Potter y la camara secreta', '1998-07-2'),
(2, 'Harry Potter y el prisionero de azkaban', '1999-07-8'),
(2, 'Harry Potter y el Caliz de fuego', '2000-03-20'),
(2, 'Harry Potter y a orden de fenix','2003-06-21'),
(2, 'Harry Potter y el misterio del principe','2005-06-16'),
(2, 'Harry Potter y la reliquias de la muerte', '2007-07-21');
SELECT*FROM autores;
SELECT*FROM libros;
ME SALE ESTE ERROR
Database changed
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'de creacion DATETIME DEFAULT current_timestamp
)' at line 9
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
autor_id INT UNSIGNED NOT NULL,
titu' at line 2
ERROR 1146 (42S02): Table 'libreria_cf.autores' doesn't exist
ERROR 1146 (42S02): Table 'libreria_cf.libros' doesn't exist
ERROR 1146 (42S02): Table 'libreria_cf.autores' doesn't exist
ERROR 1146 (42S02): Table 'libreria_cf.libros' doesn't exist
Clase 26