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

Instalaci贸n local de un RDBMS (Windows)

14

驴Qu茅 es RDB y RDBMS?

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 435

Preguntas 117

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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:


el profe viendo como hago un delete sin where

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

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

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

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

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.

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

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.

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';

Borre mi base, ahora tengo que volver hacerla XD

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

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 = 鈥楥havez鈥, city = 鈥楳erida鈥 (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 鈥減eople鈥)
      • 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 = 鈥業srael鈥 and address = 鈥楥alle 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

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.

Para correr el c贸digo y no usar 鈥渆l rayito鈥, se puede seleccionar el code a ejecutar y en el teclado presionar Ctrl + Enter.

Les comparto algo que muy posiblemente ya saben 馃槂

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 馃槂

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 te olvides de poner el where en el delete from 鈾

Este curso esta buenisimo

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

No existe el ctrl+z en workbench?

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 (鈥榟ernandez鈥, 鈥楲aura鈥, 鈥楥alle 21鈥, 鈥楳onterrey鈥);?
- Update
鈼 UPDATE people?SET last_name = 鈥楥havez鈥, city = 鈥楳erida鈥?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.

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 鈥淪et 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 =鈥楥havez鈥 , 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 (鈥楬ernandez鈥, 鈥楲aura鈥, 鈥楥alle 21鈥,鈥楳onterrey鈥);
    .
  • Update: Actualiza o modifica los datos que ya existen.
    UPDATE people
    SET last_name = 鈥楥hav猫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,鈥榁谩zquez鈥, 鈥業srael鈥, 鈥楻eforma 222鈥, 鈥楳exico鈥);

INSERT INTO platzi_test.people (person_id,last_name, first_name, address, city)
VALUES (2,鈥楢lan铆s鈥, 鈥楨dgar鈥, 鈥楢venida siempreviva鈥, 鈥楳orelia鈥);

INSERT INTO platzi_test.people (person_id,last_name, first_name, address, city)
VALUES (3,鈥楬ern谩ndez鈥, 鈥楳贸nica鈥, 鈥楶ensilvania 1600鈥, 鈥楢guascalientes鈥);

INSERT INTO platzi_test.people (person_id,last_name, first_name, address, city)
VALUES (4,鈥楬ern谩ndez鈥, 鈥楲aura鈥, 鈥楥alle 21鈥, 鈥楳onterrey鈥);

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: 鈥淪ELECT INTO鈥 y, luego va: 鈥淰ALUES鈥, 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, 鈥渧acios鈥, 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 鈥渙bjetos鈥

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 (鈥楬ern谩ndez鈥, 鈥楲aura鈥, 鈥楥alle 21鈥, 鈥楳onterrey鈥);

Update
UPDATE people
SET last_name = 鈥楥h谩vez鈥, city= 'M茅rida鈥
WHERE person_id = 1;

UPDATE people
SET first_name = 'Juan鈥
WHERE city = 鈥楳茅rida鈥;

Para los que no lo conozcan y se quieran reir un rato, busquen en youtube 鈥淣o te olvides de poner el where en el delete from鈥 馃槢

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

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.

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.

鈥楧ML 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 鈥淪afe Updates鈥

y solo reiniciar la conexi贸n, listo con ello podr谩s realizar cambios:

Estoy muy feliz aprendiendo todo esto!
![](

Gracias 鉂わ笍