Hoja de trucos de SQL

Imagen introductoria de la hoja de trucos de SQL


En esta guía, encontrará una hoja de trucos útil que documenta algunos de los elementos de SQL más utilizados, e incluso algunos de los menos comunes. Con suerte, ayudará a los desarrolladores, tanto a nivel principiante como experimentado, a ser más competentes en su comprensión del lenguaje SQL..

Úselo como referencia rápida durante el desarrollo, como ayuda para el aprendizaje, o incluso imprímalo y agréguelo si lo prefiere (¡lo que funcione!).

Pero antes de llegar a la hoja de trucos en sí, para los desarrolladores que no estén familiarizados con SQL, comencemos con …

¿Qué es SQL?

SQL significa lenguaje de consulta estructurado. Es el idioma de elección en la web de hoy para almacenar, manipular y recuperar datos dentro de bases de datos relacionales. La mayoría, si no todas de los sitios web que visite lo usarán de alguna manera, incluyendo esta uno.

Así es como se ve una base de datos relacional básica. Este ejemplo en particular almacena información de comercio electrónico, específicamente los productos a la venta, los usuarios que los compran y los registros de estos pedidos que vinculan estas 2 entidades.

Una base de datos relacional básica

Usando SQL, puede interactuar con la base de datos escribiendo consultas, que cuando se ejecutan, devuelven cualquier resultado que cumpla con sus criterios.

Aquí hay una consulta de ejemplo:-

SELECCIONAR * DE usuarios;

Con esta instrucción SELECT, la consulta selecciona todos los datos de todas las columnas de la tabla del usuario. Luego devolvería datos como el siguiente, que generalmente se denomina conjunto de resultados:-

Ejemplo de tabla de usuarios

Si reemplazáramos el carácter comodín de asterisco (*) con nombres de columna específicos, solo los datos de estas columnas se devolverían de la consulta.

SELECCIONE nombre_nombre, apellido_de los usuarios;

Ejemplo de tabla de usuarios con columnas reducidas

Podemos agregar un poco de complejidad a una instrucción SELECT estándar agregando una cláusula WHERE, que le permite filtrar lo que se devuelve.

SELECCIONE * DE productos DONDE stock_count <= 10 ORDER BY stock_count ASC;

Esta consulta devolvería todos los datos de la tabla de productos con un valor de stock_count inferior a 10 en su conjunto de resultados.

El uso de la palabra clave ORDER BY significa que los resultados se ordenarán usando la columna stock_count, valores más bajos a más altos.

Tabla de productos de ejemplo

Usando la instrucción INSERT INTO, podemos agregar nuevos datos a una tabla. Aquí hay un ejemplo básico que agrega un nuevo usuario a la tabla de usuarios:-

INSERTAR EN los usuarios (nombre, apellido, dirección, correo electrónico)
VALUES ('Tester', 'Jester', '123 Fake Street, Sheffield, Reino Unido', '[correo electrónico protegido]');

Luego, si volviera a ejecutar la consulta para devolver todos los datos de la tabla del usuario, el conjunto de resultados se vería así:

Tabla de ejemplo con nueva fila

Por supuesto, estos ejemplos demuestran solo una selección muy pequeña de lo que el lenguaje SQL es capaz de hacer..

SQL vs MySQL

Es posible que haya oído hablar de MySQL antes. Es importante que no confunda esto con el SQL mismo, ya que hay una clara diferencia.

SQL vs MySQLSQL es el idioma. Describe la sintaxis que le permite escribir consultas que administran bases de datos relacionales. Nada mas.

MySQL mientras tanto es una base de datos sistema que se ejecuta en un servidor Eso implementos el lenguaje SQL, que le permite escribir consultas utilizando su sintaxis para administrar bases de datos MySQL.

Además de MySQL, hay otros sistemas que implementan SQL. Algunos de los más populares incluyen:

  • PostgreSQL
  • SQLite
  • Base de datos Oracle
  • Microsoft SQL Server

Instalar MySQL

Ventanas

La forma recomendada de instalar MySQL en Windows es mediante el instalador que puede descargar desde Sitio web MySQL.

Instalar MySQL Windows

Mac OS

En macOS, la forma recomendada de instalar MySQL es usar paquetes nativos, lo que suena mucho más complicado de lo que realmente es. Esencialmente, también implica simplemente descargar un instalador.

Instalar MySQL Mac

Alternativamente, si prefiere usar administradores de paquetes como Cerveza casera, puedes instalar MySQL así:

instalar brew mysql

Si bien necesita instalar la versión 5.7 de MySQL anterior, que todavía se usa ampliamente hoy en la web, puede:

instalar brew [correo electrónico protegido]

Usando MySQL

Con MySQL ahora instalado en su sistema, para comenzar a escribir consultas SQL lo más rápido posible, se recomienda que use una aplicación de administración de SQL para hacer que la administración de sus bases de datos sea un proceso mucho más simple y fácil..

Hay muchas aplicaciones para elegir que realizan en gran medida el mismo trabajo, por lo que depende de su preferencia personal sobre cuál usar:

  • MySQL Workbench es desarrollado por Oracle, el propietario de MySQL.
  • HeidiSQL (Windows recomendado) es una aplicación gratuita de código abierto para Windows. Para usuarios de macOS y Linux, Vino se requiere primero como requisito previo.
  • phpMyAdmin es una alternativa muy popular que opera en el navegador web.
  • Sequel Pro (MacOS recomendado) es la única alternativa de macOS y nuestra favorita gracias a su interfaz clara y fácil de usar.

Cuando esté listo para comenzar a escribir sus propias consultas SQL, en lugar de perder tiempo creando su propia base de datos, considere importar datos ficticios..

El sitio web MySQL proporciona una serie de bases de datos ficticias que puede descargar de forma gratuita y luego importar a su aplicación SQL.

Base de datos ficticia MySQL

Nuestro favorito de estos es el mundo base de datos, que proporciona algunos datos interesantes para practicar la escritura de consultas SQL. Aquí hay una captura de pantalla de su tabla de países dentro de Sequel Pro.

