Bienvenida conceptos básicos y contexto histórico de las Bases de Datos

1

Bienvenida conceptos básicos y contexto histórico de las Bases de Datos

2

Playground: tu primera consulta en bases de datos

Introducción a las bases de datos relacionales

3

Historia de las bases de datos relacionales

4

Qué son entidades y atributos

5

Entidades de Platzi Blog

6

Relaciones

7

Múltiples muchos

8

Diagrama ER

9

Diagrama Físico: tipos de datos y constraints

10

Diagrama Físico: normalización

11

Formas normales en Bases de Datos relacionales

12

Diagrama Físico: normalizando Platziblog

RDBMS (MySQL) o cómo hacer lo anterior de manera práctica

13

¿Qué es RDB y RDBMS?

14

Instalación local de un RDBMS (Windows)

15

Instalación local de un RDBMS (Mac)

16

Instalación local de un RDBMS (Ubuntu)

17

Clientes gráficos

18

Servicios administrados

SQL hasta en la sopa

19

Historia de SQL

20

DDL create

21

Playground: CREATE TABLE

22

CREATE VIEW y DDL ALTER

23

DDL drop

24

Playground: VIEW, ALTER y DROP en SQL

25

DML

26

Playground: CRUD con SQL

27

¿Qué tan standard es SQL?

28

Creando Platziblog: tablas independientes

29

Creando Platziblog: tablas dependientes

30

Creando Platziblog: tablas transitivas

Consultas a una base de datos

31

¿Por qué las consultas son tan importantes?

32

Estructura básica de un Query

33

SELECT

34

Playground: SELECT en SQL

35

FROM y SQL JOINs

36

Utilizando la sentencia FROM

37

Playground: FROM y LEFT JOIN en SQL

38

WHERE

39

Utilizando la sentencia WHERE nulo y no nulo

40

Playground: Filtrando Datos con WHERE

41

GROUP BY

42

ORDER BY y HAVING

43

Playground: Agrupamiento y Ordenamiento de Datos

44

El interminable agujero de conejo (Nested queries)

45

¿Cómo convertir una pregunta en un query SQL?

46

Preguntándole a la base de datos

47

Consultando PlatziBlog

48

Playground: Prueba Final con PlatziBlog

Introducción a la bases de datos NO relacionales

49

¿Qué son y cuáles son los tipos de bases de datos no relacionales?

50

Servicios administrados y jerarquía de datos

Manejo de modelos de datos en bases de datos no relacionales

51

Top level collection con Firebase

52

Creando y borrando documentos en Firestore

53

Colecciones vs subcolecciones

54

Recreando Platziblog

55

Construyendo Platziblog en Firestore

56

Proyecto final: transformando tu proyecto en una db no relacional

Bases de datos en la vida real

57

Bases de datos en la vida real

58

Big Data

59

Data warehouse

60

Data mining

61

ETL

62

Business intelligence

63

Machine Learning

64

Data Science

65

¿Por qué aprender bases de datos hoy?

Bonus

66

Bases de datos relacionales vs no relacionales

67

Elegir una base de datos

No tienes acceso a esta clase

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

CREATE VIEW y DDL ALTER

22/67
Recursos

Para agregar la vista de clientes, puedes usar el siguiente código desde la pestaña query 1:

INSERT INTO `platziblog`.`people` (`person_id`, `last_name`, `first_name`, `address`, `city`) 
VALUES ('1', 'Vásquez', 'Israel', 'Calle Famosa Num 1', 'México'),
	       ('2', 'Hernández', 'Mónica', 'Reforma 222', 'México'),
	       ('3', 'Alanis', 'Edgar', 'Central 1', 'Monterrey');

Aportes 283

Preguntas 84

Ordenar por:

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

Para los que quieren realizar el ejercicio de vista, vayan a la pestaña Query 1 y ejecuten el siguiente código.

INSERT INTO `platziblog`.`people` (`person_id`, `last_name`, `first_name`, `address`, `city`) 
VALUES ('1', 'Vásquez', 'Israel', 'Calle Famosa Num 1', 'México'),
	       ('2', 'Hernández', 'Mónica', 'Reforma 222', 'México'),
	       ('3', 'Alanis', 'Edgar', 'Central 1', 'Monterrey');

Acuerdate!
Las tablas = Entidades…
Las columnas = Atributos…

