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

DML

25/67
Recursos

DML trata del contenido de la base de datos. Son las siglas de Data Manipulation Language y sus comandos son:

  • Insert: Inserta o agrega nuevos registros a la tabla.
  • Update: Actualiza o modifica los datos que ya existen.
  • Delete: Esta sentencia es riesgosa porque puede borrar el contenido de una tabla.
  • Select: Trae información de la base de datos.

Aportes 448

Preguntas 120

Ordenar por:

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

Como curiosidad imagine que si podía agregar varios datos a mi tabla y si se podía, tal vez sea algo obvio para muchos pero si recién estás empezando en esto créeme que te emociona hacer estas simples cosas.
adjunto imagen:

Resumen de esta clase y las tres anteriores

DDL -> Data Definition Language
Ayuda a crear la estructura de una BD.

  • Create
    * Database
    * Table
    * View
  • Alter
  • Drop

DML -> Data Manipulation Language
Ayuda a la manipulacion del contenido

  • Insert
  • Update
  • Delete
  • Select

La cara de todos los que eliminamos nuestra tabla en la clase anterior .-.

Y yo que eliminé las tablas por la clase pasada #VivaYo.

Yo se que borraste tu tabla xD. Dejare esto por aquí…

CREATE TABLE people (
	person_id int AUTO_INCREMENT,
    last_name varchar(225),
    first_name varchar(255),
    address varchar(255), 
    city varchar(255),
		PRIMARY KEY (person_id)
);
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');
SELECT * FROM people;

Por si alguien quiere copiar y pegarlo

INSERT INTO people (last_name, first_name, address, city) 
  VALUES ('Hernández', 'Laura', 'Calle 21', 'Monterrey');

Para evitar borrar cualquier dato sin querer por ejemplo borrar todos los datos de una tabla es importante hacer uso de BEGIN TRAN NOMBRE_DE_LA_TRANSACCION

La sentencia que se utiliza para indicar el comienzo de una transacción es BEGIN TRAN. Si alguna de las operaciones de una transacción falla hay que deshacer la transacción en su totalidad para volver al estado inicial en el que estaba la base de datos antes de empezar. Esto se consigue con la sentencia ROLLBACK TRAN

Si todas las operaciones de una transacción se completan con éxito hay que marcar el fin de una transacción para que la base de datos vuelva a estar en un estado consistente con la sentencia COMMIT TRAN

En vez de ejecutar DELETE FROM CLIENTES que borra todos los registros de la Tabla CLIENTES puedes ejecutar BEGIN TRAN TRANCLIENTE DELETE FROM CLIENTES que hace lo mismo pero no asegura los cambios en la base de datos. Si al realizar una consulta de verificación y darte cuenta que eliminaste todos los datos de la tabla puedes deshacer la operación con ROLLBACK TRAN TRANCLIENTE o si quieres confirmar que el DELETE fue realizado correctamente usas COMMIT TRAN TRANCLIENTE para confimar los datos y asentar los cambios en la base de datos.

Cerrar el motor de base de datos (en mi caso SQL SERVER) elimina las transacciones en memoria que no se hayan confirmado (lo mismo que ROLLBACK TRAN).

Puedes hacer varias transacciones al tiempo, lo único que necesitas es definir nombres de transacciones diferentes.

Me parece bueno tener visualizado este diagrama (obtenido del enlace del profesor)

Buen dia platzinautas, aquí dejo unos conceptos que pueden ayudar a reforzar el tema:
DML: Data Manipulation Language
Por su traducción lenguaje de manipulación de datos nos proporciona comandos para llevar acabo tareas de consulta o manipulación de datos
Comandos DML:
Select (Seleccionar): Este comando nos permite consultar los datos almacenados en una tabla de la base de datos. Select cuenta con los siguientes subcomandos:

  • ALL: Indica que queremos seleccionar todos los valores.
  • DISTINCT: Indica que queremos seleccionar sólo los valores distintos
  • FROM: Indica la tabla (o tablas) desde la que queremos recuperar los datos.
  • WHERE: Especifica una condición que debe cumplirse para que los datos sean devueltos por la consulta. Admite los operadores lógicos AND y OR.
  • GROUP BY: Especifica la agrupación que se da a los datos.
  • ORDER BY: Presenta el resultado ordenado por las columnas indicadas.
    Insert (Insertar): Este comando agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.
    Update (Actualizar): Este comando es utilizado para modificar los valores de un conjunto de registros existentes en una tabla.
    Delete (Borrar): Este comando borra uno o más registros existentes en una tabla.
    Espero les ayude amigos, saludos. 😃

