0% encontró este documento útil (0 votos)
3 vistas12 páginas

Qué Es SQL

SQL, o Lenguaje de Consulta Estructurada, es un lenguaje utilizado para consultar y manipular datos en bases de datos relacionales, que son representadas por tablas. Existen diversas bases de datos SQL como MySQL y PostgreSQL, que permiten realizar consultas mediante sentencias específicas como SELECT, JOIN y WHERE. Además, SQL soporta funciones agregadas y expresiones para facilitar el análisis y la transformación de datos.
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 DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas12 páginas

Qué Es SQL

SQL, o Lenguaje de Consulta Estructurada, es un lenguaje utilizado para consultar y manipular datos en bases de datos relacionales, que son representadas por tablas. Existen diversas bases de datos SQL como MySQL y PostgreSQL, que permiten realizar consultas mediante sentencias específicas como SELECT, JOIN y WHERE. Además, SQL soporta funciones agregadas y expresiones para facilitar el análisis y la transformación de datos.
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 DOCX, PDF, TXT o lee en línea desde Scribd

¿Qué es SQL?

SQL, o Lenguaje de Consulta Estructurada, es un lenguaje diseñado para permitir tanto lo técnico como
lo no técnico los usuarios para consultar, manipular y transformar datos de una base de datos relacional.
Y debido a su simplicidad, Las bases de datos SQL proporcionan almacenamiento seguro y escalable para
millones de sitios web y aplicaciones móviles.

¿Lo sabías?

Existen muchas bases de datos SQL populares, incluyendo SQLite, MySQL, Postgres, Oracle y Microsoft
SQL Server. Todos ellos soportan el estándar común del lenguaje SQL, que es lo que este sitio Enseñará,
pero cada implementación puede diferir en las características adicionales y el almacenamiento Tipos
que soporta.

Bases de datos relacionales

Antes de aprender la sintaxis SQL, es importante tener un modelo de lo que realmente es una base de
datos relacional es. Una base de datos relacional representa un conjunto de tablas relacionadas
(bidimensionales). Cada uno de los las tablas son similares a una hoja de cálculo de Excel, con un
número fijo de columnas nombradas (los atributos o propiedades de la tabla) y cualquier número de
filas de datos.

Por ejemplo, si el Departamento de Vehículos de Motor tuviera una base de datos, podrías encontrar
una tabla que contenga Todos los vehículos conocidos que conducen personas en el estado. Esta tabla
puede necesitar almacenar el por ejemplo, nombre del modelo, tipo, número de ruedas y número de
puertas de cada vehículo.

Consultas SELECT 101

Para recuperar datos de una base de datos SQL, necesitamos escribir sentencias, que a menudo son
coloquiales referidas como consultas. Una consulta en sí misma es simplemente una afirmación que
declara qué datos somos Buscando dónde encontrarlo en la base de datos y, opcionalmente, cómo
transformarlo antes de que se devuelva. Sin embargo, tiene una sintaxis específica, que es lo que vamos
a aprender en los siguientes [Link]

Como mencionamos en la introducción, puedes pensar en una tabla en SQL como un tipo de entidad (es
decir, Perros), y cada fila de esa tabla como una instancia específica de ese tipo (es decir, Un carlino, un
beagle, otra cosa diferente carlino de color, etcétera). Esto significa que las columnas representarían las
propiedades comunes compartidas por todas las instancias de esa entidad (es decir, Color del pelaje,
longitud de la cola, etc.).
Y dada una tabla de datos, la consulta más básica que podríamos escribir sería una que seleccione un
par columnas (propiedades) de la tabla con todas las filas (instancias).

Seleccionar consulta para una columna específica

SELECT column, another_column, …

FROM mytable;

El resultado de esta consulta será un conjunto bidimensional de filas y columnas, que efectivamente es
una copia de la Tabla, pero solo con las columnas que pedimos.

Si queremos recuperar absolutamente todas las columnas de datos de una tabla, podemos usar el
asterisco () Abreviatura en lugar de listar todos los nombres de las columnas individualmente.*

Seleccionar consulta para todas las columnas

SELECT *

FROM mytable;

Esta consulta, en particular, es muy útil porque es una forma sencilla de inspeccionar una tabla
mediante volcado Todos los datos a la vez.

Consultas con restricciones (Pt. 1)

