Directorio de artículos
-
- prefacio
- Los comandos más importantes en MYSQL
- instrucción SELECCIONAR
- SELECCIONE DISTINTO seleccione diferentes declaraciones
- Cláusula de orientación de consultas WHERE
- Operadores AND, OR y NOT
- ORDENAR POR palabra clave
- INSERTAR EN declaración de inserción
- NULL valor vacío
- ACTUALIZAR declaración de actualización
- DELETE declaración de eliminación
- Cláusula de límite TOP, LIMIT, FETCH FIRST o ROWNUM
- Funciones MIN() y MAX() para encontrar los valores máximo y mínimo
- Funciones COUNT(), AVG() y SUM()
- LIKE operador
- comodín *? ! Esperar
- Operador ENTRADA
- ENTRE operador
- Uso de alias de AS
- ÚNETE a la conexión
- INNER JOIN palabra clave de unión interna
- LEFT JOIN palabra clave de combinación izquierda
- RIGHT JOIN palabra clave de unión derecha
- Palabra clave FULL OUTER JOIN
- Palabra clave de unión automática
- GRUPO POR declaración
- Cláusula HAVING
- operador EXISTE
- notas
- operador
prefacio
Es posible que no esté acostumbrado al hábito de usar mayúsculas en SQL, pero la especificación real es usar mayúsculas, por lo que debe acostumbrarse gradualmente a mi explicación sobre las mayúsculas. En todas las explicaciones siguientes, explicaré en forma de gramática básica, casos y conexiones, para fortalecer el uso y la comprensión de cada declaración. Este artículo fue escrito por el autor después de toda una noche de arreglarlo, espero que lo elogien por tres veces consecutivas, gracias. Por supuesto, con este artículo, dominará por completo todos los comandos de mysql, y ya no tendrá que comprar ni perder el tiempo con el aprendizaje. El contenido de este artículo explicará temporalmente la parte de detección de la base de datos, ya que se ha discutido la introducción inicial de la base de datos, como la creación, la copia de seguridad, etc. Teletransportación Mágica: Portal
El contenido del portal incluye:
Los comandos más importantes en MYSQL
SELECT 从数据库中提取数据
UPDATE 更新数据库中的数据
DELETE 从数据库中删除数据
INSERT INTO 将新数据插入数据库
CREATE DATABASE 创建一个新的数据库
ALTER DATABASE 修改数据库
CREATE TABLE 创建一个新表
ALTER TABLE 修改表
DROP TABLE 删除表
CREATE INDEX 创建索引(搜索键)
DROP INDEX 删除索引
instrucción SELECCIONAR
La instrucción SELECT se utiliza para seleccionar datos de la base de datos. Los datos devueltos se almacenan en una tabla de resultados denominada conjunto de resultados.
SELECCIONAR sintaxis:
SELECT column1, column2, ...
Aquí, columna1, columna2,... son los nombres de campo de la tabla de la que seleccionar datos. Si desea seleccionar todos los campos disponibles en la tabla, use la siguiente sintaxis:
SELECT * FROM table_name;
Supongamos que ya tenemos una base de datos Clientes de la siguiente manera:
EJEMPLO DE SELECCIÓN DE COLUMNA
La siguiente instrucción SQL selecciona las columnas "Nombre del cliente" y "Ciudad" de la tabla "Clientes":
SELECT CustomerName, City FROM Customers;
SELECT * Ejemplo
La siguiente instrucción SQL selecciona todas las columnas de la tabla "Clientes":
SELECT * FROM Customers;
Preguntas de ejercicio:
1- Obtener todas las columnas de la tabla Clientes.
SELECT * FROM Customers;
2- Escriba una declaración Ciudad seleccione la columna de la tabla Clientes.
SELECT City FROM Customers;
3- Seleccione todos los valores distintos de la columna País en la tabla Clientes. (Hablaré de eso más tarde, no importa si no entiendes)
SELECT DISTINCT Country FROM Customers;
SELECCIONE DISTINTO seleccione diferentes declaraciones
La declaración SELECT DISTINCT solo se usa para devolver valores distintos (diferentes). En una tabla, una columna a menudo contiene muchos valores duplicados; a veces solo desea enumerar valores distintos (distintos).
SELECCIONE la sintaxis DISTINCT
SELECT DISTINCT column1, column2, ...
FROM table_name;
Supongamos también una base de datos de Clientes:
SELECT sin DISTINCT Ejemplo
La siguiente instrucción SQL selecciona todos los valores (incluidos los duplicados) de la columna "País" de la tabla "Clientes":
SELECT Country FROM Customers;
Ejemplo SELECCIONAR DISTINTO
SELECT DISTINCT Country FROM Customers;
La siguiente instrucción SQL enumera el número de países de clientes distintos (diferentes):
SELECT COUNT(DISTINCT Country) FROM Customers;
Ejercicio:
1- Seleccione todos los valores distintos Clientes de la columna País en la tabla.
SELECT DISTINC Country FROM Customers;
Cláusula de orientación de consultas WHERE
La cláusula WHERE se utiliza para filtrar registros. Se utiliza para extraer solo los registros que cumplen las condiciones especificadas.
DONDE sintaxis
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Nota: ¡La cláusula WHERE no solo se usa en declaraciones SELECT, también se usa en UPDATE, DELETE, etc.!
Supongamos que todavía tenemos una base de datos como Clientes de la siguiente manera:
Ejemplo de la cláusula WHERE
La siguiente instrucción SQL selecciona todos los clientes del país "México" en la tabla "Clientes":
SELECT * FROM Customers
WHERE Country='Mexico';
Campos de texto y numéricos
SQL requiere comillas simples alrededor de los valores de texto (la mayoría de los sistemas de bases de datos también permiten comillas dobles). Sin embargo, los campos numéricos no deben estar entre comillas:
SELECT * FROM Customers
WHERE CustomerID=1;
Operadores
en la cláusula WHERE Los siguientes operadores se pueden usar en la cláusula WHERE:
podemos demostrar el uso de estos símbolos uno por uno, sea paciente
Supongamos que tenemos una base de datos llamada Producto:
Seleccionar todos los productos con precio 18 (=)
SELECT * FROM Products
WHERE Price = 18;
Seleccione todos los productos con un precio superior a 30 (>)
SELECT * FROM Products
WHERE Price > 30;
Seleccione todos los productos con precio inferior a 30 (<)
SELECT * FROM Products
WHERE Price < 30;
Seleccione todos los productos con un precio mayor o igual a 30 (>=)
SELECT * FROM Products
WHERE Price >= 30;
Seleccione todos los productos con precio menor o igual a 30 ( <= )
SELECT * FROM Products
WHERE Price <= 30;
Selecciona todos los productos cuyo precio no sea igual a 18 (equivalente a !=)
SELECT * FROM Products
WHERE Price <> 18;
Seleccione todos los productos con precios entre 50 y 60
SELECT * FROM Products
WHERE Price BETWEEN 50 AND 60;
Busque todas las ciudades que comiencen con la letra s de la base de datos de Clientes anterior
SELECT * FROM Customers
WHERE City LIKE 's%';
Encuentre todos los clientes en París y Londres desde la base de datos de Clientes
SELECT * FROM Customers
WHERE City IN ('Paris','London');
Lo anterior es una demostración de todos los símbolos.
Hagamos algunos ejercicios más para consolidar (usamos los clientes anteriores)
1- Seleccione todos los registros cuyo valor de columna Ciudad sea "Berlín".
SELECT * FROM Customers
WHERE City='Berlin';
2- Utilice la palabra clave NOT para seleccionar todos los registros cuya Ciudad no sea "Berlín".
SELECT * FROM Customers
WHERE NOT City ='Berlin';
3- Seleccione todos los registros con el valor de columna CustomerID de 32.
SELECT * FROM Customers
WHERE CustomerID =12;
Operadores AND, OR y NOT
La cláusula WHERE puede combinar operaciones AND, OR y NOT. Las operaciones AND y OR se utilizan para filtrar registros en función de varias condiciones:
La operación AND muestra un registro si se cumplen todas las condiciones y AND es verdadero.
La operación OR muestra un registro si cualquiera de las condiciones OR es verdadera.
La operación NOT se muestra si las condiciones son incorrectas para registrar.
Y sintaxis
SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;
O sintaxis
SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;
NO sintaxis
SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;
Supongamos también la siguiente tabla "Clientes":
Y Ejemplo
La siguiente instrucción SQL selecciona todos los campos de Clientes donde el país es "Alemania" y la ciudad es "Berlín":
SELECT * FROM Customers
WHERE Country='Germany' AND City='Berlin';
O Ejemplo
Seleccione todos los "Clientes" con la ciudad "Berlín" O "München":
SELECT * FROM Customers
WHERE City='Berlin' OR City='München';
NOT Ejemplo
para seleccionar campos de "Clientes" cuyo país no es "Alemania":
SELECT * FROM Customers
WHERE NOT Country='Germany';
Combine AND, OR y NOT
para seleccionar todos los campos de "Clientes" donde el país sea "Alemania" y la ciudad sea "Berlín" O "München" (utilice paréntesis para formar expresiones complejas):
SELECT * FROM Customers
WHERE Country='Germany' AND (City='Berlin' OR City='München');
Seleccione todos los campos de "Clientes" donde el país no sea "Alemania" ni "EE. UU.":
SELECT * FROM Customers
WHERE NOT Country='Germany' AND NOT Country='USA';
Ejercicio
Seleccione todos los registros con un valor de columna de Ciudad de 'Berlín' y un valor de columna de Código Postal de 12209.
SELECT * FROM Customers
WHERE City = 'Berlin'
AND PostalCode= 12209;
ORDENAR POR palabra clave
La palabra clave ORDER BY se utiliza para ordenar el conjunto de resultados en orden ascendente o descendente. ORDENAR POR Por defecto, la palabra clave ordena los registros en orden ascendente. Para ordenar los registros en orden descendente, use la palabra clave DESC.
ORDENAR POR sintaxis
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
Supongamos también que tenemos la tabla "Clientes" de la siguiente manera:
ORDENAR POR Ejemplo
Seleccione todos los clientes de la tabla "Clientes", ordenados por la columna "País":
SELECT * FROM Customers
ORDER BY Country;
ORDEN POR DESC Ejemplo
Seleccionar todos los clientes de la tabla "Clientes", ordenados DESCENDENTE por la columna "País":
SELECT * FROM Customers
ORDER BY Country DESC;
ORDENAR POR Ejemplo de varias columnas
Selecciona todos los clientes de la tabla "Clientes", ordenados por las columnas "País" y "Nombre del cliente". Esto significa que está ordenado por país, pero si algunas filas tienen el mismo país, está ordenado por CustomerName:
SELECT * FROM Customers
ORDER BY Country, CustomerName;
Seleccione todos los clientes de la tabla "Clientes", ordenados por columnas "País" ascendente y "NombreCliente" descendente:
SELECT * FROM Customers
ORDER BY Country ASC, CustomerName DESC;
Ejercicio
Seleccione todos los registros de la tabla Clientes y ordene los resultados alfabéticamente por la columna Ciudad.
SELECT * FROM Customers
ORDER BY City;
INSERTAR EN declaración de inserción
La instrucción INSERT INTO se utiliza para insertar nuevos registros en la tabla.
Sintaxis INSERT
La instrucción INSERT INTO se puede escribir de dos formas:
1- Especificar los nombres de las columnas y los valores a insertar:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
2- Si desea agregar valores para todas las columnas de la tabla, no necesita especificar los nombres de las columnas en la consulta SQL. Sin embargo, asegúrese de que los valores estén en el mismo orden que las columnas de la tabla. Aquí, la sintaxis INSERT INTO es la siguiente:
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
Supongamos que todavía tenemos la misma tabla Clientes:
Ejemplo INSERT
La siguiente instrucción SQL inserta un nuevo registro en la tabla "Clientes":
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');
La ejecución muestra lo siguiente:
¿Notó que no insertamos ningún número en el campo CustomerID? La columna CustomerID es un campo de incremento automático que se generará automáticamente cuando se inserte un nuevo registro en la tabla.
Insertar datos solo en las columnas especificadas
La siguiente instrucción SQL insertará un nuevo registro, pero solo en las columnas "Nombre del cliente", "Ciudad" y "País" (el ID del cliente se actualiza automáticamente):
INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');
Luego de ejecutarlo desplegará lo siguiente:
Ejercicio:
Insertar un nuevo registro en la tabla.
INSERT INTO Customers
(
CustomerName,
Address,
City,
PostalCode,
Country
)
VALUES
(
'Hekkan Burger',
'Gateveien 15',
'Sandnes',
'4306',
'Norway'
)
;
NULL valor vacío
Un campo con un valor NULL es un campo sin valor. Si un campo en una tabla es opcional, se puede insertar un nuevo registro o actualizar un registro sin agregar un valor al campo. Luego, el campo se guardará como un valor NULL.
Nota : Un valor NULL no es lo mismo que un valor cero o un campo que contiene espacios. ¡Los campos con valores NULL son campos que se dejan en blanco durante la creación del registro!
¿Cómo probar valores NULL?
Los operadores de comparación como =, < o <> no se pueden usar para probar valores NULL. Tendremos que usar los operadores IS NULL y IS NOT NULL en su lugar.
ES NULL sintaxis
SELECT column_names
FROM table_name
WHERE column_name IS NULL;
NO ES NULL sintaxis
SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;
Tomemos como ejemplo la tabla "Clientes":
El operador IS NULL
enumera todos los clientes con un valor NULL en el campo "Dirección":
SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NULL;
Sugerencia : utilice siempre IS NULL para encontrar valores NULL.
Operador IS NOT NULL El operador
IS NOT NULL se utiliza para probar valores no nulos (valores NO NULL).
Enumera todos los clientes que tienen un valor en el campo "Dirección":
SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NOT NULL;
Ejercicio:
Seleccione todos los registros Código Postal de Clientes donde la columna esté vacía.
SELECT * FROM Customers
WHERE PostalCode IS NULL;
ACTUALIZAR declaración de actualización
La instrucción UPDATE se utiliza para modificar registros existentes en una tabla.
ACTUALIZAR sintaxis:
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
Nota: ¡Tenga cuidado al actualizar registros en la tabla! Tenga en cuenta la cláusula ACTUALIZAR en la instrucción WHERE. La cláusula WHERE especifica qué registros deben actualizarse. Si se omite la cláusula WHERE, ¡se actualizarán todos los registros de la tabla!
Tomemos como ejemplo la tabla "Clientes":
Actualice la tabla
Actualice el nombre de usuario y los datos de la ciudad con CustomerID = 1
UPDATE Customers
SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'
WHERE CustomerID = 1;
Después, la actualización será la siguiente:
Actualizar múltiples registros
La cláusula WHERE determina cuántos registros se actualizarán.
Actualice el ContactName a "Juan" para todos los registros cuyo país sea "México":
UPDATE Customers
SET ContactName='Juan'
WHERE Country='Mexico';
Después de la actualización, se convertirá en:
¡Advertencia de actualización!
Tenga cuidado al actualizar los registros. Si se omite la cláusula WHERE, ¡se actualizarán todos los registros!
P.ej:
UPDATE Customers
SET ContactName='Juan';
Esto dará como resultado el siguiente resultado:
Ejercicio:
Actualice la columna Clientes de todos los registros en la tabla Ciudad.
UPDATE Customers
SET City = 'Oslo';
DELETE declaración de eliminación
La declaración DELETE se usa para eliminar registros existentes en la tabla.
eliminar sintaxis
DELETE FROM table_name WHERE condition;
Nota: ¡Tenga cuidado al eliminar registros en la tabla! Tenga en cuenta la cláusula DELETE en la instrucción WHERE. La cláusula WHERE especifica qué registros se deben eliminar. Si omite la cláusula WHERE, ¡se eliminarán todos los registros de la tabla!
Jajajaja, tomemos la tabla "Clientes" como ejemplo de la siguiente manera:
borrar ejemplo
Borrar el cliente "Alfreds Futterkiste" de la tabla "Clientes":
DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';
Entonces se convierte en esto:
eliminar todos los registros
Puede eliminar todas las filas de una tabla sin eliminar la tabla. Esto significa que la estructura de la tabla, las propiedades y los índices seguirán siendo los mismos.
DELETE FROM table_name;
Por ejemplo: elimine todas las filas de la tabla "Clientes", pero no elimine la tabla:
DELETE FROM Customers;
Ejercicio : elimine todos los registros con un valor de País de "Noruega" de la tabla Clientes.
DELETE FROM Customers
WHERE Country = 'Norway';
Cláusula de límite TOP, LIMIT, FETCH FIRST o ROWNUM
Cláusula SELECT TOP La cláusula
SELECT TOP se utiliza para especificar el número de registros a devolver. La cláusula SELECT TOP es útil en tablas grandes con miles de registros. Devolver una gran cantidad de registros puede afectar el rendimiento.
Nota: No todos los sistemas de bases de datos admiten la cláusula SELECT TOP. MySQL admite la cláusula LIMIT para seleccionar un número limitado de registros, mientras que Oracle usa la
sintaxis de acceso FETCH FIRST n ROWSONLYROWNUM Server/MS:
SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;
Sintaxis MySQL:
SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;
Sintaxis de Oracle 12:
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;
Por ejemplo, el siguiente
ejemplo de TOP, LIMIT y FETCH FIRST
de la tabla "Clientes" selecciona los tres primeros registros de la tabla "Clientes" (para SQL Server/MS Access):
SELECT TOP 3 * FROM Customers;
Ejemplo equivalente para MySQL:
SELECT * FROM Customers
LIMIT 3;
Ejemplo equivalente para Oracle:
SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;
PORCENTAJE SUPERIOR Ejemplo
para seleccionar el 50% superior de los registros de la tabla "Clientes" (para SQL Server/MS Access):
SELECT TOP 50 PERCENT * FROM Customers;
Ejemplo equivalente para Oracle:
SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;
Agregue una cláusula WHERE
para seleccionar los primeros tres registros de la tabla "Clientes", donde el país es "Alemania" (para SQL Server/MS Access):
SELECT TOP 3 * FROM Customers
WHERE Country='Germany';
Ejemplo equivalente para MySQL
SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;
Ejemplo equivalente para Oracle:
SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;
Funciones MIN() y MAX() para encontrar los valores máximo y mínimo
La función MIN() devuelve el valor mínimo de la columna seleccionada. La función MAX() devuelve el valor máximo de la columna seleccionada.
sintaxis MIN()
SELECT MIN(column_name)
FROM table_name
WHERE condition;
sintaxis MAX()
SELECT MAX(column_name)
FROM table_name
WHERE condition;
Ahora cambiamos a una nueva tabla Producto de la siguiente manera:
MIN() Ejemplo
Encuentra el precio del producto más barato:
SELECT MIN(Price) AS SmallestPrice
FROM Products;
La pantalla se ve así:
MAX() Ejemplo
Encuentre el precio del producto más caro:
SELECT MAX(Price) AS LargestPrice
FROM Products;
Retorna de la siguiente manera:
Ejercicio:
Use la función MIN para seleccionar el registro con el valor mínimo de la columna Precio.
SELECT MIN(Price) FROM Products;
Funciones COUNT(), AVG() y SUM()
La función COUNT() devuelve el número de filas que coinciden con los criterios especificados.
CONTAR() sintaxis
SELECT COUNT(column_name)
FROM table_name
WHERE condition;
La función AVG() devuelve el promedio de una columna numérica.
Sintaxis AVG()
SELECT AVG(column_name)
FROM table_name
WHERE condition;
La función SUM() devuelve la suma de una columna numérica.
sintaxis SUMA()
SELECT SUM(column_name)
FROM table_name
WHERE condition;
Sigamos usando el
ejemplo de tabla de productos COUNT()
para encontrar la cantidad de productos:
SELECT COUNT(ProductID)
FROM Products;
Nota: Los valores NULL no se cuentan.
Ejemplo de AVG()
Encuentre el precio promedio de todos los productos:
SELECT AVG(Price)
FROM Products;
Nota: Los valores NULL se ignoran.
Supongamos que ahora tengo la tabla "Detalles del pedido" de la siguiente manera:
SUM() Ejemplo
Encuentre la suma del campo "Cantidad" en la tabla "Detalles del pedido":
SELECT SUM(Quantity)
FROM OrderDetails;
Devuelve lo siguiente:
Nota: Los valores NULL se ignoran.
Ejercicio :
Devuelva el número de registros con el valor de Precio establecido en 18
SELECT COUNT(*) FROM Products
WHERE Price = 18;
LIKE operador
El operador LIKE se usa en la cláusula WHERE para buscar el patrón especificado en la columna. Hay dos caracteres comodín que a menudo se usan junto con el operador LIKE: el
signo de porcentaje (%) para cero, uno o más caracteres y el
guión bajo ( ) para un solo carácter,
pero tenga en cuenta: MS Access usa un asterisco (*) en lugar de signos de porcentaje (%), utilice el signo de interrogación (?) en lugar de guión bajo ( )
¡Por supuesto, los signos de porcentaje y los guiones bajos también se pueden combinar!
LIKE sintaxis
SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
Sugerencia: también puede combinar cualquier cantidad de condiciones usando operadores AND u OR.
Estos son algunos ejemplos que muestran los diferentes operadores LIKE con los comodines "%" y "_":
Los significados correspondientes son:
Línea 1: Coincide con cualquier campo que comience con
Línea 2: Coincide con cualquier campo que termine con
Línea 3: Coincide con cualquier campo con "o"
Línea 4: busque cualquier valor que tenga una "r" en la segunda posición
Línea 5: busque cualquier valor que comience con "a" y tenga al menos 2 caracteres
Línea 6: busque cualquier valor que comience con "a" y tiene al menos 3 caracteres
Línea 7: busque cualquier valor que comience con "a" y termine con "o". Por
ejemplo, todavía tenemos la siguiente tabla Clientes:
Ejemplo LIKE
Para seleccionar todos los clientes cuyo CustomerName comience con "a":
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';
Seleccione todos los clientes cuyo CustomerName termine en "a":
SELECT * FROM Customers
WHERE CustomerName LIKE '%a';
Seleccione todos los clientes con un "o" en cualquier parte de CustomerName:
SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';
Seleccione todos los clientes con la segunda posición "r" en CustomerName:
SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';
Seleccione todos los clientes cuyo CustomerName comience con "a" y tenga al menos 3 caracteres:
SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';
Seleccione todos los clientes cuyo ContactName comience con "a" y termine con "o":
SELECT * FROM Customers
WHERE ContactName LIKE 'a%o';
Seleccione todos los clientes cuyo CustomerName no comience con "a":
SELECT * FROM Customers
WHERE CustomerName NOT LIKE 'a%';
comodín *? ! Esperar
Esta es la descripción de todos los caracteres comodín en el documento en inglés (realmente no quiero traducir, veamos por sí mismo)
Supongamos que todavía tenemos la siguiente tabla "Clientes":
Use el comodín %
para seleccionar todos los clientes cuya ciudad comienza con "ber":
SELECT * FROM Customers
WHERE City LIKE 'ber%';
Seleccione todos los clientes cuya Ciudad contenga "es":
SELECT * FROM Customers
WHERE City LIKE '%es%';
Devuelve lo siguiente:
Use el comodín _
para seleccionar todos los clientes cuya ciudad comience con cualquier carácter seguido de "ondón":
SELECT * FROM Customers
WHERE City LIKE '_ondon';
Seleccione todos los clientes cuya ciudad comience con "L" seguida de cualquier carácter, "n", cualquier carácter, "on":
SELECT * FROM Customers
WHERE City LIKE 'L_n_on';
Use el comodín [charlist]
para seleccionar todos los clientes cuya ciudad comience con "b", "s" o "p":
SELECT * FROM Customers
WHERE City LIKE '[bsp]%';
Seleccione todos los clientes cuya Ciudad comience con "a", "b" o "c":
SELECT * FROM Customers
WHERE City LIKE '[a-c]%';
Use el comodín [!charlist]
para seleccionar todos los clientes cuya ciudad no comience con "b", "s" o "p":
SELECT * FROM Customers
WHERE City LIKE '[!bsp]%';
o
SELECT * FROM Customers
WHERE City NOT LIKE '[bsp]%';
Operador ENTRADA
El operador IN le permite especificar múltiples valores en la cláusula WHERE.
La operación IN es para múltiples condiciones OR abreviadas.
sintaxis IN
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);
Tomemos de nuevo la tabla "Clientes" como ejemplo: Ejemplo
de operador IN
Para seleccionar todos los clientes ubicados en 'Alemania', 'Francia', 'Reino Unido':
SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');
Seleccione no seleccionar todos los clientes ubicados en 'Alemania', 'Francia', 'Reino Unido':
SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');
Seleccione todos los clientes del mismo país como Proveedores:
SELECT * FROM Customers
WHERE Country IN (SELECT Country FROM Suppliers);
Regresa de la siguiente manera
ENTRE operador
El operador BETWEEN selecciona un valor dentro de un rango dado. Los valores pueden ser números, texto o fechas.
ENTRE sintaxis
SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;
Usamos la siguiente tabla de productos:
entre ejemplo
para seleccionar todos los productos con un precio entre 10 y 20:
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20;
Para mostrar productos fuera del alcance del ejemplo anterior, use NOT BETWEEN:
SELECT * FROM Products
WHERE Price NOT BETWEEN 10 AND 20;
Entre los números
Seleccione todos los productos con un precio entre 10 y 20. Además, no muestre productos con CategoryID 1, 2 o 3:
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20
AND CategoryID NOT IN (1,2,3);
Entre la
declaración de valores de texto selecciona todos los productos con ProductName entre Carnarvon Tigers y Mozzarella di Giovanni
SELECT * FROM Products
WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'
ORDER BY ProductName;
Seleccione todos los productos con nombres de producto entre Carnarvon Tigers y Chef Anton's Cajun Seasoning:
SELECT * FROM Products
WHERE ProductName BETWEEN "Carnarvon Tigers" AND "Chef Anton's Cajun Seasoning"
ORDER BY ProductName;
NO ENTRE valor de texto
Seleccione todos los productos cuyo ProductName no esté entre Carnarvon Tigers y Mozzarella di Giovanni:
SELECT * FROM Products
WHERE ProductName NOT BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni'
ORDER BY ProductName;
Supongamos ahora que tenemos la siguiente tabla de "Pedidos":
Ejemplo
entre fechas Seleccione todos los pedidos con una fecha de pedido entre '01-julio-1996' y '31-julio-1996'
SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/01/1996# AND #07/31/1996#;
o usar:
SELECT * FROM Orders
WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31';
Uso de alias de AS
Sintaxis de la columna de alias
SELECT column_name AS alias_name
FROM table_name;
Sintaxis de la tabla de alias
SELECT column_name(s)
FROM table_name AS alias_name;
Ahora supongamos que tenemos la tabla custorm de la siguiente manera:
también hay un ejemplo de alias para la columna de la tabla oeder
Cree
dos alias, uno para la columna CustomerID y el otro para la columna CustomerName:
SELECT CustomerID AS ID, CustomerName AS Customer
FROM Customers;
Cree dos alias, uno para la columna CustomerName y otro para la columna ContactName. Nota: Se requieren comillas dobles o corchetes si el alias contiene espacios:
SELECT CustomerName AS Customer, ContactName AS [Contact Person]
FROM Customers;
Cree un alias llamado "Dirección" que combine las cuatro columnas (Dirección, Código Postal, Ciudad y País):
SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ', ' + Country AS Address
FROM Customers;
Nota: Para hacer que la declaración SQL anterior funcione en MySQL, use el siguiente comando:
SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address
FROM Customers;
Ejemplo de alias de tabla
Seleccione todos los pedidos del cliente con CustomerID=4 (Around the Horn). Usamos las tablas "Clientes" y "Pedidos", dándoles alias de tabla "c" y "o" respectivamente (aquí usamos alias para acortar el SQL)
SELECT o.OrderID, o.OrderDate, c.CustomerName
FROM Customers AS c, Orders AS o
WHERE c.CustomerName='Around the Horn' AND c.CustomerID=o.CustomerID;
La siguiente instrucción SQL es la misma que la anterior, pero sin el alias:
SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM Customers, Orders
WHERE Customers.CustomerName='Around the Horn' AND Customers.CustomerID=Orders.CustomerID;
Los alias son útiles cuando:
1. Una consulta involucra varias tablas
2. Una consulta involucra varias tablas
3. Las funciones utilizadas en la consulta
4. Los nombres de las columnas son grandes o no muy legibles
5. Dos o más columnas combinan todo junto
ÚNETE a la conexión
La cláusula JOIN se usa para unir filas de dos o más tablas en función de las columnas relacionadas entre ellas.
Supongamos que ahora tenemos la tabla "Pedidos" como sigue
y también la tabla "Clientes" como sigue:
Tenga en cuenta que la columna "CustomerID" en la tabla "Pedidos" hace referencia al "CustomerID" en la tabla "Clientes". La relación entre las dos tablas anteriores es la columna "CustomerID".
Ejemplo
Use INNER JOIN para seleccionar registros con valores coincidentes en ambas tablas:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
Devuelve los siguientes
tipos diferentes de SQL JOIN
INNER JOIN palabra clave de unión interna
La palabra clave INNER JOIN selecciona registros que tienen valores coincidentes en ambas tablas.
gramática:
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
Dibuje una imagen para entender:
Supongamos que todavía tenemos la tabla de pedidos tabla de
clientes
INNER JOIN Ejemplo
Seleccione todos los pedidos que contienen información del cliente:
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
Regrese
ÚNASE a tres tablas
para seleccionar todos los pedidos con información del cliente y del remitente
SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);
Regresa de la siguiente manera
LEFT JOIN palabra clave de combinación izquierda
La palabra clave LEFT JOIN devuelve todos los registros de la tabla de la izquierda (tabla1) y los registros coincidentes de la tabla de la derecha (tabla2). Si no hay coincidencia, el resultado es 0 registros a la derecha.
Sintaxis de combinación izquierda
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
Puede entenderlo con una imagen.
Todavía usamos la tabla de clientes: tabla de
pedidos
LEFT JOIN ejemplo
Seleccione todos los clientes y los pedidos que puedan tener:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
Regresa de la siguiente manera
RIGHT JOIN palabra clave de unión derecha
gramática
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
Ahora usamos
la tabla de pedidos de la siguiente manera
. También hay una tabla de empleados que
devuelve todos los empleados y cualquier pedido que hayan realizado:
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
FROM Orders
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
ORDER BY Orders.OrderID;
Palabra clave FULL OUTER JOIN
FULL OUTER JOIN es lo mismo que FULL JOIN.
La sintaxis es:
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
Puede entenderlo con una imagen
Suponemos que todavía usamos la tabla de clientes
y una tabla de pedidos
para seleccionar todos los clientes y todos los pedidos:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
Regresa de la siguiente manera
Palabra clave de unión automática
gramática
SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;
Supongamos que hay una tabla
de clientes que coincide con clientes de la misma ciudad:
SELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.City
FROM Customers A, Customers B
WHERE A.CustomerID <> B.CustomerID
AND A.City = B.City
ORDER BY A.City;
Regresa de la siguiente manera
GRUPO POR declaración
La declaración GROUP BY agrupa filas con el mismo valor en filas de resumen, como "Buscar el número de clientes en cada país".
La instrucción GROUP BY generalmente se usa con funciones agregadas ( COUNT(), MAX(), MIN(), SUM(), AVG()) para agrupar el conjunto de resultados por una o más columnas.
gramática:
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
Supongamos que todavía tenemos la tabla de clientes que
enumera el número de clientes en cada país:
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
Se lista el número de clientes en cada país, ordenados de mayor a menor:
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
Cláusula HAVING
gramática:
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);
Suponga que todavía hay una tabla personalizada a continuación que
enumera la cantidad de clientes en cada país. Solo incluye países con más de 5 clientes:
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;
Se lista el número de clientes de cada país, ordenados de mayor a menor (solo se incluyen los países con más de 5 clientes):
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;
operador EXISTE
El operador EXISTS se usa para probar si existen registros en la subconsulta.
El operador EXISTS devuelve verdadero si la subconsulta devuelve uno o más registros.
gramática
SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);
Supongamos que todavía usamos la tabla de proveedores de la
tabla de productos
. Por ejemplo:
devuelva VERDADERO y enumere los proveedores cuyo precio de producto es inferior a 20:
SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price < 20);
Devuelve de la siguiente manera
Devuelve VERDADERO y enumera los proveedores cuyo precio de producto es igual a 22:
SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price = 22);
devuelve como:
notas
Los comentarios de una sola línea comienzan con -.-
y cualquier texto entre el final de la línea será ignorado (no ejecutado)
.Por ejemplo:
--Select all:
SELECT * FROM Customers;
Otro ejemplo
SELECT * FROM Customers -- WHERE City='Berlin';
Los comentarios de varias líneas /* y cualquier texto entre /./ y * /
se ignoran.
P.ej:
/*Select all the columns
of all the records
in the Customers table:*/
SELECT * FROM Customers;
Otro ejemplo
/*SELECT * FROM Customers;
SELECT * FROM Products;
SELECT * FROM Orders;
SELECT * FROM Categories;*/
SELECT * FROM Suppliers;
Ignorar parte de una declaración:
p.
SELECT CustomerName, /*City,*/ Country FROM Customers;
Otro ejemplo
SELECT * FROM Customers WHERE (CustomerName LIKE 'L%'
OR CustomerName LIKE 'R%' /*OR CustomerName LIKE 'S%'
OR CustomerName LIKE 'T%'*/ OR CustomerName LIKE 'W%')
AND Country='USA'
ORDER BY CustomerName;
operador
De hecho, en esta sección ya he demostrado los operadores anteriores. Dilo otra vez.
Los operadores aritméticos tienen una
parte de demostración ,
como encontrar 20+30:
SELECT 30 + 20;
división (devuelve 3)
SELECT 30 / 10;
Toma el resto (devuelve 2)
SELECT 17 % 5;
Operador de comparación
Demostrar parte
Mayor que
SELECT * FROM Products
WHERE Price = 18;
no igual a
SELECT * FROM Products
WHERE Price <> 18;
mayor o igual a
SELECT * FROM Products
WHERE Price >= 30;