Las vista se usan como una capa de seguridad dentro de las organizaciones. por ejemplo: una tabla trabajador tiene todos los datos de una persona (numero de identificación, numero telefonico, dirección, y otros datos que pueden ser sensibles), el administrador de la base de datos lo que hace es crear vistas solo con los datos que son relevantes para consultas en las distintas areas de la empresas sin exponer información de mas.

Ejercicio

DELETE FROM people; -- Elimina la información dentro de la tabla.
ALTER TABLE people AUTO_INCREMENT = 1 ; -- Reinicia el autoincrement a 1
INSERT INTO people (last_name,first_name,address,city)VALUES('Vázquez', 'Israel','Calle Famosa Num 1','México'),
('Hernández','Mónica','Reforma 222','México'),
('Alanis','Edgar','Central 1', 'Monterrey'); -- Insertar datos a la tabla

CREATE OR REPLACE VIEW platzi_people AS -- Crear vista
SELECT * FROM people;

select * from platzi_people; -- consultar vista

ALTER TABLE people ADD COLUMN date_of_birth DATETIME NULL AFTER city; -- Agregar columna
DESCRIBE people;
ALTER TABLE people DROP COLUMN date_of_birth; -- Eliminar columna
DESCRIBE people;

Si tienes un error al querer hacer una sentencia UPDATE o DELETE ejecuta
SET SQL_SAFE_UPDATES=0;

**Les comparto mis apuntes ❤️ **

Para prácticar con lo datos:

INSERT INTO people (last_name, first_name, address, city) 
VALUES ("Vásquez", "Israel", "Calle Famosa Num 1", "México"),
		("Hernández", "Mónica", "Reforma 222", "México"),
        ("Alanís", "Edgar", "Central 1", "Monterrey");

**Views **
- Toman datos de la base de datos, las ordenan de manera presentable, y las convierten en algo consultable recurrentemente.
- Se crea con _CREATE VIEW _ (nombreDeLaVista) AS
SELECT… (por ej. FROM platziblog.people, es decir de cada persona de platziblog -> hacer algo, por ejemplo, trabajar con un atributo, o filtrarla, etc.).
- En el Workbench, se hace click derecho en Views -> Create View, y luego va la sentencia de arriba.
Alter
- ALTER TABLE: nos permite modificar nuestra tabla. Para hacerlo en el Workbench, luego de crear la tabla, hacemos click derecho en ella -> Alter Table. Alli podremos añadir o quitar atributos, constraints, etc.
Drop
- Nos permite eliminar datos. En el Workbench, para eliminar una columna, la seleccionamos con el click derecho -> Delete selected.
- Para eliminar una tabla: DROP TABLE (nombreDeLaTabla);
- Para eliminar una base de datos: DROP DATABASE (nombreDeLaBdD);

  • Podemos observar que el Workbench se encarga de escribir el codigo por nosotros una vez dadas las instrucciones.

Para quienes quieran agregar datos a su base de datos aquí les dejo el Query:

INSERT INTO platziblog.people
(
last_name,
first_name,
address,
city)
VALUES
(
“Santamaría”,
“Daniel”,
“Calle 32”,
“Francia”);

Me hubiese gustado que el flujo de aprendizaje vaya primero en meter datos a nuestras tablas y luego con la idea de cómo deseamos obtener las vistas de esta tabla pasar aprender create view

No comprendo por que se salta los pasos, íbamos a la par pero mágicamente ya hay datos creados, al menos yo que soy novatos quede completamente perdido

Apuntes:
Una vista es una consulta presentada mediante la estructura de una tabla (filas y columnas) y en ellas solo se almacena la definición, mas no los datos. Una vista esta especificada a través de una consulta, es decir, un SELECT.

Para los que usan mysql desde la consola y necesitan ayuda sobre un comando, simplemente escriben:

help nombre_comando

Les mostrará toda la información del comando consultado, incluido algunos ejemplos.

Nota: Esta en inglés la documentación

Codigo de la clase

CREATE  OR REPLACE VIEW platzi_people AS 
SELECT * FROM people;
select * from platzi_people;
ALTER TABLE people ADD COLUMN date_of_birth DATETIME NULL AFTER city; 
SELECT * FROM people;
DESCRIBE people;
ALTER TABLE people DROP COLUMN date_of_birth; 
DESCRIBE people;
SELECT * FROM people;

Una vista es una tabla virtual basada en el resultado de una consulta (SELECT) a una tabla. Cada vez que un usuario pregunta o consulta una vista, el sistema de base de datos, actualiza los datos de la vista, para mostrar siempre datos reales.