Ahora sabemos cómo seleccionar columnas específicas de datos de una tabla, pero si tuvieras una tabla
con un Cien millones de filas de datos, leer todas las filas sería ineficiente y quizás incluso imposible.

Para filtrar ciertos resultados que no se devuelvan, necesitamos usar una cláusula en la consulta. La
cláusula se aplica a cada fila de datos comprobando valores específicos de columna para determinar si
Deberían estar incluidos en los resultados o [Link]

Selección de consulta con restricciones

SELECT column, another_column, …

FROM mytable

WHERE condition

AND/OR another_condition
AND/OR …;

Se pueden construir cláusulas más complejas uniendo numerosas palabras clave lógicas (por ejemplo,
num_wheels >= 4 Y puertas <= 2). Y a continuación tienes algunos operadores útiles que puedes usar
para la numérica datos (es decir, enteros o coma flotante):ANDOR

Operador Estado Ejemplo de SQL

=, !=, <, <=, >, >= Operadores numéricos estándar col_name != 4

ENTRE ... Y... El número está dentro del rango de dos valores (inclusive) col_name ENTRE 1,5 Y
10,5

NO ENTRE ... Y... El número no está dentro del rango de dos valores (inclusive) col_name NO
ENTRE 1 Y 10

EN (...) El número existe en una lista col_name EN (2, 4, 6)

NO EN (...) El número no existe en una lista col_name NO EN (1, 3, 5)

Además de hacer que los resultados sean más manejables de entender, escribir cláusulas para restringir
el el conjunto de filas devueltas también permite que la consulta se ejecute más rápido debido a la
reducción de datos innecesarios siendo devuelto.

Consultas con restricciones (Pt. 2)

Al escribir cláusulas con columnas que contienen datos de texto, SQL soporta varios operadores útiles
para hacer cosas como comparar cadenas insensibles a mayúsculas y minúsculas y igualar patrones
comodines. Mostramos algunos comunes A continuación operadores específicos de datos de
texto:WHERE

Operador Estado Ejemplo

= Comparación exacta de cadenas sensibles a mayúsculas minúsculas (fíjate en el single igual a)


col_name = "abc"

!= o <> Comparación de desigualdad exacta de cadenas sensible a mayúsculas minúsculas


col_name != "abcd"

COMO Comparación de cadenas exactas insensibles a mayúsculas minúsculas col_name COMO "ABC"

NO COMO Comparación de desigualdad exacta de cadenas insensible a mayúsculas y minúsculas


col_name NO COMO "ABCD"

% Se usa en cualquier sitio de una cuerda para coincidir una secuencia de cero o más caracteres
(solo con LIKE o NOT LIKE) col_name COMO "%AT%"
(coincide con "AT", "ATTIC", "C AT" o incluso "BATS")

_ Se usa en cualquier sitio de una cuerda para coincidir un solo personaje (solo con LIKE o NOT
LIKE) col_name COMO "AN_"