Las sentencias SQL se dividen en dos categorías; Lenguaje de definición de datos; data definition language (DDL) y Lenguaje de manipulación de datos ;data manipulation language (DML).

Lenguaje de definición de datos (DDL)
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.
Lenguaje de manipulación de datos (DML)
Las sentencias de lenguaje de manipulación de datos (DML) son utilizadas para gestionar datos dentro de los schemas. Algunos ejemplos:

SELECT - para obtener datos de una base de datos.
INSERT - para insertar datos a una tabla.
UPDATE - para modificar datos existentes dentro de una tabla.
DELETE - elimina todos los registros de la tabla; no borra los espacios asignados a los registros.

Un truco que uso con los UPDATE es en vez de ejecutarlo directamente, cambio el UPDATE por SELECT y veo si los datos que me regresa son los que quiero actualizar.

Las palabras reservadas pueden escribirse tanto en mayuscula como en minuscula. Sin embargo, la convencion(y buena practica) es usarlas por completo en mayusculas.

Hace unos días me llamo la atención un comentario que hace referencia al termino de error de capa 8. Un día completo me generó esa inquietud de saber a que se refería, hoy que tuve tiempo, me entero que el error de capa 8 es un término utilizado para indicar que el error es causado por la ineptitud del usuario.

dddsf

Insert: 

	INSERT INTO 		`Nombre_de_la_Base_de_Datos`.`Nombre_de_la_tabla`
		(`Columna1`,`Columna3`,`ColumnaN`) VALUES ('ValorCol1','ValorCol3','ValorColN');
	
Update:
	UPDATE Nombre_de_la_tabla
	SET ColumnaAModificar1=Nuevo_valor, ColumnaAModificar2='Nuevo_valor'
	WHERE ColumnaGuia= 'ValorGuía'; // Fila en la que afectara
	
Delete:
	DELETE FROM Nombre_de_la_tabla
	WHERE ColumnaGuia = 'ValorGuía'; // Fila en la que afectara
	
Select:
	SELECT Columnas_a_mostrar FROM Nombre_de_la_tabla
	WHERE ColumnaGuia = 'ValorGuía';

Yo al ver que el profe inserta datos en la tabla que borre en la clase anterior.

Borre mi base, ahora tengo que volver hacerla XD

Si ves esto DELETE FROM clients; en tu consola, huye lo más lejo posible 😃.

La instrucción WHERE es muy importante utilizar en nuestros DELETEs, UPDATEs.

DELETE FROM clients WHERE client_id = 1;

DML: DATA MANIPULATION LANGUAGE

  • Se utiliza prinicipalmente para la manipulacion de la base de datos.
  • Operaciones principales: INSERT, UPDATE, DELETE, SELECT.
  • Las operaciones arriba mencionadas se utilizan a lo largo de todo el desarrollo del proyecto.
  • INSERT
    • Agrega un nuevo registro o tupla a nuestra database.
    • Se utiliza de la siguiente manera:
      • INSERT INTO (nombreDeLaTabla) (listaDeNombresDeAtributos)
      • values (listaDeValoresDeAtributos);
  • UPDATE
    • Actualiza o modifica los datos que ya existen.
    • No inserta un dato si este no existe.
    • Se utiliza de la siguiente manera:
      • UPDATE people (para actualizar la tabla con ese nombre)
      • SET lastName = ‘Chavez’, city = ‘Merida’ (actualizar los datos como se especifico en el set)
      • WHERE personID = 1; (donde el ID sea igual a 1).
      • Sino se usa el WHERE, el cambio se realiza sobre toda la base de datos.
      • Mas ejemplos en el minuto 08:10.
  • DELETE
    • RIESGOSO!
    • Esta sentencia borra permanentemente uno o varios resgistros de una tabla. Si es mal utilizada (por ejemplo, sin utilizar WHERE, borra la tabla entera).
    • Se utiliza de la siguiente manera:
      • DELETE FROM people (borrar de la tabla de nombre “people”)
      • WHERE personID = 1 (donde el ID es 1)
      • (borra de la tabla la persona de ID 1).
  • SELECT
    • Nos trae informacion de la base de datos.
    • Se utiliza de la siguiente manera:
      • SELECT (campo o campos a traer de la base)
      • FROM (nombreDeLaTabla)
      • WHERE; (opcional, para restringir o filtrar los datos)