Sequel Pro Ejemplo

Esta consulta de ejemplo devuelve todos los países con la reina Isabel II como jefa de estado ����.

Sequel Pro Ejemplo

Mientras que este devuelve todos los países europeos con una población de más de 50 millones junto con su ciudad capital y su población.

Sequel Pro Ejemplo

Y este último devuelve el porcentaje promedio de hablantes de francés en países donde el número total de hablantes de francés es superior al 10%.

Sequel Pro Ejemplo

Hoja de trucos

Palabras clave

Una colección de palabras clave utilizadas en sentencias SQL, una descripción y, en su caso, un ejemplo. Algunas de las palabras clave más avanzadas tienen su propia sección dedicada más adelante en la hoja de trucos.

Cuando se menciona MySQL junto a un ejemplo, esto significa que este ejemplo solo es aplicable a las bases de datos MySQL (a diferencia de cualquier otro sistema de base de datos).

Palabras clave de SQL
Palabra claveDescripción
AÑADIRAgrega una nueva columna a una tabla existente.

Ejemplo: Agrega una nueva columna llamada "dirección de correo electrónico" a una tabla llamada "usuarios".

Usuarios de ALTER TABLE
AGREGAR email_address varchar (255);
AGREGAR RESTRICCIÓNCrea una nueva restricción en una tabla existente, que se utiliza para especificar reglas para cualquier dato en la tabla.

Ejemplo: Agrega una nueva restricción PRIMARY KEY llamada "usuario" en las columnas ID y APELLIDO.

Usuarios de ALTER TABLE
AGREGAR CLAVE PRIMARIA del usuario CONSTRAINT (ID, APELLIDO);
ALTERAR TABLAAgrega, elimina o edita columnas en una tabla. También se puede usar para agregar y eliminar restricciones en una tabla, según lo anterior.

Ejemplo: Agrega una nueva columna booleana llamada "aprobada" a una tabla llamada "ofertas".

ALTERAR TABLA ofertas
AGREGAR booleano aprobado;

Ejemplo 2 Elimina la columna "aprobada" de la tabla "ofertas"

ALTERAR TABLA ofertas
COLUMNA DE GOTA aprobada;
ALTERAR COLUMNACambia el tipo de datos de la columna de una tabla..

Ejemplo: En la tabla "usuarios", convierta la columna "incept_date" en un tipo "datetime".

Usuarios de ALTER TABLE
ALTERAR COLUMNA incept_date datetime;
TODASDevuelve verdadero si todos los valores de subconsulta cumplen la condición pasada.

Ejemplo: Devuelve los usuarios con un mayor número de tareas que el usuario con el mayor número de tareas en el departamento de recursos humanos (id 2)

SELECCIONE nombre_nombre, apellido, tareas_no
DE usuarios
DONDE tareas_no> TODAS (SELECCIONE tareas DEL usuario DONDE departamento_id = 2);
YSe usa para unir condiciones separadas dentro de una cláusula WHERE.

Ejemplo: Eventos de devoluciones ubicados en Londres, Reino Unido

SELECCIONAR * DESDE eventos
WHERE host_country = 'Reino Unido' AND host_city = 'Londres';
NINGUNADevuelve verdadero si alguno de los valores de subconsulta cumple la condición dada.

Ejemplo: Devuelve productos de la tabla de productos que han recibido pedidos, almacenados en la tabla de pedidos, con una cantidad de más de 5.

SELECCIONE el nombre
DE productos
WHERE productId = CUALQUIERA (SELECCIONE productId de pedidos DONDE cantidad> 5);
COMORenombra una tabla o columna con un valor de alias que solo existe durante la duración de la consulta.

Ejemplo: Alias ​​columna north_east_user_subscriptions

SELECCIONE north_east_user_subscriptions AS ne_subs
DE usuarios
DONDE ne_subs> 5;
ASCSe usa con ORDER BY para devolver los datos en orden ascendente.

Ejemplo: Manzanas, plátanos, duraznos, rábanos

ENTRESelecciona valores dentro del rango dado.

Ejemplo 1: Selecciona stock con una cantidad entre 100 y 150.

SELECCIONAR * DE stock
DONDE cantidad entre 100 y 150;

Ejemplo 2 Selecciona stock con una cantidad que NO esté entre 100 y 150. Alternativamente, el uso de la palabra clave NOT aquí revierte la lógica y selecciona valores fuera del rango dado.

SELECCIONAR * DE stock
DONDE la cantidad NO ENTRE 100 Y 150;
CASOCambiar el resultado de la consulta según las condiciones.

Ejemplo: Devuelve a los usuarios y sus suscripciones, junto con una nueva columna llamada activity_levels que realiza un juicio basado en el número de suscripciones.

SELECCIONE nombre_principal, apellido, suscripciones
CASO CUANDO las suscripciones> 10 ENTONCES 'Muy activo'
CUANDO Cantidad ENTRE 3 Y 10 LUEGO 'Activo'
ELSE 'Inactivo'
FINALIZA COMO Niveles de actividad
DE usuarios;
CHEQUEAgrega una restricción que limita el valor que se puede agregar a una columna.

Ejemplo 1 (MySQL): Se asegura de que los usuarios agregados a la tabla de usuarios tengan 18 años o más.

CREAR usuarios de TABLE (
nombre_nombre varchar (255),
edad int,
COMPROBAR (edad> = 18)
);

Ejemplo 2 (MySQL): Agrega un cheque después de que la tabla ya ha sido creada.

Usuarios de ALTER TABLE
AGREGAR VERIFICACIÓN (edad> = 18);
CREAR BASE DE DATOSCrea una nueva base de datos..

Ejemplo: Crea una nueva base de datos denominada "configuración de sitios web".

CREAR BASE DE DATOS sitio web;
CREAR MESACrea una nueva mesa. .

Ejemplo: Crea una nueva tabla llamada "usuarios" en la base de datos de "configuración de sitios web".

CREAR usuarios de TABLE (
Yo dint,
nombre_nombre varchar (255),
apellido varchar (255),
dirección varchar (255),
contact_number int
);
DEFECTOEstablece un valor predeterminado para una columna;