No se porque me tarde tanto en iniciar a aprender sobre base de datos.

Script para que creen las personas:

INSERT INTO `platziblog`.`people` (`last_name`, `first_name`, `adress`, `city`) VALUES ('Vázquez', 'Isrrael', 'Calle Famosa Num 1', 'México');
INSERT INTO `platziblog`.`people` (`last_name`, `first_name`, `adress`, `city`) VALUES ('Hernandéz', 'Mónica', 'Reforma 222', 'México');
INSERT INTO `platziblog`.`people` (`last_name`, `first_name`, `adress`, `city`) VALUES ('Alanís', 'Edgar', 'Central 1', 'Monterrey');```

aporte sobre la clase…

/*utilizacion de alter*/

/*insercion de colomna a la tabla*/
alter table people 
add column date_of_birth datetime null after city;

/*altera el tipo de dato de una columna*/
ALTER TABLE platziblog.people 
CHANGE COLUMN date_of_birth date_of_birth VARCHAR(30) NULL DEFAULT NULL;

/*elimina la columna*/
ALTER TABLE platziblog.people 
DROP COLUMN date_of_birth;```

Para seguir la convención debería haber sido ‘v_platzi_people’

Views o vistas
Tienen que ver con un concepto muy útil y utilizaremos la cláusula SELECT.

Las vistas lo que hacen; es tomar datos de la BBDD, los hacen presentables, y los convierten en algo que podamos consultar frecuentemente.

Código por comando para crear una vista.

