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

DDL create

20/67
Recursos

SQL tiene dos grandes sublenguajes:
DDL o Data Definition Language que nos ayuda a crear la estructura de una base de datos. Existen 3 grandes comandos:

  • Create: Nos ayuda a crear bases de datos, tablas, vistas, índices, etc.
  • Alter: Ayuda a alterar o modificar entidades.
  • Drop: Nos ayuda a borrar. Hay que tener cuidado al utilizarlo.

3 objetos que manipularemos con el lenguaje DDL:

  • Database o bases de datos
  • Table o tablas. Son la traducción a SQL de las entidades
  • View o vistas: Se ofrece la proyección de los datos de la base de datos de forma entendible.

Aportes 398

Preguntas 97

Ordenar por:

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

Si utilizas mal drop… el profesor no te quiere decir lo que va a pasar pero yo si: TE VAN A DESPEDIR, y digamos q eso es lo menos malo. si la data es muy importante, TE VAN A DEMANDAR. Si fuiste de alguna manera precavido, tienes un backup y se puede restaurar la Base de datos, pero eso demora, y si demora es tiempo q la empresa esta perdiendo dinero. De lo q te puedo asegurar, es q de una Puteada no te vas a salvar xD…

Pero bueno, de las puteadas tambien se aprende, lo ideal es aprender aqui, en tu entorno de desarrollo donde si malogras algo, no pasa nada y toda la comunidad te puede ayudar.

He aprendido mas en lo que llevo del curso que en un semestre de universidad xD

Si se habla de Sublenguajes como menciona el profesor!
Comparto esto compañeros como aporte a la clase!! Buenas tardes!!

  • DML
    o Data Manipulation Language o Lenguaje de Manipulación de Datos
    o Lenguaje procedimental y declarativo  conjunto de instrucciones que apoyarán al proceso de construcción de la BD
    o Las sentencias DML afectan los registros en una tabla. Estas son operaciones básicas que realizamos sobre datos tales como seleccionar algunos registros de una tabla, insertar nuevos registros, eliminar registros innecesarios y actualizar / modificar registros existentes.
    o Opciones DML
     SELECT: para seleccionar registros de tablas
     INSERT: para insertar nuevos registros
     UPDATE: para actualizar y modificar registros
     DELETE: para eliminar registros existentes.

  • DDL
    o Data Definition Language o Lenguaje de Definición de Datos
    o Aquí ya se especifica el esquema de la BD, generando un diccionario de datos, las restricciones de integridad y las autorizaciones para que ciertos usuarios no vean cierto contenido.
    o Sentencias DDL son las necesarias para poder modificar la BD, esquema y ESTRUCTURA de las tablas. Son las útiles para el diseño y control de objetos que se encuentran dentro de las BD.
    o Opciones DDL
     CREATE: Crear una nueva base de datos, una tabla o esquema.
     ALTER: Alterar tabla existente, descripción de columnas, etc.
     DROP: Eliminar objetos existentes de la BD.
    o 3 objetos que manipularemos con el lenguaje DDL
     Database
     Tables  traducción a SQL de las entidades
     View  se ofrece la proyección de los datos de la BD de forma entendible

  • DCL
    o Lenguaje de Control de Datos
    o Las declaraciones DLC son las encargadas de controlar el acceso de los usuarios a las BD.
    o Opciones DDL
     GRANT:
    • Declaración que permite a los usuarios leer / escribir en objetos que digamos de la BD.
     REVOKE:
    • Es la que ofrece a los usuarios estar sin permiso de lectura / escritura en objetos de la BD.

  • TLC
    o Lenguaje de Control de Transacciones
    o Instrucciones que permiten administrar transacciones y tener integridad de datos dentro de las declaraciones SQL. Se gestiona a través de las siguientes declaraciones
     BEGIN Transaction
    • Nos permite abrir una transacción
     COMMIT Transaction
    • Ofrece confirmar una transacción
     ROLLBACK Transaction
    • Devuelve una transacción en caso de error cometido.

Ejercicio

CREATE DATABASE IF NOT EXISTS platziblog;
-- SHOW DATABASES; ver bases de datos
USE platziblog;
CREATE TABLE IF NOT EXISTS people (
person_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
last_name VARCHAR(255) NULL,
first_name VARCHAR(255) NULL,
address VARCHAR(255) NULL, 
city VARCHAR(255) NULL
);
-- SHOW TABLES ; ver tablas
DESCRIBE people; -- ver la estructura de la tabla

Les comparto mis apuntes de la clase. Me están gustando las clases ❤️

Uhhh no sabía que el SQL se devidía en sublenguajes, aquí acabamos de ver el DDL (Data Definition Language) (Lenguaje de definición de datos) que son prácticamente las consultas que nos permiten interactuar con la base de datos, crear tablas, crear bases de datos, alterarlas, etc.

