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

Curso de Fundamentos de Bases de Datos

Curso de Fundamentos de Bases de Datos

Enrique Alexis Lopez Araujo

Enrique Alexis Lopez Araujo

Playground: CREATE TABLE

21/67

Aportes 139

Preguntas 15

Ordenar por:

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

La guía confunde.

el nombre de la tabla debe estar sin comillas
y los campos sin corchetes

Un consejo es que todas las tablas deben estar en plural ,

CREATE TABLE IF NOT EXISTS "students" ( );

y tu llave primaria en singular

student_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL
 

Soy el primero de la clase xD
Estos playground son lo máximo ya que ayudan demasiado a saber lo que no sabes.

ATENCIÓN! SI O SI LA ESTRUCTURA SE ESCRIBE EN MAYÚSCULA. El resto pueden escribirlo como gusten pero la estructura en Mayúscula.

Aprendi que el mas minimo error te puede generar canas verdes jajaja puse una coma demas antes del ultimo parentesis y por eso no funcionaba ajaja

El ejemplo deberia ser lo mas claro para la resolucion.
CREATE TABLE COMPANY(
ID “INT” (ésta abreviación no la toma, hay que escribir si o si INTEGER) PRIMARY KEY AUTOINCREMENT NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);

Luego deja ingresar varchar, pero varchar si es una abreviacion de: “variable character”. El ejemplo muestra los nombres de las tablas con mayusculas pero admite en minuscula la consola.
Estaria bueno esas correcciones para los futuros estudiantes que vean este curso!

Solución… 😄
.

.
.
.
.
.
.

CREATE TABLE IF NOT EXISTS people (
  person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
  last_name VARCHAR(255),
  first_name VARCHAR(255),
  address VARCHAR(255),
  city VARCHAR(255)
)

Perdimos un corazón en el camino pero seguimos adelante 💪🏽


Por si quiere probar el código:

CREATE TABLE people (
  person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 
  last_name VARCHAR(255),
  first_name VARCHAR(255),
  address VARCHAR(255),
  city VARCHAR(255)
);

Adjunto aporte, pero mi playground no me ejecutó por
la Sentencia “AUTOINCREMENT”

CREATE TABLE “people”
(“person_id” INTEGER NOT NULL AUTOINCREMENT,
“last_name” VARCHAR(255)NULL,
“first_name” VARCHAR(255) NULL,
“address” VARCHAR (255) NULL,
“city” VARCHAR(255) NULL,
PRIMARY KEY (person_id)
);

En mi Workbench si me ejecutó la sentencia AUTO_INCREMENT

