Columna SQL
Resumen de conocimientos básicos de la base de datos SQL
Resumen del conocimiento avanzado de la base de datos SQL
Excel es la herramienta más utilizada en el análisis de datos. Excel se puede utilizar para completar la limpieza de datos, el preprocesamiento y las operaciones más comunes de clasificación, filtrado, clasificación y resumen de datos y pivote de datos, y estas operaciones se pueden implementar con SQL. SQL no solo puede leer datos de la base de datos, sino que también puede devolver directamente los resultados requeridos a través de diferentes declaraciones de función SQL, lo que mejora en gran medida la eficiencia de sus cálculos en las aplicaciones cliente.
1 Procesamiento de datos duplicados para
encontrar registros duplicados
SELECT * FROM user
Where (nick_name,password) in
(
SELECT nick_name,password
FROM user
group by nick_name,password
having count(nick_name)>1
);
Buscar registros de deduplicación
Encuentra el registro con la identificación más grande
SELECT * FROM user
WHERE id in
(SELECT max(id) FROM user
group by nick_name,password
having count(nick_name)>1
);
Eliminar registros duplicados
Solo mantenga el registro con el valor de identificación más pequeño
DELETE c1
FROM customer c1,customer c2
WHERE c1.cust_email=c2.cust_email
AND c1.id>c2.id;
DELETE FROM user Where (nick_name,password) in
(SELECT nick_name,password FROM
(SELECT nick_name,password FROM user
group by nick_name,password
having count(nick_name)>1) as tmp1
)
and id not in
(SELECT id FROM
(SELECT min(id) id FROM user
group by nick_name,password
having count(nick_name)>1) as tmp2
);
2 Procesamiento de valor perdido
Encuentra registros de valores perdidos
SELECT * FROM customer
WHERE cust_email IS NULL;
Actualizar columna para llenar con valores vacíos
UPDATE sale set city = "未知"
WHERE city IS NULL;
UPDATE orderitems set
price_new=IFNULL(price_new,5.74);
Consultar y llenar la columna vacía
SELECT AVG(price_new) FROM orderitems;
SELECT IFNULL(price_new,5.74) AS bus_ifnull
FROM orderitems;
3 Columna calculada
Actualizar tabla para agregar columnas calculadas
ALTER TABLE orderitems ADD price_new DECIMAL(8,2) NOT NULL;
UPDATE orderitems set price_new= item_price*count;
Consultar columnas calculadas
SELECT item_price*count as sales FROM orderitems;
4 Ordenar
Ordenar por varias columnas
SELECT * FROM orderitems
ORDER BY price_new DESC,quantity;
Consultar los primeros registros
SELECT * FROM orderitems
ORDER BY price_new DESC LIMIT 5;
Consultar el décimo valor más grande
SELECT DISTINCT price_new
FROM orderitems
ORDER BY price_new DESC LIMIT 9,1;
Rango
Mismos rangos con el mismo valor y rangos consecutivos
SELECT prod_price,
(SELECT COUNT(DISTINCT prod_price)
FROM products
WHERE prod_price>=a.prod_price
) AS rank
FROM products AS a
ORDER BY rank ;
5 Procesamiento de cadenas
Reemplazo de cuerdas
UPDATE data1 SET city=REPLACE(city,'SH','shanghai');
SELECT city FROM data1;
Interceptar por cadena de posición
La interceptación de cadenas se puede utilizar para clasificar datos en
las funciones de intercepción de cadenas de MySQL: left (), right (), substring (), substring_index ()
SELECT left('example.com', 3);
Tomar desde la posición del 4to carácter de la cadena hasta el final
SELECT substring('example.com', 4);
Comience desde la posición del cuarto carácter de la cadena, solo tome 2 caracteres
SELECT substring('example.com', 4, 2);
Interceptar cadena por palabra clave
Tome todos los caracteres antes del primer separador, el resultado es www.
SELECT substring_index('www.google.com','.',1);
Tome todos los caracteres después del penúltimo separador, el resultado es google.com;
SELECT substring_index('www.google.com','.',-2);
6 Proyección
Utilice operadores para lograr un filtrado avanzado
Utilice operadores como AND OR IN NOT para lograr un filtrado avanzado
SELECT prod_name,prod_price FROM Products
WHERE vend_id IN('DLL01','BRS01');
SELECT prod_name FROM Products WHERE NOT vend_id='DLL01';
Filtrado de comodines
Los comodines comunes son% _ [] ^
SELECT * from customers WHERE country LIKE "CH%";
7 unión de mesa
La conexión de tabla SQL puede lograr una función similar a la función Vlookup en Excel
SELECT vend_id,prod_name,prod_price
FROM Vendors INNER JOIN Products
ON Vendors.vend_id=Products.vend_id;
SELECT prod_name,vend_name,prod_price,quantity
FROM OderItems,Products,Vendors
WHERE Products.vend_id=Vendors.vend_id
AND OrderItems.prod_id=Products.prod_id
AND order_num=20007;
Self-join usa la misma tabla varias veces en una instrucción SELECT
SELECT c1.cust_od,c1.cust_name,c1.cust_contact
FROM Customers as c1,Customers as c2
WHERE c1.cust_name=c2.cust_name
AND c2.cust_contact='Jim Jones';
8 pivote
La agrupación de datos puede realizar la función de la tabla dinámica en Excel
La agrupación de datos
se utiliza para agrupar datos después de haber utilizado para filtrar datos después de la agrupación.
SELECT order_num,COUNT(*) as items
FROM OrderItems
GROUP BY order_num HAVING COUNT(*)>=3;
Mesa cruzada
Realizado por la función CASE WHEN
SELECT data1.city,
CASE WHEN colour = "A" THEN price END AS A,
CASE WHEN colour = "B" THEN price END AS B,
CASE WHEN colour = "C" THEN price END AS C,
CASE WHEN colour = "F" THEN price END AS F
FROM data1