Sin duda usar un cliente gráfico facilita mucho esto, pero nunca está de más aprender a hacer todo esto mediante linea de comandos:D!

Buen dia platzinautas, aqui les dejo unos conceptos que pueden ayudar a reafirmar el tema:
DDL: Data Definition Language
Por su traducción lenguaje de definición de datos nos proporciona comandos para la definición de esquemas de relación, borrado de relaciones y modificaciones de la estructura de los objetos de la base de datos.
Comandos DDL:
Create (Crear): Este comando permite crear objetos de datos, como nuevas bases de datos, tablas, vistas, índices, etc.
Alter (Alterar): Este comando permite modificar la estructura de una tabla u objeto.
Drop (Eliminar): Este comando elimina un objeto de la base de datos
Truncate (Truncar): Este comando solo aplica a tablas y su función es borrar el contenido completo de la tabla especificada.
Espero les ayude en algo amigos, saludos. 😃

Buenaaaass… alguien viendo el curso en el 2023? La versión de mySQL es 8.0 y está bien diferente de la del curso 😐

¿De qué manera puedo poner el tema oscuro?

Un tip o dato curioso 😃

Las “views” o vistas también se pueden usar para cuando por ejemplo tenemos en una tabla muuuucha información, así los primeros registros que ya pueden ser de varios años atrás empiezan a ser irrelevantes para la vida diaria de una aplicación. En ese caso para optimizar un poco nuestra aplicación podemos crear una vista que solo nos traiga información de digamos 6 meses atrás. de esta forma las consultas y los inserts de nueva información serán mucho mas dinámicos que una tabla mucho mas grande y que requiere muchos mas recursos para ser leída y actualizada.

PK - Primary Key

NN - Not Null

BIN - Binary (stores data as binary strings. There is no character set so sorting and comparison is based on the numeric values of the bytes in the values.)

UN - Unsigned (non-negative numbers only. so if the range is -500 to 500, instead its 0 - 1000, the range is the same but it starts at 0)

UQ - Create/remove Unique Key

ZF - Zero-Filled (if the length is 5 like INT(5) then every field is filled with 0’s to the 5th digit. 12 = 00012, 400 = 00400, etc. )

AI - Auto Increment

G - Generated column. i.e. value generated by a formula based on the other columns

Un dato interesante es que al crear la tabla no es necesario indicar que la primary key es no nula, ya que por el simple hecho de ser llave primaria el RDBMS ya interpreta esto.

Veo que en mi Workbench (yo uso Windows) es ligeramente diferente a la hora de crear una nueva tabla, pues no aparece directamente la tabla que contiene “column”, “datatype” y los constrains que vimos en clases anteriores, sin embargo al hacer clic en la doble flecha que se encuentra en la esquina superior derecha, se despliega esa tabla que usa Israel. Espero que alguien le sirva! Saludos.

Pregunta. ¿Como podemos cambiara a modo oscuro el mySQL?

Notas:

  • Tres sentencias principales en DDL: Create (crea una nueva instancia, ya sea un schema, una tabla, etc.), Alter (altera, modifica, aquello sobre lo que lo aplicamos), Drop (elimina o borra, MUCHO CUIDADO AL USARLA, podemos incluso borrar toda la base de datos!).
  • Create: puede crearse una Database (Base de datos), una table (tabla), o una view (vista, la proyeccion de una base datos).
  • Ejemplos de sentencias:
    • **CREATE **DATABASE test_db; (crea una nueva base de datos, llamada test_db, en el Workbench lo indica como “CREATE SCHEMA”).
    • **USE ** DATABASE test_db (indica que utilizaremos esta base de datos, en el Workbench lo indica como “Set as default schema” al crearla).
    • CREATE TABLE people (
      person_id int,
      (otros atributos…)
      ) (crea una tabla llamada people, con los atributos mencionados adentro de los parentesis, en el Workbench debemos hacer click derecho en Tables -> Create Table y llenar los datos correspondientes, como por ejemplo, los atributos).
  • Junto con los constraints aparece AI: esto le indica a la base de datos que ella manejara la progresion del atributo (en este caso el ID, la base de datos le dara el ID 1 a la primera persona, el 2 a la segunda, etc.).

Es muy bueno, me da un poco de susto por q es todo un mundo pero hare todo lo posible!!

Definiciones:
DDL is Data Definition Language
DML is Data Manipulation Language
DCL is Data Control Language
TCL is Transaction Control Language

Cómo puedo crear un campo en una tabla que me permita guardar el historico de todos los precios de mis productos o es necesario que se cree una tabla por cada uno de los precios?

16. Mis apuntes sobre: "DDL create"
El lenguaje SQL tiene dos grandes sublenguajes.
El primero que vamos a ver es el DDL [Data Definition Languaje], nos va a ayudar a crear