Ejemplo 1 (MySQL): Crea una nueva tabla llamada Productos que tiene una columna de nombre con un valor predeterminado de "Nombre de marcador de posición" y una columna disponible_desde un valor predeterminado de la fecha de hoy.

CREATE TABLE productos (
Yo dint,
nombre varchar (255) PREDETERMINADO 'Nombre de marcador de posición',
disponible_desde la fecha GETDATE POR DEFECTO ()
);

Ejemplo 2 (MySQL): Lo mismo que arriba, pero editando una tabla existente.

Productos de ALTER TABLE
ALTER nombre SET DEFAULT 'Nombre de marcador de posición',
ALTERAR available_from SET DEFAULT GETDATE ();
ELIMINAREliminar datos de una tabla.

Ejemplo: Elimina un usuario con un user_id de 674.

ELIMINAR DE usuarios DONDE user_id = 674;
DESCSe usa con ORDER BY para devolver los datos en orden descendente.

Ejemplo: Rábano, duraznos, plátanos, manzanas

COLUMNA DE GOTAElimina una columna de una tabla..

Ejemplo: Elimina la columna first_name de la tabla de usuarios..

Usuarios de ALTER TABLE
DROP COLUMN first_name
DROP DATABASEElimina toda la base de datos..

Ejemplo: Elimina una base de datos llamada "sitios web".

DROP DATABASE websiteetup;
GOTA POR DEFECTOElimina un valor predeterminado para una columna.

Ejemplo (MySQL): Elimina el valor predeterminado de la columna "nombre" en la tabla "productos".

Productos de ALTER TABLE
ALTERAR COLUMNA nombre DROP DEFAULT;
MESA PLEGABLEElimina una tabla de una base de datos..

Ejemplo: Elimina la tabla de usuarios..

Usuarios de DROP TABLE;
EXISTEComprueba la existencia de cualquier registro dentro de la subconsulta, devolviendo verdadero si se devuelven uno o más registros.

Ejemplo: Enumera todos los concesionarios con un porcentaje de financiación de acuerdo inferior a 10.

SELECCIONE nombre_concesionario
DE concesionarios
DONDE EXISTE (SELECCIONE nombre_oferta DE las ofertas DONDE concesionario_id = ofertas.dealership_id Y porcentaje_financiamiento < 10);
DESDEEspecifica de qué tabla seleccionar o eliminar datos.

Ejemplo: Selecciona datos de la tabla de usuarios..

SELECCIONE area_manager
DE area_managers
DONDE EXISTE (SELECCIONE el nombre del producto de los productos DONDE area_manager_id = Deals.area_manager_id AND Price < 20);
ENSe utiliza junto con una cláusula WHERE como abreviatura para múltiples condiciones OR.

Entonces en lugar de:-

SELECCIONAR * DE usuarios
WHERE country = 'EE. UU.' OR country = 'Reino Unido' OR country = 'Rusia' O country = 'Australia';

Puedes usar:-

SELECCIONAR * DE usuarios
WHERE country IN ('EE. UU.', 'Reino Unido', 'Rusia', 'Australia');
INSERTAR ENAgregar nuevas filas a una tabla.

Ejemplo: Agrega un nuevo vehículo.

INSERTE EN los autos (marca, modelo, kilometraje, año)
VALORES ('Audi', 'A3', 30000, 2016);
ES NULOPruebas de valores vacíos (NULL).

Ejemplo: Devuelve usuarios que no han dado un número de contacto.

SELECCIONAR * DE usuarios
DONDE contact_number ES NULL;
NO ES NULOEl reverso de NULL. Pruebas de valores que no están vacíos / NULL.
ME GUSTADevuelve verdadero si el valor del operando coincide con un patrón.

Ejemplo: Devuelve verdadero si el nombre del usuario termina con "hijo".

SELECCIONAR * DE usuarios
WHERE first_name LIKE '% son';
NODevuelve verdadero si un registro NO cumple con la condición.

Ejemplo: Devuelve verdadero si el nombre del usuario no termina con "hijo".

SELECCIONAR * DE usuarios
DONDE first_name NO ME GUSTA '% son';
OSe usa junto a DÓNDE para incluir datos cuando cualquiera de las condiciones es verdadera.

Ejemplo: Devuelve usuarios que viven en Sheffield o Manchester.

SELECCIONAR * DE usuarios
WHERE city = 'Sheffield' O 'Manchester';
ORDENAR PORSe utiliza para ordenar los datos de resultados en orden ascendente (predeterminado) o descendente mediante el uso de palabras clave ASC o DESC.

Ejemplo: Devuelve los países en orden alfabético..

SELECCIONAR * DE países
ORDEN POR nombre;
ROWNUMDevuelve resultados donde el número de fila cumple la condición pasada.

Ejemplo: Devuelve los 10 principales países de la tabla de países..

SELECCIONAR * DE países
DONDE ROWNUM <= 10;
SELECCIONESe usa para seleccionar datos de una base de datos, que luego se devuelve en un conjunto de resultados.

Ejemplo 1: Selecciona todas las columnas de todos los usuarios..

SELECCIONAR * DE usuarios;

Ejemplo 2 Selecciona las columnas first_name y apellido de todos los usuarios.xx

SELECCIONE first_name, apellido de los usuarios;
SELECCIONAR DISTINTOSames como SELECT, excepto que los valores duplicados están excluidos.

Ejemplo: Crea una tabla de respaldo usando datos de la tabla de usuarios.

SELECT * INTO usersBackup2020
DE usuarios;
SELECCIONAR ENCopia datos de una tabla y los inserta en otra.

Ejemplo: Devuelve todos los países de la tabla de usuarios, eliminando cualquier valor duplicado (lo cual sería muy probable)

SELECCIONE el país DISTINTO de los usuarios;
SELECCIONAR TOPLe permite devolver un número establecido de registros para regresar de una tabla.

Ejemplo: Devuelve los 3 mejores autos de la tabla de autos.

