0% found this document useful (0 votes)
3 views

[Manual] SQL

bkhj

Uploaded by

Omar
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

[Manual] SQL

bkhj

Uploaded by

Omar
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

SQL (RDBS: Relational Database Systems)

Data Manipulation Language (DML):Statements used to manipulate data


SELECT, INSERT, UPDATE and DELETE
Data Definition Language (DDL): Used to create and alter the structure of objects in
a database
CREATE, ALTER, DROP and TRUNCATE
Using SQL to Query Data
SELECT column1, column2, *
FROM table_name
WHERE condition1 AND|OR|NOT condition2 ORDER BY column1, column 2, ASC|DESC
LIMIT number;
*Condition: column1 >|<|>=|<=|!= column2
= Equal to
!= Not equal to
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to
BETWEEN Between the highest and lowest point in each range.
LIKE Search for a pattern. Example that will return movies whit title starting by Jaws.
IN Specifying multiple potential values for a column.
AND Logical AND between 2 conditions. Returns true when all the conditions are true.
OR Logical OR between 2 conditions. Returns true when at one of the conditions is true.
NOT Logical NOT for a condition. Returns true if condition is false, and false if conditions is
true.
Ordering and Limiting
ORDER BY Sort the result in ascending (ASC) or descending (DESC) order.
SELECT *
FROM moons
ORDER BY radius DESC;
LIMIT To limit how many rows we get back.
SELECT *
FROM moons
ORDER BY radius DESC
LIMIT 3;
SELECT *
FROM countries
WHERE continent = 'South America' AND population > 10000
ORDER BY area ASC
LIMIT 6;
Best practices in SQL Queries
Use uppercase for keywords and lowercase for table and column names.
Use spaces to separate keywords and variables or parameters.
Use single quotes to specify character strings: Some databases reserve double quotes for
identifiers, such as table and column names.
Use aliases to make queries more readable: An alias is an alternative and temporary name
for a column or a table. Aliases can also be used to shorten long column or table names to
make queries more readable:
SELECT ploc AS patient_location
FROM patients
ORDER BY patient_location;
Use indentation and new lines to differentiate between your statements and to make your
code easier to read.
Add comments to complex queries to help others (and yourself) understand them in the
future:
SELECT *
FROM movie
WHERE year > 1976
ORDER BY title ASC – We want alphabetical order
LIMIT 10; -- We only need the top 10 for a “Top Ten” list
SQL Lab
Find patterns in queries
SELECT *
FROM movies
WHERE revenue < budget
*Rows where the condition is met
ORDER BY ravg DESC
Just because a movie lost money at the box office doesn’t mean that it’s a low rated
movie. It can be verified statistically.
Grouping Data
Using GROUP BY
The clause will group together rows in a table based on the values in each column. This
enables us to perform calculations on each group (SUM|AVG|COUNT).
Average speed for each propellant group
SELECT propellant, AVG(speed)
FROM vehicles
GROUP BY propellant;
SELECT substrate, COUNT(vehicle)
FROM vehicles
GROUP BY substrate;
The results table only shows the first row in each group, SQL in grouping the rows behind
the scenes.
The SELECT command allows us to list as many columns as we want, separated by
commas.
It’s possible to group both numeric and character values.
SELECT wheels, MIN|MAX|SUM|AVG(speed)
FROM vehicles
GROUP BY wheels;
Using Operators in SQL Queries
The keywords used to perform these calculations are called operators.
Operators can also be modified by setting conditions using the WHERE keyword.
Average of all review scores for the movie whit the ID number 123:
SELECT AVG(score)
FROM Review
WHERE MovieId = 123;
List of the most used operators:
SUM()
AVG()
COUNT()
MIN()
MAX()
SQL statements can also combine multiple operators within a single statement.
How many reviews the movie with ID 123, as well as its maximum and the minimum score.
SELECT COUNT(*),
MAX(Score),
MIN(Score)
FROM Review
WHERE MovieId = 123;

To get the AVG, MAX, MIN, and COUNT for each movie in the database.
SELECT MovieId,
COUNT(*)
AVG(Score)
MAX(Score)
MIN (Score)
FROM Review
GROUP BY MovieId;
SELECT continent,
COUNT(country)
FROM countries
GROUP BY continent;
We can also use operators in conjunction with other statements to extract valuable
information.
To list the movies with average score greater than 7.0.
HAVING filter results, like WHERE does, but they are used in different ways:
WHERE set conditions on a field, whereas HAVING sets conditions on groupings.
SELECT MovieId,
COUNT(*)
AVG(Score)
MAX(Score)
MIN(Score)
FROM Review
GROUP BY MovieId
HAVING AVG(Score) > 7.0
ORDER BY AVG(Score) DESC;