Hola, Sí lo recomendable es que la estructura la escriban en mayuscula, ![](https://static.platzi.com/media/user_upload/image-0503774e-ca1a-4bdb-bb91-20cbd687f9b6.jpg)

hola, ya estuve probando y me parece que al enunciado le faltan más detalles en las instrucciones, como por ejemplo, cuál es el nombre exacto que debería tener la tabla a crear, tuve que ver la solución final para que las pruebas pasaran

A mi no me funciono el que les funciono a algunos compañeros, tuve que hacerlo así y si me quedo bien. Esto es una cosa loca! ![](https://static.platzi.com/media/user_upload/image-9e980de5-bca5-4419-bc4e-f46e3f80ffbd.jpg)
aprendí que esta coma rompe todo. No pongan una coma en el ultimo campo ![](https://static.platzi.com/media/user_upload/image-102e2d0e-18ee-4d85-a7ba-918237eef9c1.jpg)
No me sale para poder ejecutar el código. ![](https://static.platzi.com/media/user_upload/2024-04-30_22h41_18-f9459165-4a8d-45f8-98a1-fa1eecf87486.jpg)

la consola pide que pongas AUTOINCREMENT pero de hecho en workbench te deja y te marca como palabra reservada “auto_increment”, lo probe desde la clase pasada haciendo la tabla directo desde un sql file e incluso si lo resalto en azul
me parecio raro ese detalle

Consejo: Usen o copien y peguen, la sintaxis que usa el profe en los slides o diapositivas, para que se ahorren errores de sintaxis.

Excelente…!

![](https://static.platzi.com/media/user_upload/image-702a3b03-3667-4736-9b29-c02e677d6a2a.jpg)
Así me quedo: ![](https://static.platzi.com/media/user_upload/image-930ffac9-77dd-460d-ba13-ac4d358f6e4b.jpg)
![](https://static.platzi.com/media/user_upload/image-2c7ec585-cde9-4def-9a63-be00d7a4776f.jpg)
En la vida REAL, no importa el orden y es `AUTO_INCREMENT` no `AUTOINCREMENT` `CREATE TABLE people (` ` ``person_id INT AUTO_INCREMENT NOT NULL PRIMARY KEY` `);`
CREATE TABLE people( person\_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, last\_name VARCHAR(255) NULL, first\_name VARCHAR(255) NULL, address VARCHAR(255) NULL, city VARCHAR(255) NULL); ![]()
```js CREATE TABLE people( person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, last_name VARCHAR(255), first_name VARCHAR(255), address VARCHAR(255), city VARCHAR(255) ); ```CREATE TABLE people(   person\_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,   last\_name      VARCHAR(255),   first\_name     VARCHAR(255),   address        VARCHAR(255),   city           VARCHAR(255));
`CREATE TABLE people(   person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,   last_name      VARCHAR(255),   first_name     VARCHAR(255),   address        VARCHAR(255),   city           VARCHAR(255));`
Ejecutado correctamente ![](https://static.platzi.com/media/user_upload/image-ea0f4aa5-42c7-4e53-b650-cc04d4596d4e.jpg)![](https://static.platzi.com/media/user_upload/image-c04ccf15-5bb7-456b-ab1c-a9d2814fc2b9.jpg)
![](https://static.platzi.com/media/user_upload/image-db4aa0c4-a871-4089-bd55-0510e3cb8aa6.jpg)
* Utilicen este símbolo para los nombres de las columnas ( ` ). No es mandatario pero puede evitar que MySQL nos arroje un error si utilizamos palabras claves para nombrar las columnas. * NULL se asigna por default a las columnas en MYSQL. ![]()
no se porque tienes que poner CREATE TABLE IF NOT EXISTS people, no nos enseñaron eso de IF y el ejemplo del ejercicio no lo hace de esa manera, yo lo quise hacer con CREATE TABLE people y no funcionó
![](https://static.platzi.com/media/user_upload/image-34869d04-1905-4c6a-bb41-4e3c1aeeb05a.jpg)![](https://static.platzi.com/media/user_upload/image-afec2be0-3b24-4c9b-ad45-8278f50d02fc.jpg)
Cómo me funciona en SQL server, esta es mi sintaxis favorita: CREATE TABLE peopleTB (  personID INT IDENTITY(1,1) NOT NULL,  lastName VARCHAR(255) NULL,  firstName VARCHAR(255) NULL,  address VARCHAR(255) NULL,  city VARCHAR(255) NULL,  CONSTRAINT peoplePK PRIMARY KEY (personID));
La guía solo era como referencia, para no copiar solamente. ![](https://static.platzi.com/media/user_upload/EXERCISE%20SQL%20-%2015-b3befc70-d55f-40af-9984-9d7ffbe343a1.jpg)
![]()![](https://static.platzi.com/media/user_upload/image-48faf500-bc48-4a13-84de-86a19def44b8.jpg)
![](https://static.platzi.com/media/user_upload/data-496635d9-9b7e-44c3-8246-1aaccc01293a.jpg)woo
RETO ![](https://static.platzi.com/media/user_upload/image-2d017cf0-7525-4cdb-b830-42f5a6121bdc.jpg)![](https://static.platzi.com/media/user_upload/image-c7f24d94-21f9-408c-91a6-ca70054d94a7.jpg)
![](https://static.platzi.com/media/user_upload/image-2da3fa64-c5e7-4d4d-a16b-6e1d38aa0369.jpg)![]() LO LOGRE, COMO QUE ME CONFUNDIO EL ORDEN en la propiedad de person\_id EL EJEMPLO PERO LO LOGRE.
![](https://static.platzi.com/media/user_upload/image-046f14fb-55f8-4af8-a26c-4fe413e510d3.jpg)
EJECUTADO CORRECTAMENTE ![](https://static.platzi.com/media/user_upload/image-3b2e2c3a-d59a-4eb7-86f9-2bd996aa49f7.jpg)
Pues dice que ya pero no me convence en pruebas falla algo igual que en la anterior ![](https://static.platzi.com/media/user_upload/image-00627be0-fcb7-44ef-8697-df60de0dc467.jpg)
Estaba confundido con los NULL y los NOT NULL, me causó trabajo pero se consiguió, solo es como de leer con atención la guía ![](https://static.platzi.com/media/user_upload/image-dfaf5175-c3d6-43ee-a15f-63d81eaad75a.jpg)![]()
![](https://static.platzi.com/media/user_upload/image-991dc118-6966-498b-9aac-8f9d6369e7f2.jpg) Después de VARCHAR no debe tener espacio
\-- Inserta tu sentencia aquiCREATE TABLE people(  person\_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,  last\_name VARCHAR(255)  NULL,  first\_name VARCHAR(255)  NULL,  address VARCHAR(255) NULL,  city VARCHAR(255)  NULL)
![](https://static.platzi.com/media/user_upload/image-3e361d77-7ac9-4147-8da5-ba2a1d880b8f.jpg)
![](https://static.platzi.com/media/user_upload/image-cbc1faae-e54d-44ec-8f12-bc4485e88cd7.jpg) Muchas gracias por la ayuda, aprendi mas de los comentarios en la ejecucion.
CREATE TABLE `people` ( `person\_id` INTEGER NOT NULL, `last\_name` VARCHAR(255) NULL, `first\_name` VARCHAR(255) NULL, `address` VARCHAR(255) NULL, `city` VARCHAR(255) NULL, PRIMARY KEY (`person\_id`)); ```js CREATE TABLE `people` ( `person_id` INTEGER NOT NULL, `last_name` VARCHAR(255) NULL, `first_name` VARCHAR(255) NULL, `address` VARCHAR(255) NULL, `city` VARCHAR(255) NULL, PRIMARY KEY (`person_id`)); ```
en la practica, para crear una tabla, luego del create table hay que indicar esa tabla a que base de datos pertenece....
![](https://static.platzi.com/media/user_upload/image-024dd2a8-d30c-40a8-a3df-9e3427cf098c.jpg)
Mal el ejercicio y mal uso de la sintaxis de sql (no es autoincrement es auto\_increment) not null generalmente se coloca antes y no despues del auto\_increment y finalmente el primary key se puede definir también al final no como lo obliga a hacer la consola. Aparte la guia te sopla directamente lo que toca hacer solo hay que cambiar nombres no tiene sentido
**Su consola está mal**. Al escribirlo correctamente me aparecía error de syntax. Después, al ver la solución aparece en la sentencia un "IF" después del CREATE TABLE, situación que hasta el momento no se ha nombrado ninguna condicionante IF a la hora de crear tablas. Asimismo, en MySQL se escriben las abreviaciones, por lo que para evitar confusiones deberían permitir escribirlas y que su consola las detecte para así poder estar en la misma sintonía respecto a lo que se ve en el curso Anexo foto de su solución ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202024-02-12%20a%20la%28s%29%201.31.12%E2%80%AFp.m.-4a67ea01-5315-4dc3-85b7-4d3093dab39b.jpg)
Excellent ✌️ ![](https://static.platzi.com/media/user_upload/image-74773018-0403-4e0d-984e-abf6a0c886e7.jpg)
Después de 10 intentos pude hacerlo. Mi error era que en el comando VARCHAR no tenía pegado la cantidad de caracteres (255). Se ve de la siguiente manera: ```js VARCHAR(255) VARCHAR (255) ```Al inicio lo tenía escrito como aparece en la tercera línea y la solución era escribirlo todo junto como aparece en la primera línea.
![](https://static.platzi.com/media/user_upload/image-60cc0432-5c2d-45e7-b9a4-206e34241531.jpg)
```js ```![](https://static.platzi.com/media/user_upload/image-3acd2301-8687-4d84-948e-0c09110913a5.jpg)
Tener en cuenta que los datos también valida si las palabras reservadas están realizadas en mayúsculas o minúsculas, se debe colocar con mayus, de lo contrarío también arrojara error al correr pruebas

SOLUCIÓN

– Inserta tu sentencia aqui
CREATE TABLE IF NOT EXISTS people (
person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
last_name VARCHAR(255) NULL,
first_name VARCHAR(255) NULL,
address VARCHAR(255) NULL,
city VARCHAR(255) NULL
);

El tipo de dato para entero es INT. para que que sea exitoso, debes poner todo en mayusculas a excepcion de los nombres de las columnas. En mysql puedes hacerlo en minisculas o mayusculas.
La solución abajo, no me la tomaba por buena ya que estaba escribiendo varchar en lugar de VARCHAR ```js CREATE TABLE people( person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, last_name VARCHAR(255) NULL, first_name VARCHAR(255) NULL, address VARCHAR(255) NULL, city VARCHAR(255) NULL ); ```

Se pudo hacer:

![](file:///C:/Users/Jhonny1/Desktop/cursos/sql/primerlab.PNG)
![](https://static.platzi.com/media/user_upload/image-c2706e39-fb23-4da7-adfd-3d245f496b3d.jpg)
Despues de varios intentos: ![](https://static.platzi.com/media/user_upload/image-75269315-7054-4303-bc14-91458925fbae.jpg) ![](https://static.platzi.com/media/user_upload/image-42a5a54b-d6ef-4b83-95ab-24998cd8cab9.jpg)

Pese a que lo hice correctamente como ven en la foto1:

Debo decir que cuando lo corri en mi Workbench el AUTOINCREMENT no me lo reconocia y lo que si me detectaba era la sentencia AUTO_INCREMENT. Adjunto foto2

A mi no me la dejo correr ![](https://static.platzi.com/media/user_upload/image-a07900de-1c8e-4444-ad96-edb0696a2f51.jpg)
MUCHO OJO CON LOS ESPACIOS, DEJE ESPACIOS ENTRE LOS PARENTISES POR ESO PERDI 2 CORAZONES,PERO CONTINUEN , TODOS VAMOS BIEN HASTA ACA :)![](https://static.platzi.com/media/user_upload/image-892eb677-d09b-4602-a678-fa6a27cfcd85.jpg)![](https://static.platzi.com/media/user_upload/image-51759742-40fb-4e18-9127-d9e71894e607.jpg)
Me surgio la duda si en los RDBMS igual que es este playground al declarar el tipo de dato como en este ejemplo "VARCHAR" también se tiene que escribir en mayúsculas para que lo reconozca o solo en los RDBMS es indiferente?
CREATE TABLE IF NOT EXISTS people (  person\_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,  last\_name VARCHAR(255),  first\_name VARCHAR(255),  address VARCHAR(255),  city VARCHAR(255))
Buenas tardes, intenté de esta forma. Según la consola de platzi está mal. SIn embargo en mi navicat si me ejecutó. Porque el error en platzi??' ![](https://static.platzi.com/media/user_upload/image-4238a0f6-f850-4a81-86eb-49dbd281d087.jpg)![]()
![](https://static.platzi.com/media/user_upload/image-a3141115-4609-4442-b6db-7ade9220edff.jpg)![](https://static.platzi.com/media/user_upload/image-6b1bf7be-b528-483d-b136-9e42d806bdd3.jpg)
![](https://static.platzi.com/media/user_upload/image-d1ab290c-e5f6-4cb1-9a3b-8e58a2645736.jpg)![](https://static.platzi.com/media/user_upload/image-d8ed2ec0-38fe-4dcd-a453-3d80f1784a5c.jpg) Confunde un poco el hecho que no puedan haber espacios entre el tipo de variable y la cantidad caracteres.
no logré ejecutarlo, tuve que ver la solución para hacerlo correctamente
\-- Inserta tu sentencia aquiCREATE TABLE people (  person\_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,  last\_name VARCHAR(255) NULL,  first\_name VARCHAR(255) NULL,  address VARCHAR(255) NULL,  city VARCHAR(255) NULL);

Recuerden poner palabras reservadas en mayuscula siempre!

-- Inserta tu sentencia aqui
CREATE TABLE people(
  person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
  last_name VARCHAR(255) NULL,
  first_name VARCHAR(255) NULL,
  address VARCHAR(255) NULL,
  city VARCHAR(255) NULL
);
gg ![](https://static.platzi.com/media/user_upload/imagen-4e37fdb6-3e61-4507-a386-568e8d07b114.jpg)

Create Table.




mi prueba :
– Inserta tu sentencia aqui
CREATE TABLE people(
person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
last_name VARCHAR(255) NULL,
first_name VARCHAR(255) NULL,
address VARCHAR(255) NULL,
city VARCHAR(255) NULL
);

palabras reservadas integer, varchar, usar en mayúsculas…

create table compañia
(
  id_company INT PRIMARY Key NOT NULL,
  nombre text not null,
  edad int not null,
  direccion char(34),
  salario real
)

ASEGURENSEN DE PONER EN ORDEN COMO SE LOS PIDE EL TEXTO PORQ SINO TE LO PONE MAL

CREATE TABLE people (
person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
last_name VARCHAR(255),
first_name VARCHAR(255),
address VARCHAR(255),
city VARCHAR(255)
);

-- Inserta tu sentencia aqui
CREATE TABLE people
(
person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
last_name VARCHAR(255) NULL,
first_name  VARCHAR(255)  NULL,
address VARCHAR(255) NULL,   
city VARCHAR (255)  NULL
)

CON PACIENCIA LO LOGRE, aunque tengo que repasar ciertos conceptos

No olviden el ; al final.
Comparto el texto:

CREATE TABLE people
(
person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
last_name VARCHAR(255) NULL,
first_name VARCHAR(255) NULL,
address VARCHAR(255) NULL,
city VARCHAR(255) NULL
);

La elección entre AUTO_INCREMENT, AUTOINCREMENT o IDENTITY dependerá del sistema de gestión de bases de datos que estés utilizando. Asegúrate de utilizar la sintaxis correcta según el sistema que estés utilizando.

Aquí esta

CREATE TABLE people
(
person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
last_name VARCHAR(255) NULL,
first_name VARCHAR(255) NULL,
address VARCHAR(255) NULL,
city VARCHAR(255) NULL
);

Este curso no me carga y me parece super importante no dejarlo pasar,

que conste aclarar que las sintaxis varian segun el rdbms en el caso de los playgrounds es con sqlite y sin embargo en este punto del curso hemos venido usando MySQL.

Mi respuesta:

CREATE TABLE people (
  person_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
  last_name VARCHAR(255) NULL,
  first_name VARCHAR(255) NULL,
  address VARCHAR(255),
  city VARCHAR(255) NULL
);

Hasta que capté que no debía poner espacios entre VARCHAR y los paréntesis.

Excelente ejercicio
para tener en cuenta no pueden tener espacio VARCHAR CON (255), debe ir así , VARCHAR(255)

😃 Casi me reprueban pero lo logré. Noto que en varios compañeros es distinto ciertos aspectos de la creación de la tabla, como por ejemplo: algunos no le pide comillas " " en los textos, otros al final colocaron el paréntesis sin el punto y coma o la coma nada más. Sé deberá al sistema operativo, me imagino.

undefined