Apodo de Blogger
Página principal de Blogger Enlace: Portal de inicio de BloggerEnlace de la página de la columna de Blogger: Portal de columna --
Creación de tecnología de seguridad de red Intención original: La intención original de este blog es comunicarse con amigos técnicos. La tecnología de todos tiene deficiencias, y lo mismo es cierto para los blogueros. Pida consejo con humildad. Amigos dar orientación.
El lema del blogger: descubre la luz, sigue la luz, conviértete en la luz y emite la luz;
la dirección de investigación del blogger: pruebas de penetración, aprendizaje automático;
el mensaje del blogger: gracias por tu apoyo, tu apoyo es la fuerza impulsora para mí avanzar;Enlace de salto del sitio web de aprendizaje: Niuke Brush Questions Network
prefacio
Recomiende un muy buen software de limpieza de preguntas para todos Niuke Brush Questions Network---Aprender SQL juntos
¿Por qué a los bloggers les gusta usar este sitio web para aprender?
Hay tres razones principales:
1. Contiene una gran cantidad de bancos de preguntas de entrevistas
2. La cobertura de la industria es relativamente amplia
3. Las preguntas de cepillado están de acuerdo con el proceso de simple a difícil
1. SQL usa subconsultas
(1) Subconsulta
Una subconsulta es una consulta anidada en otra declaración, como: seleccionar , insertar, actualizar, eliminar
(2) Subconsultas anidadas
Las subconsultas se pueden anidar dentro de otra subconsulta, SQL Server admite hasta 32 niveles de anidamiento
(3) Subrutinas relacionadas
① Una subconsulta correlacionada es una subconsulta que utiliza los valores de la consulta externa . es decir , depende del valor de la consulta externa
② Las subconsultas correlacionadas no se pueden ejecutar de forma independiente como subconsultas simples
③ Ejecute repetidamente la subconsulta correlacionada una vez por cada fila evaluada por la consulta externa. Las subconsultas correlacionadas también se conocen como subconsultas repetidas .
2. Cepillo de preguntas
1. Cepillo Pregunta 1
(1) Temas
Pregunta: Devolver una lista de clientes que compraron productos por $10 o más
Descripción: OrderItems representa la tabla de artículos del pedido, que contiene los campos número de pedido: order_num, precio del pedido: item_price; la tabla Orders representa la tabla de información del pedido, incluida la identificación del cliente: cust_id y el número de pedido: order_num
(2) Ejemplo
输入:
DROP TABLE IF EXISTS `OrderItems`;
CREATE TABLE IF NOT EXISTS `OrderItems`(
order_num VARCHAR(255) NOT NULL COMMENT '商品订单号',
item_price INT(16) NOT NULL COMMENT '售出价格'
);
INSERT `OrderItems` VALUES ('a1',10),('a2',1),('a2',1),('a4',2),('a5',5),('a2',1),('a7',7);
DROP TABLE IF EXISTS `Orders`;
CREATE TABLE IF NOT EXISTS `Orders`(
order_num VARCHAR(255) NOT NULL COMMENT '商品订单号',
cust_id VARCHAR(255) NOT NULL COMMENT '顾客id'
);
INSERT `Orders` VALUES ('a1','cust10'),('a2','cust1'),('a2','cust1'),('a4','cust2'),('a5','cust5'),('a2','cust1'),('a7','cust7');
输出:
cust10
(3) Código
select cust_idfrom Orderswhere order_num in (
select order_num
from OrderItems
where item_price >=10
)
(4) Resultado de la operación
2. Cepillo pregunta 2
(1) Temas
Tema: Determinar qué pedidos compraron el producto con prod_id BR01 (1)
Descripción: la tabla OrderItems representa la tabla de información del artículo del pedido, prod_id es el id del producto; la tabla Orders representa la tabla de pedidos y cust_id representa el id del cliente y la fecha del pedido order_date
(2) Ejemplo
输入:
DROP TABLE IF EXISTS `OrderItems`;
CREATE TABLE IF NOT EXISTS `OrderItems`(
prod_id VARCHAR(255) NOT NULL COMMENT '产品id',
order_num VARCHAR(255) NOT NULL COMMENT '商品订单号'
);
INSERT `OrderItems` VALUES ('BR01','a0001'),('BR01','a0002'),('BR02','a0003'),('BR02','a0013');
DROP TABLE IF EXISTS `Orders`;
CREATE TABLE IF NOT EXISTS `Orders`(
order_num VARCHAR(255) NOT NULL COMMENT '商品订单号',
cust_id VARCHAR(255) NOT NULL COMMENT '顾客id',
order_date TIMESTAMP NOT NULL COMMENT '下单时间'
);
INSERT `Orders` VALUES ('a0001','cust10','2022-01-01 00:00:00'),('a0002','cust1','2022-01-01 00:01:00'),('a0003','cust1','2022-01-02 00:00:00'),('a0013','cust2','2022-01-01 00:20:00');
输出:
cust10|2022-01-01 00:00:00
cust1|2022-01-01 00:01:00
(3) Código
select cust_id,order_datefrom Orderswhere order_num in
(select order_numfrom OrderItemswhere prod_id = 'BR01')
(4) Resultado de la operación
3. Cepillo pregunta tres
(1) Temas
Título: Devuelva los correos electrónicos de todos los clientes que compraron productos con prod_id BR01 (1)
Descripción: desea saber la fecha de pedido de productos BR01, hay una tabla de artículos de pedido que representa la tabla de información de artículos de pedido, prod_id es el id del producto; la tabla de pedidos representa la tabla de pedidos, cust_id representa el id del cliente y la fecha del pedido order_date; la tabla Customers contiene el correo electrónico del cliente cust_email y cust_id ID de cliente
(2) Ejemplo
输入:
DROP TABLE IF EXISTS `OrderItems`;
CREATE TABLE IF NOT EXISTS `OrderItems`(
prod_id VARCHAR(255) NOT NULL COMMENT '产品id',
order_num VARCHAR(255) NOT NULL COMMENT '商品订单号'
);
INSERT `OrderItems` VALUES ('BR01','a0001'),('BR01','a0002'),('BR02','a0003'),('BR02','a0013');
DROP TABLE IF EXISTS `Orders`;
CREATE TABLE IF NOT EXISTS `Orders`(
order_num VARCHAR(255) NOT NULL COMMENT '商品订单号',
cust_id VARCHAR(255) NOT NULL COMMENT '顾客id',
order_date TIMESTAMP NOT NULL COMMENT '下单时间'
);
INSERT `Orders` VALUES ('a0001','cust10','2022-01-01 00:00:00'),('a0002','cust1','2022-01-01 00:01:00'),('a0003','cust1','2022-01-02 00:00:00'),('a0013','cust2','2022-01-01 00:20:00');
DROP TABLE IF EXISTS `Customers`;CREATE TABLE IF NOT EXISTS `Customers`(
cust_id VARCHAR(255) NOT NULL COMMENT '顾客id',
cust_email VARCHAR(255) NOT NULL COMMENT '顾客email'
);INSERT `Customers` VALUES ('cust10','[email protected]'),('cust1','[email protected]'),('cust2','[email protected]');
输出:
[email protected]
[email protected]
(3) Código
select
Customers.cust_emailfrom
Ordersleft join OrderItems on OrderItems.order_num = Orders.order_numleft join Customers on Customers.cust_id = Orders.cust_idwhere
OrderItems.prod_id = "BR01"
(4) Resultado de la operación
4. Cepillo pregunta 4
(1) Temas
Pregunta: Devolver el importe total de los diferentes pedidos de cada cliente
Descripción: Necesitamos una lista de ID de clientes que contengan la cantidad total que han pedido. La tabla OrderItems representa la información del pedido y la tabla OrderItems tiene el número de pedido: order_num, el precio de venta del artículo: item_price y la cantidad del artículo: cantidad.
(2) Ejemplo
输入:
DROP TABLE IF EXISTS `OrderItems`;CREATE TABLE IF NOT EXISTS `OrderItems`(
order_num VARCHAR(255) NOT NULL COMMENT '商品订单号',
item_price INT(16) NOT NULL COMMENT '售出价格',
quantity INT(16) NOT NULL COMMENT '商品数量'
);INSERT `OrderItems` VALUES ('a0001',10,105),('a0002',1,1100),('a0002',1,200),('a0013',2,1121),('a0003',5,10),('a0003',1,19),('a0003',7,5);
DROP TABLE IF EXISTS `Orders`;CREATE TABLE IF NOT EXISTS `Orders`(
order_num VARCHAR(255) NOT NULL COMMENT '商品订单号',
cust_id VARCHAR(255) NOT NULL COMMENT '顾客id'
);INSERT `Orders` VALUES ('a0001','cust10'),('a0003','cust1'),('a0013','cust2');
输出:
cust2|2242.000
cust10|1050.000
cust1|104.000
(3) Código
SELECT
o.cust_id,
sum(oi.item_price * oi.quantity) AS total_orderedFROM Orders o JOIN OrderItems oi
USING (order_num)GROUP BY o.cust_idORDER BY total_ordered DESC
(4) Resultado de la operación
5. Cepillo Pregunta 5
(1) Temas
Pregunta: Recupere todos los nombres de productos y los totales de ventas correspondientes de la tabla Productos
Descripción: recuperar todos los nombres de productos en la tabla Productos: prod_name, id de producto: prod_id
OrderItems representa la tabla de artículos de pedido, producto de pedido: prod_id, cantidad vendida: cantidad
(2) Ejemplo
ingresar:
DROP TABLE IF EXISTS `Products`;CREATE TABLE IF NOT EXISTS `Products` (
`prod_id` VARCHAR(255) NOT NULL COMMENT '产品 ID',
`prod_name` VARCHAR(255) NOT NULL COMMENT '产品名称'
);INSERT INTO `Products` VALUES ('a0001','egg'),
('a0002','sockets'),
('a0013','coffee'),
('a0003','cola');
DROP TABLE IF EXISTS `OrderItems`;CREATE TABLE IF NOT EXISTS `OrderItems`(
prod_id VARCHAR(255) NOT NULL COMMENT '产品id',
quantity INT(16) NOT NULL COMMENT '商品数量'
);INSERT `OrderItems` VALUES ('a0001',105),('a0002',1100),('a0002',200),('a0013',1121),('a0003',10),('a0003',19),('a0003',5);
输出:
egg|105.000
sockets|1300.000
coffee|1121.000
cola|34.000
(3) Código
select
prod_name,
sum(quantity) as quant_soldfrom
Products,
OrderItemswhere
OrderItems.prod_id = Products.prod_idgroup by
prod_name
(4) Resultado de la operación
Este artículo es el decimocuarto día de preguntas de cepillado de SQL
Bienvenidos amigos, haga clic en el enlace de la derecha para aprender con el blogger, haga clic para aprender