0% encontró este documento útil (0 votos)
6 vistas48 páginas

Guía Rápida de SQL y MariaDB

El documento proporciona una guía sobre SQL, incluyendo su definición, comandos y tipos de datos. Se detalla el proceso de instalación de MariaDB en GCP y se presentan ejemplos de consultas SQL como SELECT, INSERT, UPDATE y DELETE. Además, se explican conceptos como JOIN, subconsultas y funciones agregadas para manipular y consultar datos en bases de datos relacionales.

Cargado por

jorge.nava.tp
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
6 vistas48 páginas

Guía Rápida de SQL y MariaDB

El documento proporciona una guía sobre SQL, incluyendo su definición, comandos y tipos de datos. Se detalla el proceso de instalación de MariaDB en GCP y se presentan ejemplos de consultas SQL como SELECT, INSERT, UPDATE y DELETE. Además, se explican conceptos como JOIN, subconsultas y funciones agregadas para manipular y consultar datos en bases de datos relacionales.

Cargado por

jorge.nava.tp
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

SQL Fast track

Standard Query Language (SQL)

● Lenguaje estándar para manipular datos estructurados en bases relacionales, con estándar ANSI
1986 e ISO en 1987, aunque cada RDBMS (Relational Data Base Management System) tiene sus
"bemoles", todos entienden el estándar.
● Por RDBMS entendemos a Oracle, PostgreSQL, MySQL(Maria DB), SQL Server, etc…
● Las bases de datos están construidas por objetos llamados Tablas, que a su vez se construyen por
registros ( o filas ) y campos ( o columnas )
Paréntesis, crear una instancia en
GCP
Instalando una base de datos

Usando GCP desde una instancia virtual, y clonar ESTE repositorio y usar los siguientes scripts.

/maria_db_shells/…

● 1_instalar_mariadb_easy.sh
● 2_crear_usuario.sh
● 3_modificar_confi[Link]
● 4_crear_regla_vpc.sh

NO OLVIDAR, el usuario será big_data_user y el password Example123

Si hay dudas, revisar el archivo [Link]


Instalación de MariaDB
Ya tienes una base de datos andando.
Instalar una BD de ejemplo

● git clone [Link]


● cd test_db/
● mysql -u [usuario] -p [password] < [Link]
Regresando a SQL
Comandos

Los comandos SQL se dividen en varios tipos diferentes:

● Definición de datos (Data Definition Language - DDL) se utilizan para definir tablas de datos. (CREATE, ALTER,
DROP)
● Manipulación de datos (Data Manipulation Language - DML) se utilizan para manipular datos en tablas existentes
agregando, cambiando o eliminando datos, Los comandos DML operan en las tablas definidas con los comandos
DDL. (SELECT, INSERT, UPDATE, DELETE)
● El lenguaje de consulta de datos consta de un solo comando, SELECT, que se utiliza para obtener datos
específicos de las tablas.
● Lenguaje de control de datos (DCL) se utilizan para otorgar o revocar privilegios de acceso a los usuarios
(GRANT, REVOKE)
● Control de transacciones se utilizan para cambiar el estado de algunos datos, por ejemplo, para COMMIT
cambios de transacciones o para ROLLBACK cambios de transacciones.
Tipos de datos
Sentencias y Sintaxis

Usando las tablas de la "toy database", seleccionando así en MariaDB


Sentencias y Sintaxis

SELECT [campos] FROM [tabla];

Ejemplos:

SELECT * FROM departments;


Sentencias y Sintaxis Cláusula WHERE

Sirve para condicionar la búsqueda a partir de una sentencia


lógica, para "filtrar" los datos. Encontraremos a los empleados
del departamento 'd001'

SELECT * FROM dept_emp WHERE dept_no = 'd001' LIMIT 10;

(la palabra LIMIT solo obtiene los primeros 'n' resultados de la


tabla, en este caso los primeros 10 registros)
Sentencias y Sintaxis Sentencia GROUP BY

Sirve para agrupar renglones con funciones agrupadas, por


ejemplo COUNT

Por ejemplo, encontremos cuantos empleados hay por


departamento

SELECT dept_no, COUNT(*) FROM dept_emp GROUP BY


dept_no;
Sentencias y Sintaxis Cláusula HAVING

Se usa junto a la cláusula WHERE para filtrar en agrupaciones

SELECT * FROM [table] WHERE [condition] GROUP BY [columna] HAVING


[condicion]

Ejemplo, filtraremos sólo los departamentos con menos de 20k

SELECT dept_no, COUNT(*) FROM dept_emp GROUP BY dept_no


HAVING COUNT(*) < 20000;
Sentencias y Sintaxis Función COUNT(*)

Nos dirá cuántos registros tiene el 'query' que lanzamos.

SELECT COUNT(*) FROM dept_emp WHERE dept_no = 'd001';

Nota que aquí ya no usamos LIMIT


Sentencias y Sintaxis
SENTENCIA ORDER BY

Ordenará a partir de una columna

SELECT * FROM dept_emp WHERE dept_no = 'd001' ORDER BY from_date LIMIT


10;

Por defecto es ascendente, pero podemos invertirlo con DESC

SELECT * FROM dept_emp WHERE dept_no = 'd001' ORDER BY from_date DESC


LIMIT 10;
Sentencias y Sintaxis
Operador AND

