No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Playground: Manejo de Tablas con SQL

14/34

Aportes 21

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Mi solución:

-- ALTER
ALTER TABLE asignaturas
DROP COLUMN hora_de_salida;

ALTER TABLE asignaturas
ADD COLUMN hora_de_entrega TIMESTAMP NOT NULL;

-- CREATE
CREATE TABLE estudiantes (
  `id` INT  NOT NULL,
  `nombre` VARCHAR(255) NOT NULL,
  `asignatura_id` INT NOT NULL,
  PRIMARY KEY (id),
  CONSTRAINT `estudiantes_asignatura_id_foreign`
  FOREIGN KEY (asignatura_id) REFERENCES asignaturas(id)
)

.
.
.
.
.
.
.
.
.

-- Eliminar columna hora_de_salida
ALTER TABLE asignaturas
DROP COLUMN hora_de_salida;

-- Agregar columna hora_de_entrega
ALTER TABLE asignaturas
ADD hora_de_entrega TIMESTAMP NOT NULL;

CREATE TABLE estudiantes (
    id INT NOT NULL,
    nombre VARCHAR(255) NOT NULL,
    asignatura_id INT NOT NULL,
    PRIMARY KEY (id),
    CONSTRAINT asignatura_id_foreign
    FOREIGN KEY (asignatura_id) REFERENCES asignaturas(id)
);



SELECT * FROM asignaturas;
SELECT * FROM estudiantes;


Esta es mi solución

-- Escribe tu ejercicio aquí 👇
SELECT * FROM asignaturas;

-- First problem
ALTER TABLE asignaturas 
DROP COLUMN hora_de_salida;

ALTER TABLE asignaturas
ADD hora_de_entrega TIMESTAMP NOT NULL; 

SELECT * FROM asignaturas;

-- Second problem

CREATE TABLE 'estudiantes' (
  'id' INT NOT NULL,
  'nombre' VARCHAR(255) NOT NULL,
  'asignatura_id' INT NOT NULL,

  PRIMARY KEY ('id'),

  CONSTRAINT 'estudiantes_asignaturas_id_foreign'
  FOREIGN KEY ('id') REFERENCES 'asignaturas' ('id') 
);

SELECT * FROM estudiantes;