UPDATE: cambiar registro.
SET: parámetros a cambiar:
WHERE: especifica el registro a cambiar.
INSERT: agregar registro.
INTO: tabla a agregar los registros.
VALUES: valores a agregar.
DELETE: eliminar registro.
FROM: especifica la tabla.
WHERE: especifica el registro a eliminar.

DDL=Define la estructura
DML = Manipula datos o información

Si queremos usar el WHERE con doble condicional, es decir que dado el caso de que tengamos valores repetidos y necesitemos dos o màs valores para poder identificar una columna(sin usar el primary key)
utilizamos el 'and’
EJEMPLO :
UPDATE people
SET last_name = 'Solanito’
WHERE first_name = ‘Israel’ and address = ‘Calle famosa’;

para la ultima version de workbrench(2020) a la hora de practicar la funcion UPDATE, me salia mucho el error," 1175 You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column."
al intentar solucionar como dijo el profe y no solucionar nada, googlee el error y encontre que se puede desactivar de la siguiente manera:
SET SQL_SAFE_UPDATES = 0;
ejecuten este comando antes de hacer los UPDATES.
espero les sea de mucha ayuda

Para correr el código y no usar “el rayito”, se puede seleccionar el code a ejecutar y en el teclado presionar Ctrl + Enter.

Les comparto algo que muy posiblemente ya saben 😃

Me siento como niño pequeño experimentando con las bases de datos, el lenguaje es tan sencillo y con tan pocas líneas ves resultados.

No te olvides de poner el where en el delete from ♪

DML (Data Manipulation Language)

  • Insert: insertar datos en tablas
  • Update: actualizar datos
  • Delete: Borra datos de una tabla
  • Select: consultar datos de una tabla

Cuando se esta trabajando en producción y necesites hacer un UPDATE o un DELETE de un gran numero de registros al mismo tiempo, es muy recomendable que crees una copia temporal de la tabla que vas a afectar. Escribes el Query que vas a ejecutar y lo aplicas a la tabla temporal, revisas que todo este correcto y de acuerdo a lo deseado y procedes a aplicar el Query a la tabla de producción.

De esta manera jamás tendrás un mini ataque cardíaco de esos 😃

Este curso esta buenisimo

Para desactivar la opción de actualizaciones seguras (lo que no permite ejecutar la segunda ni la tercera sentencia del UPDATE)
debes ejecutar la siguiente sentencia:

SET SQL_SAFE_UPDATES = 0;

Y si deseas volver a activarla, ejecuta:

SET SQL_SAFE_UPDATES = 1;

No existe el ctrl+z en workbench?

Estoy feliz, pude lograr seguir todos los ejemplos del profesor, bravo por los aportes de los compañeros que dejan aportes con soluciones.

El uso de las sentencias INSERT, UPDATE, DELETE y SELECT se le conoce dentro del desarrollo de software como el CRUD (Create: Crear, Read: Leer, Update: Actualizar, Delete: Borrar); el cual pueden consultar en el siguiente link: https://es.wikipedia.org/wiki/CRUD

no se olviden el where …

Un tip muy útil al trabajar en Mysql Workbench es que para ejecutar el comando solo de la línea en donde está el cursor pulsas CTRL + ENTER y para ejecutar todos los comandos escritos en el editor pulsas CRTL + SHIFT + ENTER. No necesitas seleccionar todos los comandos como hace el profesor, aunque supongo que por algo lo hace.

No sé si a todos les ayude pero, yo no guardé la clave de mysql root en mac os, por eso adjunto este pequeño tutorial de como cambiarla ver aquí

Data Model Language
Comandos usados:
- Insert?
○ Insert into people (last_name, first_name, adrres, city)?values (‘hernandez’, ‘Laura’, ‘Calle 21’, ‘Monterrey’);?
- Update
○ UPDATE people?SET last_name = ‘Chavez’, city = ‘Merida’?WHERE person_id = 1;?
- Delete
○ DELETE FROM people?WHERE person_id = 1;?
- Select
○ SELECT first_name, last_name?FROM people;