SELECCIONE EL TOP 3 * DE los automóviles;
CONJUNTOSe usa junto con ACTUALIZAR para actualizar los datos existentes en una tabla.

Ejemplo: Actualiza los valores de valor y cantidad para un pedido con un id de 642 en la tabla de pedidos.

ACTUALIZAR pedidos
Valor SET = 19.49, cantidad = 2
DONDE id = 642;
ALGUNOSIdéntico a CUALQUIERA.
PARTE SUPERIORSe usa junto con SELECT para devolver un número establecido de registros de una tabla.

Ejemplo: Devuelve los 5 principales usuarios de la tabla de usuarios..

SELECCIONE EL TOP 5 * DE los usuarios;
TABLA TRUNCADASimilar a DROP, pero en lugar de eliminar la tabla y sus datos, esto elimina solo los datos.

Ejemplo: Vacía la tabla de sesiones, pero deja la tabla intacta..

TABLAS TRUNCADAS;
UNIÓNCombina los resultados de 2 o más instrucciones SELECT y devuelve solo valores distintos.

Ejemplo: Devuelve las ciudades de los eventos y las tablas de suscriptores..

SELECCIONE la ciudad DE los eventos
UNIÓN
SELECCIONE la ciudad de los suscriptores;
UNIÓN TODOLo mismo que UNION, pero incluye valores duplicados.
ÚNICOEsta restricción garantiza que todos los valores de una columna sean únicos..

Ejemplo 1 (MySQL): Agrega una restricción única a la columna de identificación al crear una nueva tabla de usuarios.

CREAR usuarios de TABLE (
id int NO NULL,
nombre varchar (255) NO NULL,
Identificación única)
);

Ejemplo 2 (MySQL): Altera una columna existente para agregar una restricción ÚNICA.

Usuarios de ALTER TABLE
AGREGAR ÚNICO (id);
ACTUALIZARActualiza los datos existentes en una tabla..

Ejemplo: Actualiza los valores de kilometraje y servicio debido para un vehículo con una identificación de 45 en la tabla de autos.

ACTUALIZAR autos
SET kilometraje = 23500, servicio Fecha = 0
DONDE id = 45;
VALORESSe usa junto con la palabra clave INSERT INTO para agregar nuevos valores a una tabla.

Ejemplo: Agrega un auto nuevo a la tabla de autos.

INSERTE EN los autos (nombre, modelo, año)
VALORES ('Ford', 'Fiesta', 2010);
DÓNDEFiltra los resultados para incluir solo datos que cumplan con la condición dada.

Ejemplo: Devuelve pedidos con una cantidad de más de 1 artículo.

SELECCIONAR * DE pedidos
DONDE cantidad> 1;

Comentarios

Los comentarios le permiten explicar secciones de sus declaraciones SQL o comentar el código y evitar su ejecución.

En SQL, hay 2 tipos de comentarios, línea simple y línea múltiple..

Comentarios de línea única

Los comentarios de una sola línea comienzan con -. Cualquier texto después de estos 2 caracteres hasta el final de la línea será ignorado.

-- Mi consulta de selección
SELECCIONAR * DE usuarios;

Comentarios multilínea

Los comentarios de varias líneas comienzan con / * y terminan con * /. Se extienden a través de varias líneas hasta que se encuentran los caracteres de cierre.

/ *
Esta es mi consulta de selección.
Toma todas las filas de datos de la tabla de usuarios
* /
SELECCIONAR * DE usuarios;

/ *
Esta es otra consulta de selección, que aún no quiero ejecutar

SELECCIONAR * DESDE tareas;
* /

Tipos de datos MySQL

Al crear una nueva tabla o editar una existente, debe especificar el tipo de datos que acepta cada columna.

En el ejemplo a continuación, los datos pasados ​​a la columna id deben ser un int, mientras que la columna first_name tiene un tipo de datos VARCHAR con un máximo de 255 caracteres..

CREAR usuarios de TABLE (
Yo dint,
nombre_nombre varchar (255)
);

Tipos de datos de cadena

Tipos de datos de cadena
Tipo de datosDescripción
CHAR (tamaño)Cadena de longitud fija que puede contener letras, números y caracteres especiales. El parámetro de tamaño establece la longitud máxima de la cadena, de 0 a 255 con un valor predeterminado de 1.
VARCHAR (tamaño)Cadena de longitud variable similar a CHAR (), pero con un rango de longitud de cadena máxima de 0 a 65535.
BINARIO (tamaño)Similar a CHAR () pero almacena cadenas de bytes binarios.
VARBINARIO (tamaño)Similar a VARCHAR () pero para cadenas de bytes binarios.
TINYBLOBContiene objetos binarios grandes (BLOB) con una longitud máxima de 255 bytes.
TINYTEXTContiene una cadena con una longitud máxima de 255 caracteres. Use VARCHAR () en su lugar, ya que se obtiene mucho más rápido.
Tamano del texto)Contiene una cadena con una longitud máxima de 65535 bytes. Nuevamente, es mejor usar VARCHAR ().
BLOB (tamaño)Contiene objetos binarios grandes (BLOB) con una longitud máxima de 65535 bytes.
TEXTO MEDIOContiene una cadena con una longitud máxima de 16.777.215 caracteres..
BLOQUE MEDIOContiene objetos binarios grandes (BLOB) con una longitud máxima de 16.777.215 bytes.
TEXTO LARGOContiene una cadena con una longitud máxima de 4,294,967,295 caracteres.
LONGBLOBContiene objetos binarios grandes (BLOB) con una longitud máxima de 4,294,967,295 bytes.
ENUM (a, b, c, etc.)Un objeto de cadena que solo tiene un valor, que se elige de una lista de valores que usted define, hasta un máximo de 65535 valores. Si se agrega un valor que no está en esta lista, se reemplaza con un valor en blanco. Piense en ENUM siendo similar a las cajas de radio HTML a este respecto.

CREATE TABLE tshirts (color ENUM ("rojo", "verde", "azul", "amarillo", "púrpura"));
SET (a, b, c, etc.)Un objeto de cadena que puede tener 0 o más valores, que se elige de una lista de valores que defina, hasta un máximo de 64 valores. Considere que SET es similar a las casillas de verificación HTML a este respecto.