Una base de datos tiene tres grandes comandos [Create, Alter, Drop]:

*Create: Nos permite crear una base de datos o schema, una tabla, un índice y muchas cosas.

*Alter: Nos ayuda a alterar o modificar algunas de estas entidades, agregar o quitar una
columna o quitando o cambiando el tipo de dato de la columna.

*Drop: Nos va a ayudar a BORRAR, debemos tener mucho cuidado.

Dentro de Create tenemos 3 grandes grupos:

*Database: Es el repositorio de datos que va a usar un gran proyecto que creamos.

*Table: Es la traducción en SQL de las entidades que hemos estado creando.

*View: La proyección de los datos que tenemos en la base de datos para ver algo en
específico. El SELECT que hagamos, lo podemos guardar en una vista.

Estas son las primeras sentencias que veremos:

Código SQL:

--a veces se usa "SCHEMA" en vez de "DATABASE" en SQL
CREATE DATABASE test_db;
--USE DATABASE sirve para saber a qué base de datos te refieres
USE DATABASE test_db;

Darle clic derecho y “Set as default schema” para que sea nuestra db por default

Ahora creemos una tabla:

Código SQL (Fue autogenerado por el workbench)

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

El valor Autoincrement sirve para que automáticamente aumente de 1 en 1.

¿Hay alguna convención para los nombres de las tablas y los atributos?

Todo un semestre, lo estoy entiendo en un dia, LoL

Lo bueno de usar instancias locales como MySQL Workbench es que podremos equivocarnos muchas veces e ir aprendiendo para cuando usemos BD’s en empresas.

Un consejo para practicar más, es por ejemplo si tomas la carrera de Desarrollo Web puedes generar un formulario con HTML y CSS, validas los datos con JS, y combinando PHP y MySQL puedes agregar datos a la BD cuantas veces quieras, algo así como cuando llenamos un formulario en una página web, luego puedes usar todo lo que nos enseña el Prof. Israel para manipular y consultar esos datos.

#NeverStopLearning

Para los que preguntan por el modo oscuro, pues la versión 8 de MySQLWorkbench para MacOS funciona con el mismo modo de apariencia del OS. Por tanto solo si tienes configurada la apariencia de tu MacOS en modo oscuro, MySQLWorkbench también estará en modo oscuro.
En la versión 6 de MySQLWorkbench siempre es claro. Nunca probé la 7.
No uso Windows desde XP, así que no sé si la versión actual de Windows tenga modo oscuro, ¡comenten ustedes para saber!

Como se hace para cambiar a Dark Theme en MySQL Workbench, me gustó 😃

Yo trabajo con el MySQL Workbench 8.0 en Windows 8.1
Cuando he creado los campos de la tabla “people” y le he dado Apply, en el bloque de sentencias y campos aplicados me
aparece otra sentencia al final llamada ENGINE.