DML
En ingles es el acrónimo de Data Manipulation Language, y es un idioma que proporcionan los DBMS y permiten al usuario llevar tareas de consulta o modificación de datos. El lenguaje de manipulación de datos mas famoso hoy en dia es SQL, cuyos elementos son: SELECT, INSERT, DELETE y UPDATE.

Me gustan mucho las clases con este profesor, realmente sabe los que hace y lo mas importante, sabe transmitir sus conocimientos a los alumnos.

Modificando valores por ciudad

No es necesario poner las letras mayúsculas a las palabras reservadas, de cualquier manera funcionan, es mas una buena practica

25. DML

Data Manipulation Language

  • Insert
  • Update
  • Delete
  • Select
Insert

INSERT INTO people (last_name, first_name, address, city)
VALUES ('Hernandez', 'Laura', 'Calle 21', 'Monterrey');

UPDATE people
SET last_name = 'Chávez', city= 'Mérida'
WHERE person_id = 1;

UPDATE people
SET first_name = 'Juan'
WHERE city = 'Mérida';

UPDATE people 
SET first_name = 'Juan';

Delete 

DELETE FROM people
WHERE person_id = 1;

DELETE FROM people; --No ejecutar

Select --Se utiliza mucho

--Extrae datos de la bd
SELECT first_name, last_name 
FROM people 

para los que borraron la tabla

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`));

Com o se crea la nueva pestaña cuando ingresa los comandos.
Yo tengo My SQL 8 y me abre solo una pestaña

Si como yo, borraste tu base de datos, puedes volver a crearla con los siguientes comandos en Workbench:

Primero necesitamos crear el schema:

CREATE SCHEMA `platzi_test` DEFAULT CHARACTER SET utf8 ;

Después, la tabla:

CREATE TABLE `platzi_test`.`people` (
  `person_id` INT NOT NULL AUTO_INCREMENT,
  `last_name` VARCHAR(50) NULL,
  `first_name` VARCHAR(50) NULL,
  `adress` VARCHAR(50) NULL,
  `city` VARCHAR(50) NULL,
  PRIMARY KEY (`person_id`));

Recuerda seleccionar la opción “Set as default schema”
Y ahora si, puedes continuar con la clase 😉

DML trata del contenido de la base de datos. Son las siglas de Data Manipulation Language y sus comandos son:

Insert: Inserta o agrega nuevos registros a la tabla.
Update: Actualiza o modifica los datos que ya existen.
Delete: Esta sentencia es riesgosa porque puede borrar el contenido de una tabla.
Select: Trae información de la base de datos.

Comparto la practica de inserción de datos en el ejercicio practico que estoy realizando.

  • Los scripts de la clase:

Insert

INSERT INTO people (last_name,
first_name, address, city)
VALUES ('Hernández', 'Laura',
'Calle 21', 'Monterrey');

Update

	UPDATE people
  SET last_name = 'Chávez', city= 'Mérida'
  WHERE person_id = 1;

  UPDATE people
  SET first_name = 'Juan'
  WHERE city = 'Mérida';

  UPDATE people
  SET first_name = 'Juan';

Delete

DELETE FROM people
WHERE person_id = 1;

Select

SELECT fist_name, last_name
FROM people;

Por si usan la versión 8 de MySQL en Windows y les sale el error 1046:

UPDATE platziblog.people
SET last_name =‘Chavez’ , city = 'Merida’
WHERE id_persom = 1;

insert into books(title, author, publication_year)
VALUES ("The Death and Life of the great American School System", 
"Diane Ravitch", "2010"),
("Powerful Teaching", "Pooja K Agarwal", "2019"),
("Math Fact Fluency", "Gina Kling", "2019"),
("Research Methods in Education", "Louis Cohen", "2017"),
("Why don't students like school?", "Daniel T. Willingham", "2009");
INSERT INTO `platzi_test`.`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');

INSERT INTO people (last_name, first_name, address, city) 
  VALUES ('Hernández', 'Laura', 'Calle 21', 'Monterrey');

En álgebra relacional conocemos como proyección lo siguiente SELECT first_name, last_name FROM people;

Se clasifican en dos grandes grupos:

lenguajes de consulta procedimentales
Lenguajes procedimentales. En este tipo de lenguaje el usuario da instrucciones al sistema para que realice una serie de procedimientos u operaciones en la base de datos para calcular un resultado final.