Tipos de datos numéricos

Tipos de datos de cadena
Tipo de datosDescripción
BIT (tamaño)Un tipo de valor de bit con un valor predeterminado de 1. El número permitido de bits en un valor se establece a través del parámetro de tamaño, que puede contener valores de 1 a 64.
TINYINT (tamaño)Un número entero muy pequeño con un rango con signo de -128 a 127 y un rango sin signo de 0 a 255. Aquí, el parámetro de tamaño especifica el ancho de pantalla máximo permitido, que es 255.
BOOLEsencialmente, una forma rápida de establecer la columna en TINYINT con un tamaño de 1. 0 se considera falso, mientras que 1 se considera verdadero.
BooleanoIgual que BOOL.
SMALLINT (tamaño)Un número entero pequeño con un rango con signo de -32768 a 32767 y un rango sin signo de 0 a 65535. Aquí, el parámetro de tamaño especifica el ancho de pantalla máximo permitido, que es 255.
MEDIO (tamaño)Un entero medio con un rango con signo de -8388608 a 8388607, y un rango sin signo de 0 a 16777215. Aquí, el parámetro de tamaño especifica el ancho de pantalla máximo permitido, que es 255.
INT (tamaño)Un entero medio con un rango con signo de -2147483648 a 2147483647 y un rango sin signo de 0 a 4294967295. Aquí, el parámetro de tamaño especifica el ancho de pantalla máximo permitido, que es 255.
INTEGER (tamaño)Igual que INT.
BIGINT (tamaño)Un entero medio con un rango con signo de -9223372036854775808 a 9223372036854775807, y un rango sin signo de 0 a 18446744073709551615. Aquí, el parámetro de tamaño especifica el ancho de pantalla máximo permitido, que es 255.
FLOTADOR (p)Un valor numérico de coma flotante. Si el parámetro precisión (p) está entre 0 y 24, entonces el tipo de datos se establece en FLOAT (), mientras que si es de 25 a 53, el tipo de datos se establece en DOBLE (). Este comportamiento es hacer que el almacenamiento de valores sea más eficiente.
DOBLE (tamaño, d)Un valor de número de coma flotante donde los dígitos totales se establecen mediante el parámetro de tamaño, y el número de dígitos después del punto decimal se establece mediante el parámetro d.
DECIMAL (tamaño, d)Un número de punto fijo exacto donde el número total de dígitos se establece mediante los parámetros de tamaño, y el número total de dígitos después del punto decimal se establece mediante el parámetro d.

Para el tamaño, el número máximo es 65 y el predeterminado es 10, mientras que para d, el número máximo es 30 y el predeterminado es 10.

DEC (tamaño, d)Igual que DECIMAL.

Tipos de datos de fecha / hora

Tipos de datos de fecha / hora
Tipo de datosDescripción
FECHAUna fecha simple en formato AAAA-MM – DD, con un rango admitido de "1000-01-01" a "9999-12-31".
DATETIME (fsp)Una fecha y hora en formato AAAA-MM-DD hh: mm: ss, con un rango admitido de "1000-01-01 00:00:00" a "9999-12-31 23:59:59".

Al agregar DEFAULT y ON UPDATE a la definición de columna, se establece automáticamente en la fecha / hora actual.

TIMESTAMP (fsp)Una marca de tiempo de Unix, que es un valor relativo a la cantidad de segundos desde la época de Unix (‘1970-01-01 00:00:00’ UTC). Tiene un rango admitido de ‘1970-01-01 00:00:01’ UTC a ‘2038-01-09 03:14:07’ UTC.

Al agregar DEFAULT CURRENT_TIMESTAMP y ON UPDATE CURRENT TIMESTAMP a la definición de columna, se establece automáticamente en la fecha / hora actual.

TIEMPO (fsp)Una hora en formato hh: mm: ss, con un rango compatible de "838: 59: 59" a "838: 59: 59".
AÑOUn año, con un rango admitido de "1901" a "2155".

Operadores

Operadores aritméticos

Operadores aritméticos
OperadorDescripción
+Añadir
-Sustraer
* *Multiplicar
/ /Dividir
%Módulo

Operador bit a bit

Operadores bit a bit
OperadorDescripción
YBitwise Y
El |Bitwise O
^Bitwise exclusivo O

Operadores de comparación

Operadores de comparación
OperadorDescripción
=Igual a
>Mas grande que
<Menos que
> =Mayor qué o igual a
<=Menos que o igual a
<>No igual a

Operadores compuestos

Operadores compuestos
OperadorDescripción
+=Agregar iguales
-=Restar es igual
* =Multiplicar es igual
/ =Dividir es igual
% =Módulo es igual
& =Bitwise Y es igual
^ - =Bitwise exclusivo igual
| * =Bitwise OR es igual

Las funciones

Funciones de cuerda