We can also use the Alias keyword to adjust the column titles in the output so that they are
more representative of the data; aliases are designated by the AS keyword.
SELECT MovieId,
COUNT(*) AS Number_of_reviews,
AVG(Score) AS Average_Score,
MAX(Score) AS Max_Score
MIN(Score) AS Min_Score
FROM Review
GROUP BY MovieId
HAVING Average_Score < 8.0
ORDER BY Average_Score DESC;

SQL Lab: Calculated Columns


COUNT(*) to count the rows in each group.
Number of prizes for each year
SELECT year,
COUNT(*) AS prize_count
FROM nobel_prizes
GROUP BY year
ORDER BY prize_count DESC
By default, COUNT will tally up all values, even if there are duplicates.
Number of categories awarded each year
SELECT year,
COUNT(DISTINCT category) AS category_count
FROM nobel_prizes
GROUP BY year
ORDER BY category_count DESC
MPAA category generates the most average revenue for movies
SELECT mpaa,
AVG(revenue) AS avg_revenue
FROM movies
GROUP BY mpaa
ORDER BY avg_revenue DESC
10 films with the highest ROAS
SELECT title,
revenue/budget AS ROAS
FROM movies
ORDER BY ROAS DESC
LIMIT 10
Introducción a Consultas Estructuradas con SQL
Utilizado para consultar bases de datos relacionales donde los datos de distribuyen en
diferentes tablas. SQL combina datos de varias tablas para devolver resultados
complejos.
Estructura de las bases de datos relacionales
Capacidad de almacenar datos en tablas diferentes pero relacionadas, evitando
redundancias y discrepancias en los datos.

No todos los datos necesarios para realizar un análisis están contenidos en una sola
tabla, por lo que es necesario combinar datos relacionados de varias tablas.
Para determinar los datos necesarios y en que formato existen se debe comprender el
esquema de la base de datos, el cual, es la definición de cómo se organizan los datos
dentro de la estructura de las tablas dentro de una base de datos.
Tabla: Organización de datos en un formato de filas y columnas similar a una hoja de
cálculo. Cada fila representa un registro único y cada columna un campo dentro del
registro.
Campo: Atributo específico de un registro individual. Los nombres de los campos se
presentan por los encabezados de las columnas de la tabla.
Registro: Casa una de las filas de una tabla. Es una colección de atributos que
pertenecen a un ítem.
También define las claves de registro, las relaciones que existen entre las tablas y los
tipos de datos de los campos dentro de cada tabla.
Keys
La clave principal es un atributo único para cada registro. Cuando tenemos una
columna en una tabla que usa la clave principal de otra taba para apuntar a ese registro
específico se denomina clave externa.
Clave principal (PK)
Un campo (columna) en una tabla que contiene identificadores únicos para cada registro
dentro de la tabla. Combinación de varias columnas (ID20230831C) que hacen que una
fila sea única en una tabla.
Clave externa (FK)
Una columna o una combinación de columnas en una tabla que corresponde a la clave
principal en otra tabla.
Relaciones de bases de datos
Ejemplo: Una película puede tener múltiples filas de Ingreso Bruto correspondientes a los
diferentes meses, y una fila de Ingreso Bruto puede tener múltiples filas de Ingreso Bruto
País en el mismo mes. Eso se denomina una relación de uno a muchos. En cambio, una
película puede tener muchos actores y un actor puede estar en muchas películas, por lo
que, la relación es de muchos a muchos. Una película se puede financiar con un solo
préstamo y un este solo se puede aplicar a una película, lo que se denomina una relación
uno a uno.
Uno a muchos: Una relación entre entidades (registros) donde un registro de una tabla
se relaciona con varios registros de la segunda tabla. Por el contrario, un registro de la
segunda tabla solo puede estar relacionado con un registro de la primera tabla.
Uno a uno: Una relación entre entidades donde un registro en una tabla solo se relaciona
con un único registro en la segunda tabla y viceversa.
Muchos a muchos: Una relación entre entidades donde varios registros de una taba se
relacionan con varios registros de otra tabla.
Tipos de datos
En la base de datos, describen el formato de los datos contenidos en una columna.
CHAR (size): Abreviatura de “tamaño de carácter”. Una cadena de caracteres de longitud
fija (basada en la base de datos) que puede contener números, letras o caracteres
especiales en cualquier combinación. La longitud máxima suele ser de 255 caracteres.
VARCHAR (size): Abreviatura de “tamaño de carácter variable”. Una cadena de
caracteres de longitud variable que puede contener números, letras o caracteres
especiales hasta una longitud máxima.
TEXT: Una cadena que normalmente se usa para manejar contenido de texto de formato
largo.
INT: Abreviatura de “entero”. Un campo numérico que sólo puede contener números
enteros positivos o negativos.
DECIMAL: Un campo numérico que contiene un número exacto de coma fija o un número
decimal.
FLOAT: Un campo numérico que contiene un número de punto flotante.
DATETIME: Una combinación de fecha y hora que viene en muchos formatos
estandarizados. Formato de ejemplo: AAAA-MM-DD hh:mm:ss
Existe una relación de uno a muchos entre las dos tablas porque un conductor puede
tener muchas órdenes, pero una orden solo puede tener un controlador.