lenguajes de consulta no procedimentales
En los lenguajes no procedimentales el usuario describe la información deseada sin un procedimiento específico para obtener esa información

DML: trata del contenido de la base de datos. Son las siglas de Data Manipulation Language y sus comandos son:

  • Insert: Inserta o agrega nuevos registros a la tabla.
    INSERT INTO platziblog.people(last_name, first_name, address, city)
    VALUES (‘Hernandez’, ‘Laura’, ‘Calle 21’,‘Monterrey’);
    .
  • Update: Actualiza o modifica los datos que ya existen.
    UPDATE people
    SET last_name = ‘Chavèz’, CITY = 'Merida’
    WHERE person_id = 1;
    .
  • Delete: Esta sentencia es riesgosa porque puede borrar el contenido de una tabla.
    Delete FROM people
    WHERE person_id = 1;
    .
  • Select: Trae información de la base de datos.
    SELECT first_name, last_name
    FROM people;

A mi me funcionó indicando primero el nombre de la base de datos y luego el nombre de la tabla, separandolos solo con un punto (lo hice en windows)

INSERT INTO platziblog.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', 'Cental 1', 'Monterrey');

Para las personas que realizaron la practica anterior de eliminar la bases de datos. Aquí les dejo nuevamente los datos de la tabla people.

INSERT INTO platzi_test.people (person_id,last_name, first_name, address, city)
VALUES (1,‘Vázquez’, ‘Israel’, ‘Reforma 222’, ‘Mexico’);

INSERT INTO platzi_test.people (person_id,last_name, first_name, address, city)
VALUES (2,‘Alanís’, ‘Edgar’, ‘Avenida siempreviva’, ‘Morelia’);

INSERT INTO platzi_test.people (person_id,last_name, first_name, address, city)
VALUES (3,‘Hernández’, ‘Mónica’, ‘Pensilvania 1600’, ‘Aguascalientes’);

INSERT INTO platzi_test.people (person_id,last_name, first_name, address, city)
VALUES (4,‘Hernández’, ‘Laura’, ‘Calle 21’, ‘Monterrey’);

Acá les dejo unos tips:

  • Utiliza siempre una cláusula WHERE al ejecutar un DELETE o un UPDATE, de lo contrario, afectarás a todas las filas de la tabla y podrías causar daños irreparables.

  • Cuando utilices la operación SELECT, es recomendable que especifiques solamente las columnas que necesitas en lugar de utilizar el asterisco (*). Esto hace que la consulta sea más rápida y reduce el tráfico de red.

  • Para mejorar el rendimiento de las consultas SELECT, utiliza índices en las columnas que se utilizan con frecuencia en las cláusulas WHERE o en la ordenación.

  • Asegúrate de que los valores de los campos que utilizas en una cláusula WHERE estén correctamente indexados. Si no lo están, puede haber un impacto significativo en el rendimiento de la consulta.

  • Cuando utilices la operación INSERT, es recomendable que especifiques explícitamente las columnas que estás insertando. Esto evita errores si la tabla cambia en el futuro y garantiza que la información se inserte en las columnas correctas.

Si sale ese error del UPDATE ¿hay forma de ignorarlo? se me ocurre que pueden haber casos donde si necesitemos hacer algo así y por lo que veo en la explicación no dejo avanzar.

Si quieren borrar algun campo o en un rango pueden hacer

DELETE FROM people 
WHERE id < 0 AND id > 10 

Asi podrias borrar en rango o multiples registros, al menos esta fue una forma que descubri en stackoverflow

Yo crei que el lenguaje más fácil para aprender era python, pero aparentemente MYSQL es demasiado fácil

Pregunta de examen: ¿En qué fase de un proyecto se utiliza más fuertemente el lenguaje DML?

El profe nos hizo borrarla para despues volver a usarla… me toco hacer todo de nuevo!

yo en el minuto 11,volviéndome loco por no saber por que no se ejecuta el UPDATE, 😂😂, excelente clase profesor!

https://www.youtube.com/watch?v=JPKHHw6o6Iw
A qui esta el vídeo para desactivar el modo seguro
Error: 1175

Me gustó mucho esta clase, la verdad muy buena. Buen profesor!