Funciones de cuerda
NombreDescripción
ASCIIDevuelve el valor ASCII equivalente para un personaje específico.
CHAR_LENGTHDevuelve la longitud de caracteres de una cadena.
CARACTER_LONGITUDIgual que CHAR_LENGTH.
CONCATAgrega expresiones juntas, con un mínimo de 2.
CONCAT_WSAgrega expresiones juntas, pero con un separador entre cada valor.
CAMPODevuelve un valor de índice relativo a la posición de un valor dentro de una lista de valores.
ENCONTRAR EN EL SETDevuelve la posición de una cadena en una lista de cadenas.
FORMATOCuando se pasa un número, devuelve ese número formateado para incluir comas (por ejemplo, 3,400,000).
INSERTARLe permite insertar una cadena en otra en un cierto punto, para un cierto número de caracteres.
INSTRDevuelve la posición de la primera vez que aparece una cadena dentro de otra.
LCASEConvertir una cadena a minúsculas.
IZQUIERDAComenzando desde la izquierda, extraiga el número dado de caracteres de una cadena y devuélvalos como otro.
LONGITUDDevuelve la longitud de una cadena, pero en bytes..
LOCALIZARDevuelve la primera aparición de una cadena dentro de otra,
INFERIORIgual que LCASE.
LPADAlmohadillas izquierdas una cuerda con otra, a una longitud específica.
LTRIMEliminar los espacios iniciales de la cadena dada.
MEDIOExtrae una cadena de otra, comenzando desde cualquier posición.
POSICIÓNDevuelve la posición de la primera vez que una subcadena aparece dentro de otra.
REPETIRTe permite repetir una cuerda
REEMPLAZARLe permite reemplazar cualquier instancia de una subcadena dentro de una cadena, con una nueva subcadena.
CONTRARRESTARInvierte la cuerda.
CORRECTOComenzando desde la derecha, extraiga el número dado de caracteres de una cadena y devuélvalos como otro.
RPADAlmohadillas derechas una cuerda con otra, a una longitud específica.
RTRIMElimina los espacios finales de la cadena dada.
ESPACIODevuelve una cadena llena de espacios igual a la cantidad que le pasa.
STRCMPCompara 2 cadenas para diferencias
SUBSTRExtrae una subcadena de otra, comenzando desde cualquier posición.
SUBSTRINGIgual que SUBSTR
SUBSTRING_INDEXDevuelve una subcadena de una cadena antes de que se encuentre la subcadena pasada el número de veces igual al número pasado.
PODARElimina los espacios iniciales y finales de la cadena dada. Igual que si ejecutaras LTRIM y RTRIM juntos.
UCASEConvertir una cadena a mayúsculas.
SUPERIORIgual que UCASE.

Funciones numéricas

Funciones numéricas
NombreDescripción
abdominalesDevuelve el valor absoluto del número dado..
ACOSDevuelve el arco coseno del número dado.
COMO ENDevuelve el arco seno del número dado.
UN BRONCEADODevuelve el arco tangente de uno o 2 números dados.
ATAN2Devuelve el arco tangente de 2 números dados.
AVGDevuelve el valor promedio de la expresión dada..
FORTIFICAR TECHODevuelve el número entero más cercano (entero) hacia arriba desde un número de punto decimal dado.
TECHOIgual que CEIL.
COSDevuelve el coseno de un número dado.
CUNADevuelve la cotangente de un número dado.
CONTARDevuelve la cantidad de registros que devuelve una consulta SELECT.
GRADOSConvierte un valor de radianes en grados.
DIVTe permite dividir enteros.
ExpDevuelve e a la potencia del número dado.
SUELODevuelve el número entero más cercano (entero) hacia abajo desde un número de punto decimal dado.
Más grandeDevuelve el valor más alto en una lista de argumentos.
MENOSDevuelve el valor más pequeño en una lista de argumentos..
LNDevuelve el logaritmo natural del número dado.
INICIAR SESIÓNDevuelve el logaritmo natural del número dado, o el logaritmo del número dado a la base dada
LOG10Hace lo mismo que LOG, pero a base 10.
LOG2Hace lo mismo que LOG, pero a base 2.
MAXDevuelve el valor más alto de un conjunto de valores..
MINDevuelve el valor más bajo de un conjunto de valores..
MODIFICACIÓNDevuelve el resto del número dado dividido por el otro número dado.
PiDevuelve PI.
Prisionero de guerraDevuelve el valor del número dado elevado a la potencia del otro número dado.
PODERIgual que POW.
RADIANOSConvierte un valor de grados a radianes.
RANDDevuelve un número aleatorio..
REDONDORedondea el número dado a la cantidad dada de lugares decimales.
FIRMARDevuelve el signo del número dado..
PECADODevuelve el seno del número dado..
SQRTDevuelve la raíz cuadrada del número dado.
SUMADevuelve el valor del conjunto de valores dado combinado.
BRONCEADODevuelve la tangente del número dado..
TRUNCARDevuelve un número truncado al número dado de lugares decimales.

Funciones de fecha

Funciones de fecha
NombreDescripción
AÑADIRAgregue un intervalo de fecha (por ejemplo: 10 DÍAS) a una fecha (por ejemplo: 20/01/20) y devuelva el resultado (por ejemplo: 20/01/30).
AGREGAR TIEMPOAgregue un intervalo de tiempo (p. Ej .: 02:00) a una hora o fecha y hora (05:00) y devuelva el resultado (07:00).
ACTUALIZADOObtener la fecha actual.
FECHA ACTUALIgual que CURDATE.
TIEMPO ACTUALObtener la hora actual.
FECHA Y HORA ACTUALObtenga la fecha y hora actuales.
CURTIMEIgual que CURRENT_TIME.
FECHAExtrae la fecha de una expresión datetime.
DATEDIFFDevuelve el número de días entre las 2 fechas dadas.
DATE_ADDIgual que ADDDATE.
FORMATO DE FECHAFormatea la fecha para el patrón dado.
DATE_SUBReste un intervalo de fecha (por ejemplo: 10 DÍAS) a una fecha (por ejemplo: 20/01/20) y devuelva el resultado (por ejemplo: 20/01/10).
DÍADevuelve el día de la fecha indicada..
DAYNAMEDevuelve el nombre del día de la semana para la fecha dada.
DÍA DE LA SEMANADevuelve el índice del día de la semana para la fecha dada.
DIA DE AÑODevuelve el día del año para la fecha dada.
EXTRAERExtracto de la fecha de la parte dada (por ejemplo, MES para 20/01/20 = 01).
DE DIASDevuelve la fecha del valor de fecha numérico dado.
HORADevuelve la hora desde la fecha dada.
ÚLTIMO DÍAObtenga el último día del mes para la fecha indicada.
HORA LOCALObtiene la fecha y hora local actual.
LOCALTIMESTAMPIgual que LOCALTIME.
MAKEDATECrea una fecha y la devuelve, en función del año dado y la cantidad de días..
HACER TIEMPOCrea una hora y la devuelve, en función de los valores de hora, minuto y segundo dados..
MICROSEGUNDODevuelve el microsegundo de una hora o fecha y hora determinadas.
MINUTODevuelve el minuto de la hora o fecha y hora especificada.
MESDevuelve el mes de la fecha indicada..
NOMBRE DEL MESDevuelve el nombre del mes de la fecha indicada..
AHORAIgual que LOCALTIME.
PERIOD_ADDAgrega el número de meses dado al período dado.
PERIOD_DIFFDevuelve la diferencia entre 2 períodos dados.
TRIMESTREDevuelve el trimestre del año para la fecha dada.
SEGUNDODevuelve el segundo de una hora o fecha y hora determinada.
SEC_TO_TIMEDevuelve un tiempo basado en los segundos dados.
STR_TO_DATECrea una fecha y la devuelve en función de la cadena y el formato dados.
SUBDATEIgual que DATE_SUB.
SubtiempoResta un intervalo de tiempo (p. Ej .: 02:00) a una hora o fecha y hora (05:00) y devuelve el resultado (03:00).
SYSDATEIgual que LOCALTIME.
HORADevuelve la hora de una hora o fecha y hora determinadas.
FORMATO DE TIEMPODevuelve el tiempo dado en el formato dado.
TIME_TO_SECConvierte y devuelve un tiempo en segundos..
TIMEDIFFDevuelve la diferencia entre 2 expresiones de hora / fecha y hora dadas.
TIMESTAMPDevuelve el valor de fecha y hora de la fecha o fecha y hora especificada.
TO_DAYSDevuelve el número total de días que pasaron de ‘00 -00-0000 ’a la fecha indicada.
SEMANADevuelve el número de semana para la fecha dada.
DÍA LABORABLEDevuelve el número del día de la semana para la fecha dada.
WEEKOFYEARDevuelve el número de semana para la fecha dada.
AÑODevuelve el año a partir de la fecha indicada..
AÑODevuelve el número de año y semana para la fecha dada.