(coincide con "AND", pero no "AN D"")

EN (...) La cadena existe en una lista col_name EN ("A", "B", "C")

NO EN (...) La cadena no existe en una listacol_name NO EN ("D", "E", "F")

Filtrado y ordenación de resultados de consultas

Aunque los datos en una base de datos puedan ser únicos, los resultados de cualquier consulta en
particular pueden no ser – Por ejemplo, nuestra tabla de Películas puede estrenarse muchas películas
diferentes el mismo año. En tales casos, SQL ofrece una forma conveniente de descartar filas que tienen
un valor duplicado de columna usando la palabra [Link]

Selección de consulta con resultados únicos

SELECT DISTINCT column, another_column, …

FROM mytable

WHERE condition(s);

Dado que la palabra clave elimina a ciegas filas duplicadas, aprenderemos en una lección futura Cómo
descartar duplicados basados en columnas específicas usando agrupamiento y la
clá[Link] BY

Resultados de ordenación

A diferencia de nuestra tabla ordenada en las últimas lecciones, la mayoría de los datos en bases de
datos reales se añaden en ningún orden particular de las columnas. Como resultado, puede ser difícil
leer y entender los resultados de una consulta cuando el tamaño de una tabla aumenta a miles o incluso
millones de filas.

Para ayudar con esto, SQL ofrece una forma de ordenar tus resultados por una columna dada en
ascendente o descendente Ordena usando la clá[Link] BY

Seleccionar consulta con resultados ordenados

SELECT column, another_column, …


FROM mytable

WHERE condition(s)

ORDER BY column ASC/DESC;

Cuando se especifica una cláusula, cada fila se ordena alfanuméricamente según lo especificado Valor de
la columna. En algunas bases de datos, también se puede especificar una clasificación para ordenar
mejor los datos que contienen Texto [Link] BY

Limitar los resultados a un subconjunto

Otra cláusula que se usa comúnmente con la cláusula son las cláusulas y (y), que son una optimización
útil para indicar a la base de datos el subconjunto de resultados que te importan.

Esto reducirá el número de filas a devolver, y el opcional especificará dónde Empieza a contar las filas
numéricas desde las que te [Link] BYLIMITOFFSETLIMITOFFSET

Seleccionar consulta con filas limitadas

SELECT column, another_column, …

FROM mytable

WHERE condition(s)

ORDER BY column ASC/DESC

LIMIT num_limit OFFSET num_offset;

Si piensas en sitios web como Reddit o Pinterest, la portada es una lista de enlaces ordenados por
popularidad y tiempo, y cada página posterior puede representarse mediante conjuntos de enlaces en
diferentes desplazamientos en el base de datos. Usando estas cláusulas, la base de datos puede ejecutar
consultas de forma más rápida y eficiente procesando y devolviendo solo el contenido solicitado.

Consultas multi-tabla con JOINs

Hasta ahora, hemos estado trabajando con una sola tabla, pero los datos de entidades en el mundo real
suelen estar rotos descendiendo en piezas y almacenado en múltiples tablas ortogonales mediante un
proceso conocido como normalización[1].

Normalización de bases de datos

La normalización de bases de datos es útil porque minimiza datos duplicados en cualquier tabla única y
permite para que los datos de la base de datos crezcan de forma independiente unos de otros (es decir,
Los tipos de motores de automóviles pueden crecer independiente de cada tipo de coche). Como
compensación, las consultas se vuelven un poco más complejas porque han para poder encontrar datos
de diferentes partes de la base de datos, y pueden surgir problemas de rendimiento cuando Trabajando
con muchas mesas grandes.

Para responder preguntas sobre una entidad que tiene datos que abarcan varias tablas en un
Necesitamos aprender a escribir una consulta que pueda combinar todos esos datos y extraer
exactamente La información que necesitamos.

Consultas multi-tabla con JOINs

Las tablas que comparten información sobre una sola entidad deben tener una clave primaria que
identifique esa entidad de forma única en toda la base de datos. Un tipo común de clave primaria es el
autoincrementado entero (porque son eficientes en espacio), pero también puede ser una cadena o
valor hashado, siempre que es único.

Usando la cláusula en una consulta, podemos combinar los datos de fila de dos tablas separadas usando
esto Clave única. La primera de las uniones que introduciremos es la .JOININNER JOIN

Seleccionar consulta con INNER JOIN en varias tablas

SELECT column, another_table_column, …

FROM mytable

INNER JOIN another_table

ON [Link] = another_table.id

WHERE condition(s)

ORDER BY column, … ASC/DESC

LIMIT num_limit OFFSET num_offset;

Es un proceso que empareja filas de la primera tabla y de la segunda tabla que tienen la misma clave
(según la definida por la restricción) para crear una fila de resultado con las columnas combinadas De
ambas mesas. Después de unir las tablas, las otras cláusulas que aprendimos antes son entonces
Solicité.INNER JOINON

Lección de SQL 7: UNIONES EXTERNAS

Dependiendo de cómo quieras analizar los datos, la lección anterior puede que no sea suficiente porque
la tabla resultante solo contiene datos que pertenecen a ambas [Link] JOIN
Si las dos tablas tienen datos asimétricos, lo cual puede ocurrir fácilmente cuando los datos se
introducen en diferentes etapas, entonces tendríamos que usar un , o en su lugar asegurar que Los
datos que necesitas no se quedan fuera de los [Link] JOINRIGHT JOINFULL JOIN

Seleccionar consulta con LEFT/RIGHT/FULL JOIN en varias tablas

SELECT column, another_column, …

FROM mytable

INNER/LEFT/RIGHT/FULL JOIN another_table

ON [Link] = another_table.matching_id

WHERE condition(s)

ORDER BY column, … ASC/DESC

LIMIT num_limit OFFSET num_offset;

Por ejemplo, estas tres nuevas uniones tienen que especificar en qué columna unir los datos.

Al unir la tabla A a la tabla B, a simplemente incluye filas de A, independientemente de si una fila


coincidente se encuentra en B. El es igual, pero invertido, manteniendo las filas en B
independientemente de si se encuentra una coincidencia en A. Finalmente, a simplemente significa que
se hace en filas de ambas tablas se mantienen independientemente de si existe una fila coincidente en
la otra [Link] JOINLEFT JOINRIGHT JOINFULL JOIN

Al usar cualquiera de estas nuevas uniones, probablemente tendrás que escribir lógica adicional para
tratar con s en el resultado y las restricciones (más sobre esto en la próxima lección).NULL

Una breve nota sobre los NULLs

Como prometimos en la última lección, vamos a hablar rápidamente sobre los valores en una base de
datos SQL. Siempre es bueno reducir la posibilidad de que haya valores en bases de datos porque
requieren valores especiales atención al construir consultas, restricciones (ciertas funciones se
comportan de forma diferente con valores nulos) y al procesar los resultados. NULLNULL

Una alternativa a los valores en tu base de datos es tener valores predeterminados apropiados para
cada tipo de datos, como 0 para datos numéricos, cadenas vacías para datos de texto, etc. Pero si tu
base de datos necesita almacenarse incompleta datos, entonces los valores pueden ser apropiados si los
valores por defecto sesgan el análisis posterior (por ejemplo, al tomar promedios de datos
numéricos).NULLNULL
A veces, tampoco es posible evitar valores, como vimos en la última lección al unirse hacia el exterior
dos tablas con datos asimétricos. En estos casos, puedes probar una columna para valores en una
cláusula usando la restricción [Link] NULLIS NOT NULL

Selección de consulta con restricciones sobre valores NULL

SELECT column, another_column, …

FROM mytable

WHERE column IS/IS NOT NULL

AND/OR another_condition

AND/OR …;

Consultas con expresiones

Además de consultar y referenciar datos de columnas en bruto con SQL, también puedes usar
expresiones para escribir lógica más compleja sobre los valores de columna de una consulta. Estas
expresiones pueden usar matemáticas y funciones de cadena junto con aritmética básica para
transformar valores cuando se ejecuta la consulta, como se muestra en este ejemplo de física.

Consulta de ejemplo con expresiones

SELECT particle_speed / 2.0 AS half_particle_speed

FROM physics_data

WHERE ABS(particle_position) * 10.0 > 500;

Cada base de datos tiene su propio conjunto soportado de funciones matemáticas, de cadenas y de
fecha que pueden utilizarse en una consulta, que puedes encontrar en sus respectivos documentos.

El uso de expresiones puede ahorrar tiempo y un postprocesamiento adicional de los datos resultantes,
pero también puede facilitar la consulta es más difícil de leer, por lo que recomendamos que cuando se
usen expresiones en la parte de la que también se les asigna un alias descriptivo usando la palabra
[Link]

Seleccionar consulta con alias de expresión

SELECT col_expression AS expr_description, …


FROM mytable;

Además de las expresiones, las columnas regulares e incluso las tablas también pueden tener alias para
facilitarlas para referenciar en la salida y como parte de la simplificación de consultas más complejas.

Consultas con agregados (Pt. 1)

Además de las expresiones simples que introdujimos en la última lección, SQL también soporta el uso de
Agrega expresiones (o funciones) que permite resumir información sobre un grupo de filas de datos. Con
la base de datos de Pixar que has estado usando, se pueden usar funciones agregadas para responder
preguntas como: "¿Cuántas películas ha producido Pixar?" o "¿Cuál es la película de Pixar más
taquillera? cada año?".

Seleccionar consulta con funciones agregadas sobre todas las filas

SELECT AGG_FUNC(column_or_expression) AS aggregate_description, …

FROM mytable

WHERE constraint_expression;

Sin un agrupamiento especificado, cada función agregada va a ejecutarse sobre todo el conjunto de
resultados filas y devuelven un solo valor. Y como las expresiones normales, dar un alias a tus funciones
agregadas garantiza que los resultados sean más fáciles de leer y procesar.

Consultas con agregados (Pt. 2)

Nuestras consultas se están volviendo bastante complejas, pero casi hemos introducido todas las partes
importantes de una consulta. Una cosa que quizá hayas notado es que si la cláusula se ejecuta Después
de la cláusula (que filtra las filas que se van a agrupar), entonces ¿cómo exactamente hacemos ¿Filtrar
las filas agrupadas? SELECTGROUP BYWHERE

Por suerte, SQL nos permite hacerlo añadiendo una cláusula adicional que se usa específicamente con la
cláusula para permitirnos filtrar filas agrupadas del conjunto de [Link] BY

Selección de consulta con restricción HAVING

SELECT group_by_column, AGG_FUNC(column_expression) AS aggregate_result_alias, …

FROM mytable

WHERE condition

GROUP BY column
HAVING group_condition;

Las restricciones de las cláusulas se escriben de la misma manera que las restricciones de las cláusulas, y
son aplicado a las filas agrupadas. Con nuestros ejemplos, esto puede no parecer especialmente útil
Construct, pero si imaginas datos con millones de filas con diferentes propiedades, poder aplicarlos A
menudo se requieren restricciones adicionales para entender rápidamente los [Link]

Orden de ejecución de una consulta

Ahora que tenemos una idea de todas las partes de una consulta, podemos hablar de cómo encajan
todas en el contexto de una consulta completa.

Consulta completa de SELECT

SELECT DISTINCT column, AGG_FUNC(column_or_expression), …

FROM mytable

JOIN another_table

ON [Link] = another_table.column

WHERE constraint_expression

GROUP BY column

HAVING constraint_expression

ORDER BY column ASC/DESC

LIMIT count OFFSET COUNT;

Cada consulta comienza encontrando los datos que necesitamos en una base de datos y luego filtrando
esos datos hacia abajo En algo que pueda procesarse y entenderse lo más rápido posible. Porque cada
parte de la La consulta se ejecuta secuencialmente, es importante entender el orden de ejecución para
que sepas qué resultados están disponibles y dónde.

Orden de ejecución de la consulta

1. y sFROMJOIN

La cláusula y los s posteriores se ejecutan primero para determinar el conjunto total de trabajo de datos
que se están consultando. Esto incluye subconsultas en esta cláusula y puede causar tablas temporales
para crearse bajo el capó que contiene todas las columnas y filas de las tablas que se [Link]

2. WHERE
Una vez que tenemos el conjunto total de datos de trabajo, se aplican las restricciones de primer paso a
la se descartan filas individuales y filas que no cumplen la restricción. Cada una de las restricciones solo
puede acceder directamente a las columnas de las tablas solicitadas en la cláusula. Los alias en la parte
de la consulta no son accesibles en la mayoría de las bases de datos ya que pueden incluir expresiones
dependientes de partes de la consulta que aún no se han [Link]

3. GROUP BY

Las filas restantes, tras aplicar las restricciones, se agrupan según valores comunes en la columna
especificada en la cláusula. Como resultado de la agrupación, solo habrá como muchas filas porque hay
valores únicos en esa columna. Implícitamente, esto significa que solo deberías necesitar Usar esto
cuando tengas funciones agregadas en tu [Link] BY

4. HAVING

Si la consulta tiene una cláusula, entonces se aplican las restricciones de la cláusula a las filas agrupadas,
descarta las filas agrupadas que no cumplen la restricción. Al igual que la cláusula, los alias tampoco son
accesibles desde este paso en la mayoría de las bases de [Link] BYHAVINGWHERE

5. SELECT

Cualquier expresión en la parte de la consulta se calcula [Link]

6. DISTINCT

De las filas restantes, las filas con valores duplicados en la columna marcada como serán
[Link]

7. ORDER BY

Si un orden se especifica mediante la cláusula, las filas se ordenan por los datos especificados en Ya sea
en orden ascendente o descendente. Dado que todas las expresiones en la parte de la consulta han sido
calculados, puedes referenciar alias en esta clá[Link] BYSELECT

8. LIMIT / OFFSET

Finalmente, las filas que quedan fuera del rango especificado por y se descartan, dejando el último
conjunto de filas para devolver desde la [Link]

También podría gustarte