Si quieres ejecutar el segundo Update del ejercicio sigue los siguientes pasos:

  1. Ve a la pestaña Edit y selecciona la opción Preferences
  2. Selecciona la opción SQL Editor y luego quitale el chulito a la opción que dice Safe Updates (…) y dale OK.
  3. Ve luego a la pestaña Query y da click en la opción Reconnect to Server
  4. Ejecuta nuevamente el Update con Ctrl + Enter. 😄

Esta es una opcion En MySQL
Es la base de datos con la que he estudiado.

El cliente de MySQL trae por defecto dentro de las utilerías, un comando que nos sirve para realizar respaldos de datos en el servidor MySQL. Dicho comando es mysqldump.

El comando mysqldump se utiliza desde la terminal y recibe una serie de parámetros en los cuales podemos definir el realizar un respaldo completo del servidor, de una base de datos específica ó tablas específicas dentro de una base de datos. Esto es muy útil cuando tenemos información crítica y deseamos implementar una tarea automática de respaldos.

Así como con el cliente de MySQL, el comando mysqldump necesita de un usuario que tenga los privilegios necesarios para extraer la información de la base de datos a respaldar.

La sintáxis básica del comando mysqldump es:

mysqldump -u [usuario] -p [base de datos] > [archivo de respaldo].sql
Rutinas básicas con el comando mysqldump
Dentro de las rutinas básicas de respaldo podemos encontrar las siguientes:

Respaldo completo de una base de datos
mysqldump -u [usuario] -p [base de datos] > [archivo de respaldo].sql
Respaldo parcial de una base de datos
mysqldump -u [usuario] -p [base de datos] [tabla1] [tabla2] > [archivo de respaldo].sql
Respaldo parcial de una base de datos, sólo estructura (sin datos)
mysqldump -u [usuario] -p [base de datos] [tabla1] [tabla2] --no-data > [archivo de respaldo].sql
Respaldo completo de todas las bases de datos
mysqldump -u [usuario] -p --all-databases > [archivo de respaldo].sql
Respaldo parcial de una tabla a formato CSV
mysqldump -u [usuario] -p --tab /tmp --fields-enclosed-by=" --fields-terminated-by=, [base de datos] [tabla1] [tabla2]
Este último comando va a crear dos archivos para cada tabla, uno en formato .txt con la información y otro en formato .sql con la estructura de la tabla.

Enlace https://www.nanotutoriales.com/como-crear-un-respaldo-en-una-base-de-datos-mysql

gracias por dictar el curso con tanta claridad, la verdad los acercamientos que he tenido a bases de datos en la universidad me habían hecho tenerles miedo pero está siendo muy ameno el curso.

Insert, como su nombre indica, agrega un nuevo registro a nuestra tabla en la base de datos. Es decir insertar registro o renglones en la estructura básica. Primeramente va en el comando: “SELECT INTO” y, luego va: “VALUES”, value, significa los valores que se van a colocar en los select, que se escogieron anteriormente. Es importante conocer que los campos que estén, “vacios”, se coloquen con el valor default, que decidimos poner. Recomendaciones: (i)ES IMPORTANTE MANTENER EL ORDEN, de los campos que se pusieron arriba. hay que tener cuidado con ver el orden y, los datos Default en la configuración de los “objetos”

Insert: Inserta o agrega nuevos registros a la tabla.
Update: Actualiza o modifica los datos que ya existen.
Delete: Esta sentencia es riesgosa porque puede borrar el contenido de una tabla.
Select: Trae información de la base de datos.

Insert agrega registros a una tabla
Se puede ingresar todos los campos, o se dejan vacíos algunos, ahí es donde entra el valor por defecto de la tabla.
Insertar a una tabla estos valores.

Recuerden siempre poner el where miren lo que le paso a gitlab que de suerte se salvo o si no hoy no existiria gitlab
https://www.youtube.com/watch?v=3gzyy9UMRvg&t=1s

¡Hola!
Comparto queries para que realices los ejercicios 😃

Insert
INSERT INTO people (last_name, first_name, address, city)
VALUES (‘Hernández’, ‘Laura’, ‘Calle 21’, ‘Monterrey’);

Update
UPDATE people
SET last_name = ‘Chávez’, city= 'Mérida’
WHERE person_id = 1;

UPDATE people
SET first_name = 'Juan’
WHERE city = ‘Mérida’;

Para los que no lo conozcan y se quieran reir un rato, busquen en youtube “No te olvides de poner el where en el delete from” 😛