Por lo que he podido leer esta sentencia sirve para especificar el
Storage Engine que se usará para almacenar la tabla. Si no
se especifica, por defecto es InnoDB (link: https://dev.mysql.com/doc/refman/8.0/en/storage-engine-setting.html)

Un saludo.

Utilizar mal DROP quiere decir

… o en este caso solo DBA

<CREATE TABLE `platzi_blog`.`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`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_spanish2_ci;> 

todo muy bien hasta ahora 😃

[](

practicando con pocos cambios personales…

create database platziblog default character set utf8 ;

use platziblog;

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,
constraint primary key (person_id)
);

select * from platziblog.people;

¿Cómo habilitar el comando MySQL en Mac OSX?

Normalmente al instalar el Sistema de Gestión de Base de Datos Relacional MySQL no se tiene acceso al comando mysql desde la Terminal de Mac. Es por ello que para poder acceder al Monitor de MySQL se tiene que previamente navegar en la Terminal hasta la carpeta en la cual se encuentra el ejecutable mysql para poder invocar al comando correctamente.

Sin embargo, existe una manera de habilitar el comando MySQL para que esté accesible desde cualquier carpeta en la cual se encuentre en la Terminal. En el siguiente tutorial se muestra dicho proceso que no requiere de ninguna herramienta adicional además del sistema operativo Mac OSX y el servicio MySQL instalado en el sistema.

Primero, deben verificar que efectivamente el comando mysql no está disponible desde su Terminal. Para hacer esto deben abrir una ventana de Terminal e intentar ejecutar el comando mysql desde la ubicación por defecto en la que se encuentre la aplicación (normalmente, la carpeta del usuario con el cual se inicio la sesión). En caso obtengan el siguiente mensaje van a necesitar continuar con el tutorial para configurar correctamente el acceso al comando mysql.

$ mysql
-bash: mysql: command not found
1
2
$ mysql
-bash: mysql: command not found
Justamente en la carpeta del usuario que ha iniciado sesión actualmente (/Users/nombre-de-usuario/) probablemente se encuentre el archivo .bash_profile que es necesario para poder realizar la configuración deseada. Para poder verificar la existencia de este archivo se hace uso de un editor que se puede invocar desde la terminal, el cual se llama nano. Deben escribir entonces en la Terminal lo siguiente:

$ nano .bash_profile
1
$ nano .bash_profile
Con este comando se abre el editor de Terminal nano el cual, si no encuentra el archivo .bash_profile en la ubicación actual, va mostrar un mensaje [New File] en la parte inferior central de la ventana. Realmente no importa si el archivo es nuevo o ya existía. Lo importante es que al finalizar el archivo debe quedar más o menos así

export PATH=/Applications/MAMP/Library/bin:$PATH
1
export PATH=/Applications/MAMP/Library/bin:$PATH
donde “/Applications/MAMP/Library/bin” es la ubicación del ejecutable mysql. Esta dirección puede cambiar dependiendo de la manera en que se ha instalado MySQL. En este caso se ha hecho para una instalación de MAMP existente

Luego se guarda el archivo haciendo uso de las teclas de acceso rápido para la acción Write Out que indica el mismo editor (^O, o sea Ctrl+O) y luego se sale del editor haciendo uso de la combinación de teclas respectiva (^X, osea Ctrl+X). Se puede ver que el Terminal vuelve a la pantalla anterior en donde se ven los comandos que anteriormente se habían ingresado. ¡Ya se ha salido del editor nano!

Seguidamente, se tiene que forzar al Terminal a recargar el archivo .bash_profile que acabamos de modificar. Para esto se tiene dos opciones: Cerrar y volver a abrir el Terminal o ejecutar el siguiente comando:

$ . ~/.bash_profile
1
$ . ~/.bash_profile
Luego de haber seguido cualquiera de las dos opciones mencionadas se puede proceder a ejecutar de nuevo el comando mysql

$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25338 to server version: 4.1.25-standard

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql>
1
2
3
4
5
6
7
$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25338 to server version: 4.1.25-standard

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql>
En este paso pueden aparecer múltiples errores lo cual no quiere decir que la configuración hecha ha sido incorrecta. Pueden verse errores como, por ejemplo, el no poder acceder por no haber configurado un usuario de MySQL anónimo lo cual se evita de la siguiente manera

$ mysql -u root -p
1
$ mysql -u root -p
o que no se pueda acceder a MySQL porque no se ha iniciado dicho servicio el ordenador lo cual se repara iniciando el servicio correspondiente.

Para tener la seguridad de que la configuración ha sido correcta debe dejar de verse el mensaje command not found.

Un lenguaje de base de datos o lenguaje de definición de datos (Data Definition Language, DDL por sus siglas en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los programadores de la misma llevar a cabo las tareas de definición de las estructuras que almacenarán los datos

query para crear la tabla

use platziblog;
create table people(
	person_id INTEGER NOT NULL auto_increment PRIMARY KEY,
    last_name VARCHAR(255) NULL,
    first_name VARCHAR(255) NULL,
    address VARCHAR(255) NULL,
    city VARCHAR(255) NULL
);

para consultar la tabla

SELECT * FROM people

Diferencia entre CREATE SCHEMA y CREATE DATEBASE

La diferencia exacta es una sola, que se llaman diferente, pero hacen lo mismo. Así lo afirma la documentación de MySQL:

CREATE DATABASE crea una base de datos con el nombre dado. Para utilizar esta declaración, es necesario el privilegio CREATE para la base de datos.

CREATE SCHEMA es sinónimo de CREATE DATABASE.

Schema
Conceptualmente, un schema es un conjunto interrelacionado de objetos de bases de datos, tales como tablas, columnas de tablas, tipos de datos de las columnas, índices, claves externas, y así sucesivamente. Estos objetos están conectados a través de la sintaxis SQL, debido a que las columnas representan las tablas, las claves externas se refieren a tablas y columnas, y así sucesivamente. Idealmente, están conectados lógicamente en cuanto que trabajan juntos como parte de una aplicación unificada o marco flexible. Por ejemplo, en las bases de datos INFORMATION_SCHEMA y performance_schema utilizan “schema” en sus nombres para destacar las estrechas relaciones entre las tablas y columnas que contienen.

En MySQL, físicamente, schema y database son sinónimos, por lo que en la sintaxis SQL puede usar la palabra clave SCHEMA en lugar de DATABASE, por ejemplo, en lugar de utilizar CREATE SCHEMA puede usar CREATE DATABASE.

Algunos otros productos de base de datos establecen una distinción. Por ejemplo, en el producto de base de datos Oracle, un schema sólo representa una parte de un diagrama de base de datos: las tablas y otros objetos propiedad de un único usuario.

Referencia: https://es.stackoverflow.com/questions/72527/create-schema-o-database-tiene-alguna-diferencia-y-colocar-el-constraint-antes

Setencias en MySQL y SQL Server


-- EN MySQL: 

-- Crear  base de datos:
  create database nombre_base_datos

-- Ver listado base de datos: 
   show databases 

-- Ver listado de las tablas: 
   show tables

-- Ver estructura de la tabla:
   describe nombre_tabla

-- Crear tabla:
CREATE TABLE people (
person_id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
last_name VARCHAR (255),
first_name VARCHAR (255),
address VARCHAR (255),
city VARCHAR (255)
);
-------------------------------------------------------

-- EN SQL SERVER : 
-- Crear  base de datos:
create database nombre_base_datos

--Ver listado base de datos: 
 EXEC sp_databases

-- Ver listado tablas: 
 EXEC sp_tables;

--Indicar nombre de la base de datos a utilizar:
 use nombre_base_datos

-- Ver estructura de la tabla:
  EXEC sp_columns nombre_tabla

Aquí en platzi me entre este post, esta bueno, saludos. https://platzi.com/blog/que-es-ddl-dml-dcl-y-tcl-integridad-referencial/

Para todos los que tengan problema al instalar mysql community y mysql workbench, de que no se ven los botones de apply, revert, o El input donde se cambia el nombre a la tabla, lo arregle instalando la version de workbench 8.0.33 y de mysqul la 8.0.36, esto para Mac, yo tengo chip M1 y sistema operativo Sonoma 14.4.1

ESTO ES IMPORANTE!!!

No te aferres al aprenderte el código y a dejar que la sintaxis sea el eje de tu aprendizaje. Vengo del futuro. Sigue utilizando la interfaz, sigue viendo el curso, lo más importante. Complétalo, yo demore literalmente 6 meses en avanzar hasta el final por solo divagar en conceptos. Al final el trabajo, los estudios y la vida me llevaron a no concretar.

Si te interesa la sintaxis y el código, más adelante vas a adentrarte más.

Si no tienes un “Proyecto”. Sigue con Platziblog y de ahi al finalizar el curso haces el tuyo.

Sigue!!

SQL se divide en sublenguajes, el DDL (Data Definition Language) (Lenguaje de definición de datos) nos permiten interactuar con la base de datos, crear tablas, crear bases de datos, alterarlas, e incluso borrarlas.

Uufff, esta clase me voló la cabeza 🤯 Esto me está gustando mucho. No sabía de este tipo de proceso para crear una base de datos. Aunque imagino que también existe una manera no gráfica de crear bases de datos que también sería interesante de aprender. Muy buena clase.

Excelente clase!!! me encanta que sea explicito con cada paso.
Mil gracias!!!

Hay que seguir avanzando
Todo cambia y se actualiza.
Lo b{asico esta explicando en este curso
Lo importante es aprender los conceptos, esta genial

  • CREATE
  1. Database.
  2. Table. Las tablas son la proyección o la traducción a SQL de las entidades, tanto de las entidades de relación como del diagrama físico.
  3. View. o ( vistas ) significa que lo que se esta ofreciendo de la proyección de los datos de las bases de datos de una forma que son entendibles para alguien.

Para las personas que le salga este error, deben buscar en windows “Servicios” le va a salir un panel, en esa lista buscan MySql, click derecho e iniciar. Cierra el workbench y lo vuelve abrir y ya te dejara.

Cual es la diferencia entre decir DataBase y Schemas?

DDL create

Data Definition Language

Se refiere a ser un lenguaje de crear la estructura de una Base de Datos, como:

  • Relaciones.
  • Entidades.

Comandos

  • Create: Permite crear distintas cosas como una base de datos, tablas, vistas y/o indices.
  • Alter: Ayuda a modificar distintas cosas.
  • Drop: Ayuda a borrar, para este comando se debe tener especial cuidado para no dañar las bases de datos, columnas u otros elementos de la DB.

Create:

  • Database: Es el repositorio que va a contener todos los datos que se van a manejar.
  • Table: Es lo más cercano a una entidad en los EDR. ****
  • View: Es la forma de lograr dar la información de la manera más coherente para los usuarios.
/*CREATE SCHEMA*/
CREATE DATABASE  test_db;

USE DATABASE test_db;

/*CREATE TABLE*/
CREATE TABLE people (
	person_id int,
	last_name varchar(255),
	first_name varchar(255),
	address varchar(255),
	city varchar(255)
);

Data Manipulation Language(DML):
-SELECT
-INSERT
-UPDATE
-DELETE
-MERGE
Data Definition Language (DDL):
-CREATE
-ALTER
-DROP
-RENAME
-TRUNCATE
-COMMENT
Data Control Language (DCL):
-GRANT
-REVOKE
Transaction Control Language(TCL):
-COMMIT
-ROLLBACK
-SAVEPOINT

CREATE TABLE concretogarden1.clientes (
id INT NOT NULL AUTO_INCREMENT,
Nombre VARCHAR(255) NULL,
Apellido VARCHAR(255) NULL,
Direccion VARCHAR(250) NULL,
Ciudad VARCHAR(255) NULL,
PRIMARY KEY (id));

Para quien use VSCode como editor de cabecera, hay una extensión para MySQL que permite poder usar nuestro editor favorito para todas estas cuestiones.

La extensión en concreto es esta de MySQL (cweijan
)

Dejo una captura de muestra:

Un saludo.

para los que depronto lo esten intentando crear por consola

 CREATE TABLE poeple(person_id INT NOT NULL AUTO_INCREMENT, last_name VARCHAR(255) NULL, firts_name VARCHAR(255) N
ULL, address VARCHAR(255) NULL, city VARCHAR(255) NULL, PRIMARY KEY(person_id));

Hace en promedio unos tres años, inicie con esto de los cursos y me cayo trabajo referente a las bases de datos pero llego el momento de usar Drop y como había dejado las bases de datos tenia poco con mi curso tres días repasando, quería ejecutar la instrucción DROP pero me podrían correr como dicen los amigos así que me auxilie con los expertos. Saludos les invito a que si tienen duda se auxilien de los amigos profesionales ene este ramo para que no los corran. Saludos.

para aquellos que les pueda salir el error de “no connection” en windows chequen en el administrador, en la pestaña de servicios el MySQL56 esté en el estado de running, si no lo está solamente hacen click derecho “start” y se soluciona el problema. aquí les dejo el video que ví para solucionarlo https://www.youtube.com/watch?v=zz8MV3zNvNU

No le puse nombre a la tabla asi que tuve que usar lo siguiente para corregirlo

ALTER TABLE `platziblog`.`new_table` 
RENAME TO  `platziblog`.`people` ;

Comandos para la terminal:

use [database_name];

Nombre de la base de datos que estamos trabajando
select database();

show databases;

show tables;

describe [table name];

show columns from [table name];

Limpiar pantalla (⌥ = option)
⌥ + CMD + L

Apuntes:
DDL Es el acrónimo de Data Definition Language y básicamente nos permite crear y modificar la estructura de una DB. Los métodos mas usados son los siguientes:
CREATE, se utiliza para crear nuevas tablas, campos e índices
ALTER, se usa para modificar tablas, agregando o modificando la definición de campos.
DROP, se usa para eliminar tablas e índices.

La desventaja de asignar el AI al ID es que si borramos los últimos registros, sigue aumentando al ID siguiente. Ejemplo: Tenemos registros del 1 al 5; si borramos los dos últimos y añadimos uno nuevo, quedarán los siguientes: 1, 2, 3, 6.

Lo que suelo hacer es seleccionar el último valor y sumarle uno. En el ejemplo, el máximo valor (borrando los dos últimos) sería 3; a ese le sumo 1, por lo que quedaría: 1, 2, 3, 4. Ahora sí estaría ordenado. 😄

SQL tiene dos grandes sublenguajes:
DDL o Data Definition Language que nos ayuda a crear la estructura de una base de datos. Existen 3 grandes comandos:

Create: Nos ayuda a crear bases de datos, tablas, vistas, índices, etc.
Alter: Ayuda a alterar o modificar entidades.
Drop: Nos ayuda a borrar. Hay que tener cuidado al utilizarlo.
3 objetos que manipularemos con el lenguaje DDL:

Database o bases de Datos
Table o tablas. Son la traducción a SQL de las entidades
View o vistas: Se ofrece la proyección de los datos de la base de datos de forma entendible.

Un lenguaje de base de datos o lenguaje de definición de datos (Data Definition Language, DDL por sus siglas en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los programadores de la misma llevar a cabo las tareas de definición de las estructuras que almacenarán los datos así como de los procedimientos o funciones que permitan consultarlos.

Un DDL es un lenguaje de programación para definir una estructura de datos. El término DDL fue introducido por primera vez en relación con el modelo de base de datos CODASYL, donde el esquema de la base de datos ha sido escrito en un lenguaje de descripción de datos que describe los registros, los campos, y “conjuntos” que conforman el usuario modelo de datos.

En la creacion de la tabla no olviden cuadno tengan una BBDD muy grande usar el

CREATE if not exist TABLE name_table ( ...

Las sentencias DDL se utilizan para crear y modificar la estructura de las tablas así como otros objetos de la base de datos.

CREATE - para crear objetos en la base de datos.
ALTER - modifica la estructura de la base de datos.
DROP - borra objetos de la base de datos.
TRUNCATE - elimina todos los registros de la tabla, incluyendo todos los espacios asignados a los registros.

A quien no le ha pasado utilizar un DROP por accidente, a mi me ha pasado, pero allí entendí la importancia del backup (copia de seguridad), o todo caso, cuando trabajes en una empresa crear un ambiente de desarrollo, para evitar estos inconvenientes.
Pero esto se aprende con la experiencia, pues hasta que no nos pase no lo aplicamos, es un consejo para los que son nuevos en el manejo de BD.

Aporte de la clase:
Se hace mucho más interesante y divertido cuando somos alumnos activos.

create / crear db, tablas, vistas, índice
alter / modificar entidades
drop / borrar

En Javascript uso un ORM(Object Relational Mapping) llamado Sequelize. Este me permite crear las tablas escrbiendo código JS.

Considero que casi todas las tablas deben tener un id que sea incrementable y que funcione como PRIMARY KEY y que sea NOT NULL.

tengo entendido que son cuatro comandos
falta el TRUNCATE que su función es vaciar tablas si mal no recuerdo

Muy buena clase

También recomiendo usar el editor HeidSQL es mas liviano

<code>

CREATE DATABASE platziblog DEFAULT CHARACTER SET utf8;
USE platziblog;

CREATE TABLE people (
person_id INT PRIMARY KEY AUTO_INCREMENT,
last_name VARCHAR(255) NULL,
first_name VARCHAR(255) NULL,
address VARCHAR(255) NULL,
city VARCHAR(255) NULL
)
</code>

Insisto, este profesor al explicar, hace que todo sea un poco mas sencillo de lo que parece 😄

DDL = Dulce De Leche

Si alguien tiene problemas con la reconexión, en este video está la solución. <https://www.youtube.com/watch?v=zz8MV3zNvNU>
SQL se divide en 2 sub-lenguajes uno de ellos es DDL DDL (Data Definition Language) el cual nos ayuda a crear la estructura de una base de datos Comandos `CREATE` el cual ayuda a crear `ALTER` nos ayuda a alterar o modificar `DROP` es la sentencia que va a borrar Lo que se puede crear es: Bases de datos (Schema), Tablas y Vistas (este último es el como se va a mostrar la información) `CREATE DATABASE test_db;` para crear una base de datos con el nombre test\_db `USE DATABASE test_db;` es para especificar con que base de datos se va a trabajar. En MySQL nos posicionamos sobre la bases de datos, botón derechos y set as Defatult Schema Para crear una nueva tabla ```txt CREATE TABLE people ( person_id int, last_name varchar(255), first_name varchar(255), adress varchar(255), city varchar(255), ); ``` * En MySQL hay que desplegar la base de datos en la flecha de la izquierda, botón derecho sobre Tablas y Crear tabla * Nos va a solicitar el nombre de la tabla * Posteriormente vamos a definir las columnas, la primera va a ser el ID el cual va a ser PK y NN, además de AI, lo que significa Auto Incremente, es decir, que cada vez que se agregue valor se va a incrementar el valor * Para ver la nueva tabla creada es en Tables → nombre de la tabla → botón derecho → Select Rows 📌 **RESUMEN: El crear, modificar o borrar se puede hacer tanto como con comandos como con el cliente gráfico de MySQL, lo cual resulta muy sencillo de hacer**
por que no puedo ver los recursos?

les recomiendo usar la ventana completa, si la minimizan como yo lo hice el sql va a dar bugs de “boxing”

SQL se compone de dos sublenguajes principales, vamos a poner énfasis en el DDL
DDL (Data Definition Languaje): Es el sublenguaje utilizado para definir y gestionar la estructura de la base de datos.
El comando CREATE sirve para crear objetos de la base de datos…
Aquí hay algunos de los objetos que puedes crear utilizando el comando CREATE:
Base de Datos: Una nueva base de datos en el servidor
Tabla: estructura que almacena datos en filas y columnas
Vista: Es una consulta almacenada que se puede utilizar como una tabla virtual. Proporciona una forma de ver los datos de una o más tablas desde diferentes perspectivas sin modificar la estructura física de los datos
Índice: estructura que mejora la velocidad de búsqueda y recuperación de datos en una tabla
Procedimiento almacenado: Es un conjunto de instrucciones SQL que se almacena en el servidor de la base de datos y se pueden llamas varias veces cuando sea necesario

Wooow! sigo alucinada con todo esto!

El lenguaje de definición de datos o DDL (por sus siglas en inglés) es una parte importante de cualquier sistema de gestión de bases de datos (DBMS). Este lenguaje se utiliza para definir la estructura y los elementos de los datos que se almacenarán en una base de datos, incluyendo tablas, índices, relaciones, procedimientos almacenados, vistas y otros objetos.

En otras palabras, el DDL es el conjunto de instrucciones que se utilizan para crear, modificar y eliminar objetos de una base de datos. Estas instrucciones se utilizan para definir la estructura de la base de datos y establecer las reglas y restricciones que se aplicarán a los datos almacenados.

El DDL se utiliza para crear y modificar objetos en una base de datos, lo que permite a los desarrolladores de software crear nuevas tablas y relaciones, así como modificar las ya existentes. Además, el DDL es utilizado por los administradores de bases de datos para establecer políticas y reglas que rigen el acceso y la seguridad de los datos almacenados.

Algunos ejemplos comunes de comandos DDL incluyen CREATE TABLE (para crear una nueva tabla), ALTER TABLE (para modificar una tabla existente), DROP TABLE (para eliminar una tabla) y CREATE INDEX (para crear un índice en una tabla).

En resumen, el DDL es una parte crucial de cualquier sistema de gestión de bases de datos, ya que permite a los desarrolladores y administradores crear y modificar la estructura y los objetos de una base de datos de manera eficiente y efectiva.

Los comandos de SQL están divididos en 4 grupos

  • DDL (Data Definition Language) -> Se ocupa del esquema y la descripción de las bases de datos
  • DML (Data Manipulation Language) -> Se ocupa de la manipulación de datos e incluye las declaraciones SQL más comunes, como SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR, etc.
  • DCL (Data Control Language) -> Se ocupa de los permisos y controles del sistema de la base de datos
  • TCL (Transaction Control Language) -> Se ocupa de las transacciones dentro de la base de datos

La sentencia create también permite create store procedures

Excelente explicación y práctica

Estoy trabajando en Xampp mi equipo es un poco lento para

Al correr el flujo de la clase en mac, me encontré que al realizar el comando “Select rows * limit 1000” el workbench se cierra. Al investigar un rato, vi que se debe a que la versión del servidor de MySQL y workbench que había descargado no eran compatibles. Para corregirlo eliminé los programas antes instalados y bajé ambos en la versión 8.0.27 (Mac con procesador intel). Les sugiero seguir el siguiente video
Con eso pude correr la clase sin mayores problemas

Momento donde el código aparece en pantalla

Me gustó mucho esta clase

que nunca en la vida me pase que borro una bd completa xd ay que miedo

El lenguaje SQL tiene dos grandes sublenguajes.

  • DDL
    Data Definition Language.

  • Tres comandos que se utilizan en el DDL:
    Create; Nos ayuda a crear, crear arias cosas puede ser una base de datos, puede ser una tabla, puede ser un índice, etc:
    After; Nos va a modificar o alterar algunas de estas entidades, podemos modificar una tabla por ejemplo agregandole una nueva columna o quitandole una columna,etc.
    Drop; sentencia que nos ayuda borrar, hay que tener mucho cuidado como usamos esta sentencia.
    Básicamente a lo que se refiere, es un leguaje que nos ayuda a crear la estructura de una base de datos, nos ayuda a crear cimientos, relaciones, las entidades.

  • Al usar Drop incluso podemos borrar toda nuestra base de datos.

Deverian de actualizar este curso la interfaz grafica ya no es la misma.

Las primary key por defecto no son auto-incrementales?

Jamás llegué a pensar que utilizaría este tipo de programas. Gracias!

oracle trae las sentencias de rollback, en el te permite ir un paso atras si te equivocas en el drop

DaTA Definition Language (DDL) Es un lenguaje que nos ayuda a crear la estructuta de una base de datos.

  • Create: Nos ayuda elementos de en neustra base de datos.
    • Database (squimas): La base de datos
    • Table: Proyeccion o traduccion en SQL de las entidades que estan dentro de la DB
      -View: Proyeccion de los datos de nuestra DataBase para poder mostrarla de forma entendible.
  • Alter: Nos ayuda a alterar o modificar la base de datos.

-Drop: Es para borrar datos de nuestra DataBase

CREATE DATABASE test_db;
(crear la base de datos)

USE DATABASE test_db;
(usar esta base de datos por dafault)

Convenciones de nombres de bases de datos


  • Escribir comandos/cláusulas SQL en mayúsculas

  • Nombres de tablas

    • Usa sustantivos en minúsculas y en plural. Por ejemplo, algunos nombres de tablas pueden ser: usuarios, agencias.
    • En los casos donde necesites más de un sustantivo, sepáralos con un guion bajo. Por ejemplo: usuario_data, agencias_por_departamentos.
  • Nombres de columnas o atributos

    • Usa sustantivos en minúsculas y en singular. Ejemplo: nombre, edad.
    • En los casos donde necesites más de un sustantivo, sepáralos con un guion bajo. Por ejemplo: producto_nombre, agencia_nombre.

Mis apuntes https://gitlab.com/escuela-db/fundamentos-de-bases-de-datos

Ojo que son comillas simples para el nombre de la base de datos.