`-- Escribe tu ejercicio aquí 👇ALTER TABLE asignaturas DROP COLUMN hora_de_salida;` `ALTER TABLE asignaturas ADD COLUMN hora_de_entrega TIMESTAMP NOT NULL;` `CREATE TABLE estudiantes (  id INT NOT NULL PRIMARY KEY,   nombre VARCHAR(255) NOT NULL,   asignatura_id INT NOT NULL,   CONSTRAINT asignatura_id_foreign   FOREIGN KEY(asignatura_id) REFERENCES asignaturas(id));` `SELECT * FROM asignaturas;SELECT * FROM estudiantes;` Perdi mis 3 vidas por no darme cuenta que nombre no tenia "NOT NULL"
Aquí me solución ![](https://static.platzi.com/media/user_upload/image-87dc2332-2760-4c3a-ab70-c4dddfcaf3c1.jpg)
\-- Escribe tu ejercicio aquí 👇SELECT \* FROM asignaturas;ALTER TABLE 'asignaturas'DROP COLUMN 'hora\_de\_salida';ALTER TABLE 'asignaturas'ADD COLUMN 'hora\_de\_entrega';SELECT \* FROM asignaturas; CREATE TABLE 'estudiantes'('id' INT NOT NULL,'nombre' VARCHAR(255),'asignatura\_id' INT NOT NULL, PRIMARY KEY (id),CONSTRAINT `asignatura\_id\_foreign` FOREIGN KEY (`asignatura\_id`) REFERENCES `asignaturas` (`id`)); SELECT \* FROM estudiantes;

No lea esto amenos de que se haya rendido:

-- Escribe tu ejercicio aquí 👇
ALTER TABLE asignaturas
ADD hora_de_entrega TIMESTAMP NOT NULL;

ALTER TABLE asignaturas
DROP hora_de_salida;

CREATE TABLE estudiantes (
  id INT NOT NULL,
  nombre VARCHAR(255) NOT NULL,
  asignatura_id INT NOT NULL,
  PRIMARY KEY (id),
  CONSTRAINT asignatura_id_foreign
  FOREIGN KEY (asignatura_id) REFERENCES asignaturas
);

SELECT * FROM asignaturas;
SELECT * FROM estudiantes;
![](https://static.platzi.com/media/user_upload/image-6e981c34-461b-4a86-96b1-8b156c77ed5a.jpg)
![](https://static.platzi.com/media/user_upload/image-6462de0c-5546-43bb-b9c5-1410b8f21143.jpg)

🍃 Luego de varias pruebas, me quedó así:


-- ALTER
ALTER TABLE `asignaturas`
DROP COLUMN `hora_de_salida`;

ALTER TABLE `asignaturas`
ADD COLUMN `hora_de_entrega` TIMESTAMP NOT NULL;

-- CREATE
CREATE TABLE `estudiantes` (
    `id` INT NOT NULL,
    `nombre` VARCHAR(255) NOT NULL,
    `asignatura_id` INT NOT NULL,
    
    PRIMARY KEY (id),
    CONSTRAINT `fk_asignatura_id` FOREIGN KEY (`asignatura_id`) REFERENCES `asignaturas`(`id`)
);

Les dejo mi solución al reto. Al principio escribí INTEGER y había dejado el SELECT * FROM asignaturas, pero me dio incorrecto, señalando que se escribía INT y lo cambié; y también marcó que el SELECT tenía error, por lo que lo puse hasta el final y añadí el otro SELECT. Solo así las pruebas corrieron exitosamente.

-- ALTER
ALTER TABLE asignaturas
ADD hora_de_entrega TIMESTAMP NOT NULL;

ALTER TABLE asignaturas
DROP hora_de_salida;

-- CREATE
CREATE TABLE estudiantes (
  id INT NOT NULL,
  nombre VARCHAR(255) NOT NULL,
  asignatura_id INT NOT NULL,
  PRIMARY KEY (id),
  CONSTRAINT asignatura_id_foreign
  FOREIGN KEY (asignatura_id) REFERENCES asignaturas
);

SELECT * FROM asignaturas;
SELECT * FROM estudiantes;

ALTER TABLE asignaturasDROP COLUMN hora\_de\_salida; ALTER TABLE asignaturasADD hora\_de\_entrega TIMESTAMP NOT NULL; CREATE TABLE `estudiantes` ( `id` INT NOT NULL, `nombre` VARCHAR(255) NOT NULL, `asignatura\_id` INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (asignatura\_id) REFERENCES `aisgnaturas`(`id`))
La solución propuesta: ```txt --query 'asignaturas' table SELECT * FROM asignaturas; --Resolving problem one ALTER TABLE asignaturas ADD hora_de_entrega TIMESTAMP NOT NULL; ALTER TABLE asignaturas DROP hora_de_salida; --Resolving prblem two CREATE TABLE estudiantes( id INT NOT NULL, nombre VARCHAR(255) NOT NULL, asignatura_id INT NOT NULL, PRIMARY KEY (id), CONSTRAINT asignatura_id_foreign FOREIGN KEY (asignatura_id) REFERENCES asignaturas ); --query updated tables SELECT * FROM asignaturas; SELECT * FROM estudiantes; ```
ALTER TABLE asignaturasDROP COLUMN hora\_de\_salida; ALTER TABLE asignaturasADD  COLUMN hora\_de\_entrega TIMESTAMP NOT NULL; SELECT \* FROM asignaturas \--Crea una tabla estudiantes con las columnas id (llave primaria de tipo entero), --nombre (de tipo VARCHAR con máximo 255 carácteres) y --asignatura\_id (llave foranea de tipo entero que haga referencia a la columna id de la tabla asignaturas). CREATE TABLE `estudiantes` (     `id` INT NOT NULL,    `nombre` VARCHAR(255) NOT NULL,    `asignatura\_id` INT NOT NULL,     PRIMARY KEY (id),   CONSTRAINT  'estudiantes\_asignaturas\_id\_foreign'  FOREIGN KEY ('id') REFERENCES 'asignaturas' ('ID'));   SELECT \* FROM estudiantes
CREATE TABLE `estudiantes` (     `id` BIGINT(20) UNSIGNED NOT NULL AUTO\_INCREMENT,    `nombre` VARCHAR(255) NOT NULL,    `asignatura\_id` INT NOT NULL,     PRIMARY KEY (id),   CONSTRAINT asignatura\_id\_foreign  FOREIGN KEY (asignatura\_id) REFERENCES asignaturas)DEFAULT CHARSET = utf8mb4COLLATE=utf8mb4\_unicode\_ci; SELECT \* FROM asignaturas;CREATE TABLE `estudiantes` (     `id` INT NOT NULL,    `nombre` VARCHAR(255) NOT NULL,    `asignatura\_id` INT NOT NULL,     PRIMARY KEY (id),   CONSTRAINT asignatura\_id\_foreign  FOREIGN KEY (asignatura\_id) REFERENCES asignaturas
SELECT * FROM asignaturas;

alter table `asignaturas`
DROP COLUMN titulo;



-- Escribe tu ejercicio aquí 👇
SELECT * FROM asignaturas;
**-- 1**
--eliminar la columna hora_de_salida
ALTER TABLE asignaturas
DROP COLUMN hora_de_salida;

--añadir una hora_de_entrega de tipo fecha y hora y NOT NULL
ALTER TABLE asignaturas ADD hora_de_entrega TIMESTAMP NOT NULL;

SELECT * FROM asignaturas;


/***2**
Crea una tabla estudiantes con las columnas 
id (llave primaria de tipo entero), 
nombre (de tipo VARCHAR con máximo 255 carácteres)
asignatura_id (llave foranea de tipo entero 
que haga referencia a la columna id de la tabla asignaturas).
*/
CREATE TABLE estudiantes(
id int not null primary key,
nombre varchar(255),
asignatura_id int not null,
CONSTRAINT asignatura_id_foreign ,
FOREIGN KEY (asignatura_id) REFERENCES asignaturas(id)
);

SELECT * FROM asignaturas;
SELECT * FROM estudiantes;

SELECT * FROM asignaturas;

ALTER TABLE asignaturas
DROP COLUMN hora_de_salida;

ALTER TABLE asignaturas
ADD COLUMN hora_de_entrega TIMESTAMP NOT NULL;

CREATE TABLE estudiantes(
id INT,
nombre VARCHAR(255),
asignatura_id INT,

PRIMARY KEY (id),
CONSTRAINT estudiantes_asignaturas_id_foreign,
FOREIGN KEY (asignatura_id) REFERENCES asignaturas (asignatura_id)
)

El simulador no acepta BIGINT y tampoco acepta UNSIGNED. Se debe corregir eso.

– Escribe tu ejercicio aquí 👇
SELECT * FROM asignaturas;
ALTER TABLE asignaturas DROP COLUMN hora_de_salida;
ALTER TABLE asignaturas ADD hora_de_entrega TIMESTAMP NOT NULL;
CREATE TABLE estudiantes(
id INT,
nombre VARCHAR(255),
asignatura_id INT,
PRIMARY KEY(id),
CONSTRAINT estudiantes_asignatura_id_foreign
FOREIGN KEY(asignatura_id)
REFERENCES asignatura(id)
)

mi solucion

-- Eliminar la columna hora_de_salida
ALTER TABLE asignaturas
DROP COLUMN hora_de_salida;

-- Añadir la columna hora_de_entrega
ALTER TABLE asignaturas
ADD hora_de_entrega DATETIME NOT NULL;


CREATE TABLE estudiantes (
  id INT NOT NULL, PRIMARY KEY,
  nombre VARCHAR(255),
  asignatura_id INT,
  FOREIGN KEY (asignatura_id) REFERENCES asignaturas(id)
);
undefined