Cada vez mejor se pone el curso, me esta encantando el mundo de las bases de datos y eso que recién comienza

Este articulo se ve interesante:
link

No te olvides de poner el WHERE en DELETE FROM... https://youtu.be/i_cVJgIz_Cs

Facil 😃

DLL= Data Definition Languages (CREATE, DROP, ALTER)
-Para crear la estructura de la Base de datos
DML=Data Manipulation Language (INSERT, UPDATE, DELETE)
-Para manipular la data

Por lo que veo MySQL no conoce a nuestro amigo Ctrl + z

Habia trabajado con DB varias veces y hasta ahora aprendo que existe DDL y DML. Buena clase.

en 2024 volviendo a repasar este gran curso!

Les dejo un script para agregar 50 usuario ficticios para que puedan hacer sus practicas

INSERT INTO people (last_name, first_name, address, city)
VALUES
('Hernández', 'Juan', '123 Calle Principal', 'Ciudad de México'),
('Gómez', 'María', '456 Avenida Central', 'Guadalajara'),
('Rodríguez', 'José', '789 Callejon de las Flores', 'Monterrey'),
('Martínez', 'Ana', '101 Calle de la Esperanza', 'Puebla'),
('García', 'Luis', '202 Avenida del Sol', 'Tijuana'),
('Fernández', 'Laura', '303 Calle de los Sueños', 'León'),
('López', 'Carlos', '404 Paseo de la Luna', 'Cancún'),
('Díaz', 'Sofía', '505 Calle de las Estrellas', 'Mérida'),
('Pérez', 'Miguel', '606 Avenida del Parque', 'Querétaro'),
('Gutiérrez', 'Paola', '707 Calle de la Luna', 'Guadalupe'),
('Vázquez', 'Francisco', '808 Avenida de los Ángeles', 'Hermosillo'),
('Torres', 'Valentina', '909 Paseo del Bosque', 'Chihuahua'),
('Flores', 'Pedro', '111 Calle de la Montaña', 'Culiacán'),
('Cruz', 'Isabella', '222 Avenida del Mar', 'Acapulco'),
('Ramos', 'Diego', '333 Calle de la Playa', 'Tuxtla Gutiérrez'),
('Sánchez', 'Valeria', '444 Avenida del Coral', 'Mexicali'),
('Mendoza', 'Javier', '555 Calle de la Brisa', 'Aguascalientes'),
('Romero', 'Fernanda', '666 Avenida del Cielo', 'Toluca'),
('Jiménez', 'Jorge', '777 Paseo de las Mariposas', 'Celaya'),
('Herrera', 'Renata', '888 Calle de las Palmeras', 'Durango'),
('Medina', 'Ricardo', '999 Avenida de las Fuentes', 'Cuernavaca'),
('Aguilar', 'Ximena', '121 Calle de los Ríos', 'Morelia'),
('Ortiz', 'Emilio', '232 Avenida del Valle', 'Villahermosa'),
('Castro', 'Daniela', '343 Calle de las Colinas', 'Pachuca'),
('González', 'Adrián', '454 Avenida de los Lagos', 'Torreón'),
('Góngora', 'Camila', '565 Calle de las Lomas', 'Reynosa'),
('Montes', 'Eduardo', '676 Paseo de los Olivos', 'Matamoros'),
('Zamora', 'Alejandra', '787 Avenida de los Cactus', 'Tampico'),
('Martínez', 'Héctor', '898 Calle de los Girasoles', 'Campeche'),
('Guerrero', 'Ariana', '909 Avenida de las Maravillas', 'Playa del Carmen'),
('Lara', 'Bruno', '111 Paseo de las Aves', 'Colima'),
('Navarro', 'Gabriela', '222 Calle de los Pinos', 'Cabo San Lucas'),
('Ríos', 'Oscar', '343 Avenida de las Dunas', 'San Luis Potosí'),
('Guerra', 'Natalia', '454 Calle de los Cerezos', 'Juárez'),
('Juárez', 'Martín', '565 Paseo de las Rosas', 'Irapuato'),
('Carmona', 'Eva', '676 Avenida de los Alamos', 'Tlalnepantla'),
('Delgado', 'Roberto', '787 Calle de las Luciérnagas', 'Piedras Negras'),
('Reyes', 'Ana Sofía', '898 Avenida de los Girasoles', 'Culiacán'),
('Fuentes', 'Leonardo', '909 Paseo de las Violetas', 'Puebla'),
('Santos', 'Brenda', '111 Calle de los Azahares', 'Monterrey'),
('Hidalgo', 'Raúl', '222 Avenida de las Mariposas', 'Cancún'),
('Salazar', 'Melissa', '343 Paseo de las Orquídeas', 'Mérida'),
('Cabrera', 'Ángela', '454 Calle de los Jazmines', 'Tijuana'),
('Valdez', 'Hugo', '565 Avenida de las Amapolas', 'Acapulco'),
('Orozco', 'Diana', '676 Paseo de los Cocos', 'Chihuahua'),
('Vega', 'Fernando', '787 Calle de los Olivos', 'Guadalajara'),
('Molina', 'Monica', '898 Avenida de las Rosas', 'Hermosillo'),
('Cortés', 'Mario', '909 Paseo de las Palmas', 'Tuxtla Gutiérrez'),
('Ochoa', 'Victoria', '111 Calle de las Gardenias', 'Mexicali');