“ CREATE VIEW (seguido del nombre que le queremos asignar a nuestra view, que usualmente por convención, empieza por “v”, podríamos considerarlo una buena práctica) v_brasil_customers AS (en este caso el nombre de nuestra vista indica que nos mostrará los clientes de Brasil) (A continuación la sentencia para seleccionar los elementos que queremos extraer de nuestra BBDD) SELECT customer_name, (Nombre del cliente que puede ser un campo previo dentro de una tabla que se llama “custormers” o clientes) contact_name (un nombre de contacto, que también es un campo, de una tabla, (Si alguien se pregunta por qué dos nombres, tal vez es porque hace parte de las políticas de la empresa; que el nombre real, sea diferente del que se utiliza para referirse a él)
FROM (Clausula SQL que indica desde que tabla de la BBDD se extraen los datos) customers
WHERE (Otra clausula e indica una condición, que en este caso sería que solo queremos que nos muestre los clientes de Brasil) country = “Brasil”; ”

EN SINTESIS
“ CREATE VIEW v_brasil_customers AS
SELECT customers_name, contact_name
FROM customers
WHERE country = “Brasil” ; ”

P.D: Desde mi experiencia los commandos normalmente se escribend e forma lineal, sin embargo supongo que acá se pone de manera jerarquizada (unos arriba de otros por cuestiones de facilidad)

Para insertar datos a la tabla people

insert into people(last_name, first_name, adress, city) values 
('Perez', 'Pepito', 'Calle 1', 'Venezuela');

Son interesante el uso de las vistas y pueden ser muy útiles, sin embargo, me parece que hay que tener cuidado en no abusar de ellas, me parece que puede darse para que existan muchas duplicaciones de código, además, si cambia alguna regla de negocio, pueden quedar desactualizadas las vistas. En un lugar donde trabajé tenían muchas vistas, y era una pesadilla.

De todas maneras, me parece interesante aprender bien sobre el tema!

Muy bien explicado, pero seria bueno que muestren como ingresar datos y poder realizar las practicas con los datos

La CREATE VIEWdeclaración crea una nueva vista, o reemplaza una vista existente si se proporciona la OR REPLACEcláusula. Si la vista no existe, CREATE OR REPLACE VIEWes lo mismo que CREATE VIEW. Si la vista existe, la CREATE OR REPLACE VIEWreemplaza.

Para obtener información sobre las restricciones en el uso de la vista, consulte la Sección 24.9, “Restricciones en las vistas” .

La select_statementes una SELECTdeclaración que proporciona la definición de la vista. (Al seleccionar de la vista, se selecciona, en efecto, el uso de la SELECT declaración). Se select_statementpuede seleccionar de las tablas base, otras vistas. A partir de MySQL 8.0.19, la SELECTdeclaración puede usar una VALUESdeclaración como fuente, o puede reemplazarse por una TABLE declaración, como con CREATE TABLE … SELECT.

La definición de vista está " congelada " en el momento de la creación y no se ve afectada por los cambios posteriores en las definiciones de las tablas subyacentes. Por ejemplo, si una vista se define como SELECT *en una tabla, las nuevas columnas agregadas a la tabla más adelante no se convierten en parte de la vista, y las columnas que se caen de la tabla darán lugar a un error al seleccionar desde la vista.

Hola, utilizando las sintaxis comentadas aquí para agregar valores a mi tabla, el sistema me mostraba un error pero no sabía cual era.
Así que voy a pasar la sintaxis que me funciono.

INSERT INTO`people` (`person_id`, `last_name`, `first_name`, `address`, `city`) 
VALUES ('1', 'Vasquez', 'Israel', 'Calle Famosa,1', 'Mexico');

para insertar datos a la tabla

insert into <nombre de tabla> (columna1, columna2, columna3) values ('valor1', 'valor2', 'valor3');

COLUMNA1 = VALOR1
COLUMNA2 = VALOR2
COLUMNA3 = VALOR3

insert into people (last_name, first_name, address, city) values ('Pérez', 'Juan', 'Reforma 1080', 'CDMX');
insert into people (last_name, first_name, address, city) values ('López', 'Pedro', 'Revolución 900', 'CDMX');
insert into people (last_name, first_name, address, city) values ('Medina', 'Laura', 'Insurgentes 1300', 'CDMX');

y para seleccionar la tabla

select * from people

Realmente es increíble como explica, en serio es un gran curso 😁

Deberían explicar en el video como agrego los datos a la tabla, para poder seguirlo en la practica

me parece importante la convención de iniciar el nombre de una vista con v, aunque muchos manejadores de bases de datos te indican cuando se trata de una vista, que exista una nomenclatura genera buenas prácticas.

La herramienta workbench facilita el trabajo

En vez de usar “Alter Column” use “Modify Column”, por que la primera no me la dejo usar.

hola! parece que no me dejo hacer la instalación bien. no me deja abrir ese panel.

Es decir, en resumen, un View sirve para resumir una consulta que hagamos de manera recurrente.

En una empresa en la que trabajé se usaban las vistas para consultar datos de schemas diferentes. Por ejemplo: existían los schemas: Contabilidad y Tesorería y dentro de Tesorería había una vista a una tabla del schema de Contabilidad.

¿Esto esta bien?

crear vistas en un proyecto que tuve en la universidad hubiera funcionado de maravilla ya que algunas tablas que yo mostraba con HTML5 se hacian tomando informacion de varias tablas

seria genial ejecutarlo mediante codigo sql y no con interfaz!😄

Que excelente profesor! estoy aprendiendo un montón con todo el curso 😄

Comparto como agregue datos a la tabla vacía para poder hacer el ejercicio de crear una view

Encontre 2 formas:
Con hacer doble click en los campos vacios

Con la opción de Form Editor

La secuencia VIEW sirve para generar informes como Access, donde la información queda almacena y se puede consultar más adelante sin la necesidad de hacer una consulta.

Pueden utilizar estos datos para llenar su tabla, lo copian y lo pegan en la pestaña Query 1 y le dan en el rayo que es ejecutar.

INSERT INTO `platziblog`.`people` (`person_id`, `last_name`, `first_name`, `address`, `city`) 
VALUES ('1', 'Zuluaga', 'Sebastian', 'Calle 1 #20.03', 'Manizales'),
	       ('2', 'Lopez', 'Etefania', 'cl 17#7-21', 'pereira'),
	       ('3', 'Angulo', 'Andres', 'cr2 #19-04', 'Armenia');

Tengo una duda:
En la universidad existía mucha presión para aprender a hacer esto con puro código y no de forma gráfica, ¿Realmente eso afecta en algo al aprendizaje a largo plazo? O a nivel laboral.

Aquí acabé de hacer la consulta que se nos muestra en el material de apoyo

CREATE VIEW `v_costumers_mexico` AS
SELECT last_name, first_name
FROM platzi_test.people
WHERE city = "México"```

Excelente, las vistas son realmente muy útiles para mostar solo la información relevante.

Para vistas: v[Nombre]
Para tablas: t
[nombre]
Para rpocedures: p_[nombre]

Suelo utilizar mucho esas convenciones.

para tener en cuenta: los datos de las columnas se agregan con el comando INSERT INTO “(nombre de la base de datos)”. “(nombre de la tabla)”. etc

Para los que no les aparezca la nueva tabla y vista al crearla. Den en la misma click derecho y refrescar.

MySQL Workbench facilita mucho la creación y modificación de objetos en las bases de datos MySQL.

CREATE SCHEMA ‘platziblog’ DEFAULT CHARACTER SET utf8;
SCHEMA = DATABASE

CREATE TABLE `platziblog`.`people` (
  `person_id` INT NOT NULL AUTO_INCREMENT,
  `last_name` VARCHAR(255) NULL,
  `first_name` VARCHAR(255) NULL,
  `address` VARCHAR(255) NULL,
  `city` VARCHAR(255) NULL,
  PRIMARY KEY (`person_id`));

USE `platziblog`;
CREATE  OR REPLACE VIEW `v_plazi_people` AS
SELECT * FROM platziblog.people;
ALTER TABLE `platziblog`.`people` 
ADD COLUMN `date_of_birth` DATETIME NULL AFTER `city`;

ALTER TABLE `platziblog`.`people` 
CHANGE COLUMN `date_of_birth` `date_of_birth` VARCHAR(30) NULL DEFAULT NULL ;

ALTER TABLE `platziblog`.`people` 
DROP COLUMN `date_of_birth`;

No se si a todos les paso, pero el alterar una columna por medio de codigo no me funciona con el alter column sino change column

ALTER TABLE platziblog.people
CHANGE COLUMN date_of_brith año_nacimiento datetime;

Existe un definición que me gusta mucho para las “views” que son tablas virtuales, es decir, no son tablas físicas como tal, sino que son consultas, normalmente complejas, que se crean para simplificar la forma en como accedemos a cierta información de nuestro interés.
Ejemplo: tomando el caso de Platziblog, una vista que nos ayudaría mucho sería cuando queremos consultar todos los posts que han sido creados por cierto usuario y que además corresponden a cierta categoría y tienen
"x" cantidad de comentarios.

Hasta ahora ha sido de gran ayuda el contenido de este curso, de pura casualidad en un proyecto de hace 3 meses use workbench sin haberlo usado nunca antes, de manera intuitiva saque adelante el tema de la base de datos, pero ya con la explicacion a detalle que maravilla!

Para los que quieran hacer el ejercicio, copien esto en query1

INSERT INTO `platziblog`.`people` (`person_id`, `last_name`, `first_name`, `address`, `city`) 
VALUES ('1', 'Vásquez', 'Israel', 'Calle Famosa Num 1', 'México'),
	       ('2', 'Hernández', 'Mónica', 'Reforma 222', 'México'),
	       ('3', 'Alanis', 'Edgar', 'Central 1', 'Monterrey');
<+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| person_id  | int          | NO   | PRI | NULL    | auto_increment |
| last_name  | varchar(255) | YES  |     | NULL    |                |
| firts_name | varchar(255) | YES  |     | NULL    |                |
| address    | varchar(255) | YES  |     | NULL    |                |
| city       | varchar(255) | YES  |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+>

Gran clase:

Para los que tuvieron inconvenientes ingresando los datos en la tabla y no lo pudieron visualizar en View

En la tabla que estan trabajando en el apartado Result Grid, ahí pueden ingresar todos los datos que necesitan (todas las columnas o atributos).

Después IMPORTANTE, dar clic en Apply. Aparecerá el código que indica como se agregará dicha información a la tabla, dar clic en aceptar y listo.

¿Cuál es la diferencia entre el DATETIME y DATETIME()? de primeras estaba poniendo el que tiene los paréntesis y me marcaba error 😅

crear una vista

CREATE OR REPLACE VIEW v_people AS SELECT * FROM PEOPLE;

Nota: si no aparece la vista al momento de crearla, dar clic derecho sobre la DB (Data Base) y dar clic sobre refresh all (actualizar) para que se muestren los cambios.

Cualquier feedback es bienvenido

Clase ALTER empieza en el minuto 6:10.

Hola. Ojala en los siguientes vídeos, se creara todo lo que estamos viendo por medio de código SQL.

DDL alter
Los Views toman datos de la base de datos, los hacen presentables y los convierten en algo que podamos consultar de manera recurrente.

Todo es muy sencillo gráficamente.

NOTA: Estructura para crear vistas

CREAT VIEW nombre_vista AS
Select column1,column2
FROM tabla1
WHERE column3>0;

Views:
Toman datos de una o varias tablas de la base de datos y crean una presentación con la información relevante a presentar

Sintaxis de creación de vistas:

CRATE OR REPLACE VIEW 'v_<nombre de vista>' AS .... (SELECT FROM WHERE)

Alter:
Sintaxis para alterar (modificar) una tabla (agregar columna):

ALTER TABLE '<nombre_base_datos>'.'<nombre_tabla>'
ADD COLUMN <nombre_columna> <constrains_columna> AFTER <columna_referencia>;

DROP
Ejemplo eliminar columna

ALTER TABLE '<nombre_base_datos>'.'<nombre_tabla>'
DROP COLUMN <nombre_columna> 

No olviden que también tenemos el lado de codear SQL jeje!

-- CREACION DE UNA VISTA
-- PARA PROYECCION DE DATOS DE UNA MANERA SENCILLA Y ESTRUCTURADA
CREATE VIEW platzi_people AS
SELECT * FROM people; 

-- COMANDOS ALTER
-- PARA AÑADIR UNA COLUMNA NUEVA
ALTER TABLE people ADD COLUMN date_of_birth datetime after city;

-- PARA CAMBIAR EL TIPO DE DATO DE LA COLUMNA
ALTER TABLE people CHANGE COLUMN date_of_birth date_of_birth VARCHAR(30) NOT NULL;

-- PARA BORRAR UNA COLUMNA
ALTER TABLE people DROP COLUMN date_of_birth;

Básicamente un View es un shorthand para un código muy largo, es decir, podemos escribir un código SQL muy largo y para no estarlo repitiendo podemos guardarlo en un View, la ventaja de esto es que ejecutando nuestro View podemos replicar esa sentencia SQL guardada:D!

Y esto es algo que me gusta de los clientes gráficos, te permiten hacer revisiones y simular comportamientos antes de ejecutar realmente la consulta, de esa manera nos evitamos hacer un drop por error jaja

Para no tener que estar metiendo el id (recordemos que es incrementable), en el video anterior dejé mi aporte de cómo tengo la tabla

<insert into `people`(nombre, apellido, direccion, ciudad) values('Pablo', 'Perez Mendoza', 'Club campestre', 'Distiro federal');> 

A mi no me sirvió el código, me tocó quitarle algunas comillas, aquí se los dejo:

INSERT INTO platziblog.people (person_id, last_name, first_name, address, city)
VALUES (1, ‘Vásquez’, ‘Israel’, ‘Calle Famosa Num 1’, ‘México’),
(2, ‘Hernández’, ‘Mónica’, ‘Reforma 222’, ‘México’),
(3, ‘Alanis’, ‘Edgar’, ‘Central 1’, ‘Monterrey’);

Hasta ahorita me gusta mucho el curso. Estoy entendiendo.

VIEW sirve para representar los datos que necesitamos, hacer un consulta especifica y se identifica las vistas con una v al principio del nombre.

CREATE
ALTER
DROP

En que momento ingresa los datos?

Es muy buena la explicación, pero debería enseñar o centrarse en los scripts.

¿en que momento llenaste las tablas?

  • View o vistas: Tiene que ver con los selects o proyecciones.
  • Toma datos de la base de datos, los pone en una forma presentable y lo convierte en algo que se pueda consultar de manera recurrente.
  • CREATE VIEW: Permite crear una vista de una tabla, o de datos específicos que necesite. A su vez, me permite unir varias tablas sí así lo requiero.
  • ALTER: Me permite modificar una tabla añadiendo nuevas columnas con diferentes tipos de constraints o también borrar columnas.

en DBeaver es un poco mas complicado

alter table people
add column date_of_birth datetime null after city;

Si se preguntan para que es el AFTER; es una acción a realizar después una operación como insertar, actualizar, eliminar.

Por si alguien necesita los datos:

insert into people(last_name,first_name,address,city) values("Vázquez","Israel","Calle Famosa Num 1","México"),
("Hernández","Mónica","Reforma 222","México"),
("Alanís","Edgar","Central 1","Monterrey");

Una vez que se agregó la columna, podemos agregar datos a la columna de una fila en específico de la siguiente manera:

UPDATE people SET date_of_birth = '1980-03-29' WHERE person_id = 2;

CREATE VIEW Y DDL ALTER

Tienen que ver la toma de datos de la DB y ponerlos de una forma presentable para poder verlos recurrentemente.

Comando

CREATE VIEW v_brasil_customers AS 
	SELECT customer_name,contact_name
	FROM customers
	WHERE country = 'Brasil';

Cuando se crea una vista, se pone el prefijo v como buena practica para agrupar estos datos.

USE `platzi_blog`;
CREATE  OR REPLACE VIEW `platzi_people` AS
SELECT * FROM platzi_blog.people;;

Al crear una vista se debe ingresar el nombre de la misma, además, ponerle una sentencia para mostrar los datos. En este caso, se selecciona a las personas de la tabla people .

Alter Table

Permite modificar elementos de la base de datos

Comando

ALTER TABLE people
ADD date_of_bith date;

ALTER TABLE people
ALTER COLUMN date_of_birth year;

ALTER TABLE people
DROP COLUMN date_of_birth;

Cuando se va a cambiar un elemento de alguna columna, también puede ser escrito como CHANGE COLUMNdate_of_birthdate_of_birthDATE

Que suerte tiene Mónica, todavía de que vive por la av. más importante de CDMX, está justo en uno de los centros comerciales más concurridos

y para eliminar una fila, especificando cual por medio del person_id

DELETE FROM people WHERE person_id = 4

Una vista es una ejecución del comando que va después del as. Otra cosa a tener en cuenta es que si se borra una columna de las tablas que componen la vista, esta deja de funcionar y da un error al ejecutarla.

ALTER

Como colocas la interfaz toda en negro por favor

Muy explicado, solo que como ya estaban ingresados los datos, no vi como ingresar.
Pero ya buscare como.

Espero que podamos ver también como manipular desde consola, ya que no siempre se cuenta con estas herramientas de entorno gráfico, y es bueno tener ambas opciones

para ingresar datos
INSERT INTO people (last_name, first_name, address, city)
VALUES (“Vásquez”, “Israel”, “Calle Famosa Num 1”, “México”),
(“Hernández”, “Mónica”, “Reforma 222”, “México”),
(“Alanís”, “Edgar”, “Central 1”, “Monterrey”);

En MySQL 8.x para modificar el tipo de dato de una columna se usa modify en vez de alter UwU

Para los que les salga error cuando cambien el tipo de dato, recuerden que deben especificar el número de carácteres, por ejemplo, si escogen YEAR(), deben de poner

YEAR(4)>

Aquí comparto mis apuntes:

  • ALTER

    Permite alterar la estructura de las tablas.

    • ADD
      ALTER TABLE <nombre-de-tabla>
      ADD date_of_birth date;
      
    • ALTER COLUMN
      ALTER TABLE <nombre-de-tabla>
      ALTER COLUMN date_of_birth year;
      
    • DROP
      ALTER TABLE <nombre-de-tabla>
      DROP COLUMN date_of_birth;
      
    • ADD CONSTRAINT
      ALTER TABLE Persons
      ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);
      
  • DROP

    • TABLE
      DROP TABLE people;
      
    • DATABASE
      DROP DATABASE test_db;
      
  • TRUNCATE

    A diferencia de DROP, TRUNCATE elimina todos los datos de una tabla pero no la tabla en sí, también reinicia el conteo de las columnas con el constraint AUTO_INCREMENT.

    TRUNCATE TABLE people;
    

Siento que la explicación es mínima y que le falto profundizar en cada sentencia, o por lo menos explicar no solo la parte grafica sino la de codificación.

Muy super! este curso ❤️

Si andan echando código, se darán cuenta que el mostrado en las diapositivas no funciona:

ALTER TABLE people
ALTER COLUMN date_of_birth year;

Para modificar una columna en MySQL funciona mediante el código que muestra el GUI y el siguiente:

ALTER TABLE people
CHANGE COLUMN date_of_birth date_of_birth varchar(30) null default null;
alter table people
modify date_of_birth varchar(20);

Increible curso, increible profesor, hasta el momento es el mejor curso de platzi que he tomado, y eso que ya he tomado varios.
Procedan a sacar mas cursos con este profesor

Comparto un aporte similar al de Guillermo Ruben Linares Martinez pero con unos detalles en particular que me ayudaron a entender y poder ejecutar la carga de datos a nuestra db.

Codigo para ejecutar:

INSERT INTO `platziblog`.`people` (`last_name`, `first_name`, `address`, `city`)
VALUES ('Vazques', 'Israel', 'Calle Famosa Num 1', 'Mexico'),
		('Hernandez', 'Monica', 'Reforma 222', 'Mexico'),
        ('Alanis', 'Edgar', 'Central 1', 'Monterrey');

A tener en cuenta:

  • En la sentencia del “INSERT INTO” los valores y keys declaradas deben estar entre este tipo de comillas => `` (backticks)
  • Los valores declarados dentro de “VALUES” pueden estar entre comillas simples => ‘’

Para ejecutar el codigo basta con darle click al rallito:

Es impresionante (para mi) como el profesor añade datos desde ventana “Apply SQL Script to Database”; soy nuevo en bases de datos, y yo creía que la única forma de hacerlo era mediante queries

22. CREATE VIEW y DDL ALTER

  • Una vista toma datos de la db y los pone en algo presentable que podamos consultar frecuentemente.
  • view v minúscula al principio del nombre
  • Las vistas sirven para dar la información ya digerida.
Create view

USE `platziblog2`;
CREATE  OR REPLACE VIEW `platzi_people` AS
SELECT * FROM platziblog2.people;

Alter Table

ALTER TABLE `platziblog2`.`people` 
ADD COLUMN `date_of_birth` DATETIME NULL AFTER `city`;

ALTER TABLE `platziblog2`.`people` 
CHANGE COLUMN `date_of_birth` `date_of_birth` VARCHAR(30) NULL DEFAULT NULL ;

ALTER TABLE `platziblog2`.`people` 
DROP COLUMN `date_of_birth`;

ChatGTP ayuda demaciado con el aprendizaje, le pido querys y me las genera:

INSERT INTO people (last_name, first_name, address, city)
VALUES
(‘Doe’, ‘John’, ‘123 Main St’, ‘New York’),
(‘Smith’, ‘Jane’, ‘456 Market St’, ‘Chicago’),
(‘Johnson’, ‘Bob’, ‘789 State St’, ‘Los Angeles’),
(‘Williams’, ‘Alice’, ‘246 Park Ave’, ‘Miami’),
(‘Jones’, ‘Mike’, ‘159 Maple St’, ‘Houston’),
(‘Brown’, ‘Sue’, ‘357 Oak St’, ‘Philadelphia’),
(‘Garcia’, ‘Juan’, ‘369 Pine St’, ‘Phoenix’),
(‘Miller’, ‘Linda’, ‘159 Cherry St’, ‘San Antonio’),
(‘Davis’, ‘Jim’, ‘753 Riverside St’, ‘San Diego’),
(‘Rodriguez’, ‘Maria’, ‘951 Valley St’, ‘San Francisco’),
(‘Martinez’, ‘Carlos’, ‘147 Ocean Ave’, ‘Seattle’),
(‘Hernandez’, ‘Ana’, ‘753 Hill St’, ‘Boston’),
(‘Lopez’, ‘Rosa’, ‘369 Maple St’, ‘Nashville’),
(‘Gonzalez’, ‘Pedro’, ‘951 Park Ave’, ‘Dallas’),
(‘Wilson’, ‘Samantha’, ‘246 Market St’, ‘New Orleans’),
(‘Moore’, ‘Tom’, ‘369 Oak St’, ‘Denver’),
(‘Taylor’, ‘Laura’, ‘753 Cherry St’, ‘Portland’),
(‘Anderson’, ‘Chris’, ‘159 Pine St’, ‘Sacramento’),
(‘Thomas’, ‘Emily’, ‘789 Maple St’, ‘Austin’),
(‘Jackson’, ‘Ashley’, ‘123 Cherry St’, ‘Memphis’);

Y me responde al instante dudas que me surgen con el video, reduce a practicaente nada el tiempo que usaría para investigar dudas

para insertar datos en la base de datos en la pestaña query.
no se usa el person_id ya que en la configuracion se añadio el auto_increment.

INSERT INTO `people` (`last_name`, `first_name`, `address`, `city`) 
VALUES  ('Alanis', 'Edgar', 'Central 1', 'Monterrey'),
('Johnson', 'Dwayne', 'street 5', 'EE.UU'),
('Gal Gadot', 'Versano', 'street 7', 'EE.UU'),
('Chris', 'Hemsworth', 'street 8', 'EE.UU'),
('Tessa', 'Thompson', 'street 9', 'EE.UU'),
('Hernández', 'Mónica', 'Reforma 222', 'México');

bueno gente, a dormir que ya llevo 9 horas estudiando y estoy cansado