Funciona para concatenar relaciones lógicas dentro de la cláusula WHERE, se pueden usar
tantos operadores como filtros hagan falta.

SELECT * FROM dept_emp WHERE dept_no = 'd001' and from_date < '1985-02-03'
Sentencias y Sintaxis

Operador OR

Funciona para concatenar relaciones lógicas dentro de la


cláusula WHERE, se pueden usar tantos operadores
como filtros hagan falta.

SELECT * FROM dept_emp WHERE dept_no = 'd001' or


dept_no = 'd002' or from_date < '1985-02-03' limit 10;
Sentencias y Sintaxis

Sentencia INSERT INTO

Se utiliza para insertar un registro dentro de una tabla. Insertemos un departamento nuevo en la tabla dept.

INSERT INTO [Tabla] (columna1, columna2, …) VALUES (valor1, valor 2, …)

INSERT INTO departments VALUES('d010', 'Data Science');


Sentencias y Sintaxis

Sentencia UPDATE

Se utiliza para actualizar el valor en uno o varios registros dentro de


una tabla. Actualicemos un departamento en la tabla dept.

INSERT INTO [Tabla] (columna1, columna2, …) VALUES (valor1,


valor2, …)

UPDATE departments SET dept_name = 'Data Science & AI' WHERE


dept_no = 'd010'
Sentencias y Sintaxis La sentencia UPDATE sin un WHERE puede
resultar en un cambio en TODA LA TABLA, esto
puede afectar registros que no se necesitan
Sentencia UPDATE modificar. Cuando veas el símbolo, no te
tropieces!
Se utiliza para actualizar el valor en uno o varios registros dentro de una tabla. Actualicemos un departamento en la tabla dept.

INSERT INTO [Tabla] (columna1, columna2, …) VALUES (valor1, valor2, …)

UPDATE departments SET dept_name = 'Data Science & AI' WHERE dept_no = 'd010'
Sentencias y Sintaxis
Sentencia DELETE

Se utiliza para borrar registros dentro de la tabla

DELETE FROM [tabla] WHERE [condición]

DELETE FROM departments WHERE dept_no = 'd010';


Sentencias y Sintaxis

Funciones agregadas

Se utilizan para describir datos dentro de las tablas, ya utilizamos una (COUNT()), aquí más ejemplos aplicados a la tabla
salaries
Sentencias y Sintaxis

Operador LIKE

Dentro de la cláusula WHERE, se puede utilizar para encontrar un patrón específico, usando:

● % representa 0, 1 o múltiples caracteres.


● _ representa 1 solo caracter.

SELECT emp_no, birth_date, first_name, last_name FROM employees WHERE first_name LIKE 'e%' LIMIT 10;
JOIN

La cláusula JOIN se utiliza para combinar registros


entre dos o más tablas, basadas en relaciones entre
ellas, observa el diagrama "Entidad-Relación" que
tenemos para la base de Employees:
JOIN

La cláusula JOIN se utiliza para combinar registros


entre dos o más tablas, basadas en relaciones entre
ellas, observa el diagrama "Entidad-Relación" que
tenemos para la base de Employees:

Nota que podemos relacionar la tabla [employees]


con la tabla [salaries] por medio del campo 'emp_no'.

¿Cómo?

SELECT * FROM employees as e

INNER JOIN salaries as s

ON e.emp_no = s.emp_no

LIMIT 10;
Distintos tipos de JOIN

[Link]
Subqueries
Se puede utilizar un query dentro de un query, por ejemplo, una manera de obtener aquellos empleados
que tengan un salario mayor a 90K y que sean del departamento de marketing puede ser:

SELECT e.*, [Link] FROM

employees AS e

RIGHT JOIN (

SELECT * FROM salaries WHERE salary > 90000

) as m ON m.emp_no = e.emp_no

LIMIT 10;
Combinando Todo

Unos queries de ejemplo:

Encontrar el salario promedio de los managers del departamento de marketing.


Combinando Todo

Unos queries de ejemplo:

Encontrar el salario y nombre de los managers actuales del departamento de marketing.

SELECT d.dept_no, e.first_name, e.last_name, [Link] FROM

employees AS e

LEFT JOIN dept_manager AS dm ON dm.emp_no = e.emp_no

RIGHT JOIN salaries AS s ON s.emp_no = e.emp_no

LEFT JOIN departments AS d on dm.dept_no = d.dept_no

WHERE dm.to_date = '9999-01-01'


¿Por qué se
repiten?

Te toca
solucionarlo.
Combinando Todo
Unos queries de ejemplo:

Encontrar el nombre y nombre de departamento de los 10 empleados con menor salario ACTUAL que tengan el título de 'Senior Engineer', (Usando Subqueries)

SELECT e.emp_no, e.first_name, e.last_name, dpt.dept_name, [Link], [Link] FROM employees AS e

JOIN (SELECT emp_no, title FROM titles WHERE title = 'Senior Engineer') as t on t.emp_no = e.emp_no

JOIN (SELECT emp_no, d.dept_name from dept_emp AS de JOIN departments AS d on d.dept_no = de.dept_no AND de.to_date = '9999-01-01') as dpt on dpt.emp_no =
e.emp_no

JOIN salaries AS s ON s.emp_no = e.emp_no

WHERE s.to_date = '9999-01-01'

order by [Link] asc

limit 10;

También podría gustarte