Para cambiar el nombre de una columna:

ALTER TABLE people
CHANGE COLUMN fist_name first_name VARCHAR(255);

Para borrar una fila:

DELETE FROM people WHERE person_id = 1;

En el siguiente enlace puedes generar datos para tus tablas de tu base de datos. https://mockaroo.com/
💯💚

NOOOOOO CHAVEZZ NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

Por lo que entiendo entonces, si queres un UPDATE o un DELETE que sea preciso, el WHERE debera hacer referencia a la Primary Key.
De otra forma, el programa no nos dejara hacerlo, o estaremos haciendo una gran cagada 🤣

Le quiero dar like a la clase, que increíble explicación gracias Israel ❤️

Si quieren practicar con muchos datos, pero no quieren perjudicar sus propias tablas y demas, usen:

https://github.com/dalers/mywind

Pasos:

git clone https://github.com/dalers/mywind

mysql -u {usuario} -p < northwind.sql
mysql -u {usuario} -p < northwind-data.sql

     

que hueva es este profesor!!! pára quer nos hizo eliminar lo que habiamos hecho si iba volver a trabajar en lo mismo!!!

primer codigo

INSERT INTO people (last_name, first_name, address, city)
VALUES ("Hernandez", "Laura", "Calle 12", "Monterey");

segundo

UPDATE people
SET last_name='Chavez', city='Merida'
WHERE person_id=1;

tercero

UPDATE people
SET first_name='Juan'
WHERE city='Merida';

soy el unico que toma la clase en velocidad 1.5x jajajsj

El profesor dijo que el update con un where muy general (o sin el) no se podia hacer debido al modo seguro de MySQL.
Aquí un tutorial para desactivar ese modo seguro
https://www.geeksengine.com/database/manage-table/safe-update.php#:~:text=SET SQL_SAFE_UPDATES%3D0%3B,Query -> Reconnect to Server.

‘DML es sobre el contenido de la base de datos’, esto nunca me lo explicaron así en la Universidad.

Donde se te olvide el WHERE en un update o delete tu estado de empleado será actualizado a cliente :v

por si la borraron u.u , lo ejecutan en el Query

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

por si alguien le paso de que les marca el siguiente error:

You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences

Tienen que ir a Edit>Preferences

el la ventana ir a sql editor y en la parte inferior desmarcar la opción de “Safe Updates”

y solo reiniciar la conexión, listo con ello podrás realizar cambios:

Estoy muy feliz aprendiendo todo esto!
![](

Gracias ❤️

Práctica de la clase 👨‍💻

# DML INSERT: Agregandon registros a nuestra tabla people de la base de datos platziblog

INSERT INTO platziblog.people (last_name, first_name, address, city)
VALUE ("FRAGOZO", "NARENN", "Carrera 123 calle 14", "Santa Marta");



# DML SELECT: Seleccionando registros
SELECT * FROM people ;
SELECT  city, first_name  FROM platziblog.people  WHERE  city="Mexico";


# DML UPDATE: Actualizando nuestros registros
UPDATE platziblog.people SET  first_name="Naren", last_name="Fragozo" WHERE persona_id=4; 


# DML DELETE: Eliminadno algunos registros
DELETE FROM people WHERE persona_id=4 ;