Consultas SQL utilizando múltiples tablas de datos.


Unir tablas
Las bases de datos relacionales guardan información en tablas interrelacionadas que se
vinculan mediante claves (primarias y externas).
JOIN: Extraer o fusionar información de varias tablas. Encontrar los atributos en cada
tabla que permiten que la consulta encuentre los registros relacionados correctos.
Reseñas de una película con título y año.
SELECT m.title, m.year, r.AuthorName, r.Score, r.Comment, r.Date
FROM Review AS r
JOIN Movie AS m
ON m.movieId = r.movieId;

ON: Define los atributos a unir a las tablas. Si la clave foránea está formada por más de
un atributo, será necesario definir más de una condición de union. Por ejemplo, en la tabla
Gross_Income, el PK está formado por 3 atributos, para unirlo a la tabla
Gross_Income_Country se utiliza la cláusula ON:
SELECT gi.movieId, gi.year, gi.month, gic.Country, gic.Amount
FROM Gross_Income AS gi
JOIN Movie AS m
ON m.movieId = gi.movieId
JOIN Gross_Income_Country AS gic
ON gi.movieId = gic.movieId AND gi.year = gic.year AND gi.month = gic.month
Habitualmente se utilizan claves primarias y claves externas para unir las tablas, aunque,
se puede utilizan cualquier columna que contenga el mismo tipo de datos para realizar la
union entre tablas.
Tipos de uniones
La sintaxis de la declaración JOIN depende del tipo de union que se solicita.

Interna: INNER JOIN (JOIN)


Devuelve solo registros que tienen datos coincidentes en los campos seleccionados en
todas las tablas.

Ejemplo:
SELECT bike_sales.Trans_ID, bike_sales.Model, bike_sales.Sale_Price,
bike_models.Cost
FROM bike_sales
INNER JOIN bike_models
ON bike_sales.Model = bike_models.Model;
Externa completa: FULL OUTER JOIN
Devuelve todas las filas de ambas tablas. Si la condición de unión no se cumple para
algunos valores, se reemplazan con un valor NULL en la salida.

Ejemplo:
SELECT bike_sales.Trans_ID, bike_sales.Model, bike_sales.Sale_Price,
bike_models.Cost
FROM bike_sales
FULL JOIN bike_models
ON bike_sales.Model = bike_models.Model;
Externa derecha: RIGTH JOIN
Devuelve todos los registros de la tabla derecha y solo los registros coincidentes de la
tabla izquierda.

Ejemplo:
SELECT bike_sales.Trans_ID, bike_sales.Model, bike_sales.Sale_Price,
bike_models.Cost
FROM bike_sales
RIGTH JOIN bike_models
ON bike_sales.Model = bike_models.Model;
Externa izquierda: LEFT JOIN
Devuelve todos los registros de la tabla de la izquierda y solo los registros coincidentes de
la tabla derecha.
Ejemplo:
SELECT bike_sales.Trans_ID, bike_sales.Model, bike_sales.Sale_Price,
bike_models.Cost
FROM bike_sales
LEFT JOIN bike_models
ON bike_sales.Model = bike_models.Model;
Uniones Naturales
Ocurren cuando hay una columna o columnas que existen en ambas tablas con
exactamente el mismo nombre de campo y tipo de datos, sin necesidad de que los
campos sean claves primarias o externas en ninguna de las tablas.
NATURAL JOIN: Fusión de dos tablas con base en campos comunes que existen en
ambas tablas. A diferencia de la expresión INNER JOIN que puede tener columnas
duplicadas, solo incluye una instancia de las columnas comunes. Se recomienda utilizar
INNER JOIN definiendo los atributos a utilizar para unir ambas tablas.
Ejemplo:
SELECT bike_sales.Trans_ID, bike_sales.Model, bike_sales.Sale_Price,
bike_models.Cost
FROM bike_sales
NATURAL JOIN bike_models
Funciones de gestión de SQL: Administración de bases de datos.
Lenguaje de manipulación de datos (DML)
INSERT: Agregar un registro de datos a una tabla existente.
DELETE: Elimina datos de una tabla.
UPDATE: Modifica un registro de datos existente.
SET: Se utiliza con UPDATE para especificar que actualizar.
LOCK: Bloquea una tabla.
Ejemplo:
INSERT into Movie
VALUES (3456, ‘The Godfather’, 1932);

You might also like