Diversas funciones

Diversas funciones
NombreDescripción
COMPARTIMIENTODevuelve el número dado en binario.
BINARIODevuelve el valor dado como una cadena binaria.
EMITIRConvierte un tipo en otro.
JUNTARSEDe una lista de valores, devuelve el primer valor no nulo.
CONNECTION_IDPara la conexión actual, devuelva la ID de conexión única.
CONVConvierta el número dado de un sistema de base numérica a otro.
CONVERTIRConvierte el valor dado en el tipo de datos o juego de caracteres dado.
USUARIO ACTUALDevuelve el usuario y el nombre de host que se utilizó para autenticar con el servidor.
BASE DE DATOSObtener el nombre de la base de datos actual.
AGRUPAR PORSe usa junto con funciones agregadas (COUNT, MAX, MIN, SUM, AVG) para agrupar los resultados.

Ejemplo: Enumera el número de usuarios con pedidos activos..

SELECT COUNT (user_id), active_orders
DE usuarios
GROUP BY active_orders;
TENIENDOSe usa en lugar de WHERE con funciones agregadas.

Ejemplo: Enumera el número de usuarios con pedidos activos, pero solo incluye usuarios con más de 3 pedidos activos.

SELECT COUNT (user_id), active_orders
DE usuarios
GROUP BY active_orders
TENIENDO COUNT (user_id)> 3;
SISi la condición es verdadera, devuelve un valor; de lo contrario, devuelve otro valor..
IFNULLSi la expresión dada equivale a nulo, devuelve el valor dado.
ES NULOSi la expresión es nula, devuelve 1; de lo contrario, devuelve 0.
LAST_INSERT_IDPara la última fila que se agregó o actualizó en una tabla, devuelva el ID de incremento automático.
NULLIFCompara las 2 expresiones dadas. Si son iguales, se devuelve NULL; de lo contrario, se devuelve la primera expresión.
SESSION_USERDevuelve el usuario actual y los nombres de host.
SYSTEM_USERIgual que SESSION_USER.
USUARIOIgual que SESSION_USER.
VERSIÓNDevuelve la versión actual de MySQL que alimenta la base de datos.

Caracteres comodín

En SQL, los comodines son caracteres especiales utilizados con las palabras clave LIKE y NOT LIKE que nos permiten buscar datos con patrones sofisticados de manera mucho más eficiente

Comodines
NombreDescripción
%Equivale a cero o más caracteres.

Ejemplo 1: Encuentra todos los usuarios con apellidos que terminan en "hijo".

SELECCIONAR * DE usuarios
DONDE apellido como '% hijo';

Ejemplo 2 Encuentra a todos los usuarios que viven en ciudades que contienen el patrón "che"

SELECCIONAR * DE usuarios
DONDE ciudad como '% che%';
_ _Equivale a cualquier caracter individual.

Ejemplo: Encuentra a todos los usuarios que viven en ciudades que comienzan con 3 caracteres, seguidos de "chester".

SELECCIONAR * DE usuarios
DONDE ciudad como '___chester';
[charlist]Equivale a cualquier caracter individual en la lista.

Ejemplo 1: Encuentra todos los usuarios con nombres que comienzan con J, H o M.

SELECCIONAR * DE usuarios
WHERE first_name LIKE '[jhm]%';

Ejemplo 2 Encuentra todos los usuarios con nombres que comienzan con letras entre A - L.

SELECCIONAR * DE usuarios
WHERE first_name LIKE '[a-l]%';

Ejemplo 3: Encuentre todos los usuarios con nombres que no terminen con letras entre n - s.

SELECCIONAR * DE usuarios
WHERE first_name LIKE '% [! N-s]';

Llaves

En las bases de datos relacionales, existe un concepto de claves primarias y externas. En las tablas SQL, se incluyen como restricciones, donde una tabla puede tener una clave primaria, una clave externa o ambas.

Clave primaria

Una clave primaria permite que cada registro en una tabla se identifique de forma única. Solo puede haber una clave principal por tabla, y puede asignar esta restricción a cualquier columna o combinación de columnas. Sin embargo, esto significa que cada valor dentro de esta (s) columna (s) debe ser único.

Por lo general, en una tabla, la clave principal es una columna de ID, y generalmente se combina con la palabra clave AUTO_INCREMENT. Esto significa que el valor aumenta automáticamente a medida que se crean nuevos registros.

Ejemplo 1 (MySQL)

Cree una nueva tabla y establezca la clave principal en la columna ID.

CREAR usuarios de TABLE (
id int NOT NULL AUTO_INCREMENT,
nombre_nombre varchar (255),
last_name varchar (255) NOT NULL,
dirección varchar (255),
correo electrónico varchar (255),
CLAVE PRIMARIA (id)
);

Ejemplo 2 (MySQL)

Modifique una tabla existente y establezca la clave primaria en la columna first_name.

Usuarios de ALTER TABLE
AGREGAR CLAVE PRIMARIA (nombre_principal);

Clave externa

Una clave foránea se puede aplicar a una o varias columnas y se usa para vincular 2 tablas en una base de datos relacional..

Como se ve en el diagrama a continuación, la tabla que contiene la clave externa se llama clave secundaria, mientras que la tabla que contiene la clave referenciada o clave candidata se denomina tabla primaria.

MySQL Keys

Esto significa esencialmente que los datos de la columna se comparten entre 2 tablas, ya que una clave externa también evita que se inserten datos no válidos que tampoco están presentes en la tabla principal.

Ejemplo 1 (MySQL)

Cree una nueva tabla y convierta cualquier columna que haga referencia a ID en otras tablas en claves externas.

CREAR TABLA pedidos (
id int NO NULL,
user_id int,
product_id int,
CLAVE PRIMARIA (id),
CLAVE EXTRANJERA (user_id) REFERENCIAS usuarios (id),
LLAVE EXTRANJERA (product_id) REFERENCIAS productos (id)
);

Ejemplo 2 (MySQL)

Modifique una tabla existente y cree una clave foránea.

ALTERAR TABLA pedidos
AGREGAR CLAVE EXTRANJERA (user_id) REFERENCIAS usuarios (id);

Índices

Los índices son atributos que se pueden asignar a columnas que se buscan con frecuencia para hacer que la recuperación de datos sea un proceso más rápido y eficiente.

Sin embargo, esto no significa que cada columna deba convertirse en un índice, ya que se tarda más en actualizar una columna con un índice que una columna sin ella. Esto se debe a que cuando se actualizan las columnas indexadas, el índice en sí también debe actualizarse.

Índices
NombreDescripción
CREAR ÍNDICECrea un índice llamado "idx_test" en las columnas first_name y apellido de la tabla de usuarios. En este caso, se permiten valores duplicados.
CREAR ÍNDICE idx_test
ON usuarios (nombre, apellido);
CREAR ÍNDICE ÚNICOIgual que el anterior, pero sin valores duplicados..

CREAR ÍNDICE ÚNICO idx_test
ON usuarios (nombre, apellido);
ÍNDICE DE GOTAElimina un índice..

Usuarios de ALTER TABLE
DROP INDEX idx_test;

Uniones

En SQL, una cláusula JOIN se usa para devolver un conjunto de resultados que combina datos de varias tablas, en base a una columna común que se presenta en ambas

Hay varias combinaciones diferentes disponibles para su uso:-

  • Unión interna (predeterminada): Devuelve cualquier registro que tenga valores coincidentes en ambas tablas.
  • Unirse a la izquierda: Devuelve todos los registros de la primera tabla, junto con los registros coincidentes de la segunda tabla..
  • Únete a la derecha: Devuelve todos los registros de la segunda tabla, junto con los registros coincidentes de la primera..
  • Únete completo: Devuelve todos los registros de ambas tablas cuando hay una coincidencia.

Una forma común de visualizar cómo funcionan las uniones es así:

MySQL se une

En el siguiente ejemplo, se utilizará una combinación interna para crear una nueva vista unificadora que combine la tabla de pedidos y luego 3 tablas diferentes

Reemplazaremos user_id y product_id con las columnas first_name y apellido del usuario que realizó el pedido, junto con el nombre del artículo que compró.

Tabla de ejemplo de MySQL

SELECCIONE orders.id, users.first_name, users.surname, products.name como 'nombre del producto'
DE los pedidos
Usuarios internos se unen en orders.user_id = users.id
INNER JOIN productos en orders.product_id = products.id;

Devuelve un conjunto de resultados que se ve así:

Tabla de ejemplo de MySQL

Ver

Una vista es esencialmente un conjunto de resultados de SQL que se almacena en la base de datos bajo una etiqueta, por lo que puede volver a ella más tarde, sin tener que volver a ejecutar la consulta. Estos son especialmente útiles cuando tiene una consulta SQL costosa que puede necesitarse varias veces, por lo que en lugar de ejecutarla una y otra vez para generar el mismo conjunto de resultados, puede hacerlo una vez y guardarlo como una vista.

Crear vistas

Para crear una vista, puede hacerlo así:

CREAR VER prioridad_usuarios AS
SELECCIONAR * DE usuarios
WHERE country = 'Reino Unido';

Luego, en el futuro, si necesita acceder al conjunto de resultados almacenado, puede hacerlo así:

SELECCIONAR * DE [prioridad_usuarios];

Sustitución de vistas

Con el comando CREAR O REEMPLAZAR, se puede actualizar una vista.

CREAR O REEMPLAZAR LA VISTA [prioridad_usuarios] COMO
SELECCIONAR * DE usuarios
WHERE country = 'Reino Unido' OR country = 'EE. UU.';

Eliminar vistas

Para eliminar una vista, simplemente use el comando DROP VIEW.

VISTA DE GOTA prioridad_usuarios;

Conclusión

La mayoría de los sitios web en la web de hoy usan bases de datos relacionales de alguna manera. Esto hace que SQL sea un lenguaje valioso para conocer, ya que le permite crear sitios web y sistemas más complejos y funcionales..

Asegúrese de marcar esta página como favorita, de modo que en el futuro, si está trabajando con SQL y no puede recordar un operador específico, cómo escribir una determinada consulta o simplemente está confundido acerca de cómo funcionan las uniones, entonces tendrá una hoja de trucos en la mano que está lista, dispuesta y capaz de ayudar.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map