ブロガーのニックネーム: Jumping Stairs Penguin
Blogger メイン ページ リンク: Blogger ホーム ポータルブロガーのコラム ページへのリンク:コラム ポータル -- ネットワーク セキュリティ テクノロジ
の作成 当初の意図: このブログの本来の意図は、技術的な友人と通信することです. 誰のテクノロジにも欠点があり、ブロガーも同じです. 謙虚にアドバイスを求めてください. 友人指導します。
ブロガーのモットー: 光を発見し、光をたどり、光になり、光を放ちます;
ブロガーの研究方向: 侵入テスト、機械学習;
ブロガーのメッセージ: ご支援いただきありがとうございます, あなたのサポートは私の原動力です.前進する。学習サイトジャンプリンク:Niuke Brush Questions Network
序文
誰にとっても非常に優れた質問ブラシ ソフトウェアをお勧めします. Niuke Brush Questions Network---SQL を一緒に学ぶ
ブロガーがこの Web サイトを学習に利用するのはなぜですか?
主な理由は次の 3 つです。
1. 面接問題集を多数収録
2.業界のカバレッジは比較的包括的です
3. ブラッシング問題は、簡単なものから難しいものまで、プロセスに沿って出題されます
1. SQL はサブクエリを使用します
(1) サブクエリ
サブクエリは、select 、 insert 、 update 、 deleteなどの別のステートメントにネストされたクエリです。
(2) サブクエリの入れ子
サブクエリは別のサブクエリ内にネストできます。SQL Server は最大 32 のネスト レベルをサポートします。
(3) 関連サブルーチン
①相関サブクエリとは、外部クエリの値を利用するサブクエリです。つまり、外側のクエリの値に依存します
② 相関サブクエリは単純なサブクエリとして独立して実行できない
③ 外側のクエリで評価された行ごとに、相関サブクエリを 1 回繰り返し実行します。相関サブクエリは、繰り返しサブクエリとも呼ばれます。
2.ブラシの質問
1.筆問1
(1) トピックス
質問: $10 以上の商品を購入した顧客のリストを返す
説明: OrderItems は、注文番号: order_num、注文価格: item_price のフィールドを含む注文アイテム テーブルを表し、Orders テーブルは、顧客 ID: cust_id および注文番号: order_num を含む注文情報テーブルを表します。
(2) 例
输入:
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) コード
select cust_idfrom Orderswhere order_num in (
select order_num
from OrderItems
where item_price >=10
)
(4) 運用結果
な
2.筆問題2
(1) トピックス
トピック: prod_id BR01 の製品を購入した注文を特定する (1)
説明: テーブル OrderItems は注文アイテム情報テーブルを表し、prod_id は製品 ID です。Orders テーブルは注文テーブルを表し、cust_id は顧客 ID と注文日 order_date を表します。
(2) 例
输入:
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) コード
select cust_id,order_datefrom Orderswhere order_num in
(select order_numfrom OrderItemswhere prod_id = 'BR01')
(4) 運用結果
な
3. ブラシの質問 3
(1) トピックス
タイトル: prod_id BR01 の製品を購入したすべての顧客のメールを返す (1)
説明: BR01 製品の注文日を知りたい場合、注文アイテム情報テーブルを表す OrderItems テーブルがあり、prod_id は製品 ID です; Orders テーブルは注文テーブルを表し、cust_id は顧客 ID と注文日 order_date を表します; Customers テーブルには cust_email 顧客の電子メールが含まれますcust_id 顧客 ID
(2) 例
输入:
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) コード
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) 運用結果
4.筆問4
(1) トピックス
質問: 各顧客の異なる注文の合計金額を返します
説明: 注文した合計金額を含む顧客 ID のリストが必要です。OrderItems テーブルは注文情報を表し、OrderItems テーブルには注文番号: order_num、アイテムの販売価格: item_price、およびアイテムの数量: quantity があります。
(2) 例
输入:
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) コード
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) 運用結果
5.筆問5
(1) トピックス
質問: Products テーブルからすべての製品名と対応する売上合計を取得します。
説明: Products テーブル内のすべての製品名を取得します: prod_name、製品 ID: prod_id
OrderItems は、注文商品テーブル、注文商品: prod_id、販売数量: 数量を表します。
な
(2) 例
入力:
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) コード
select
prod_name,
sum(quantity) as quant_soldfrom
Products,
OrderItemswhere
OrderItems.prod_id = Products.prod_idgroup by
prod_name
(4) 運用結果
な
この記事は、SQL ブラッシングの質問の 14 日目です。
お友達を歓迎します。右側のリンクをクリックしてブロガーと一緒に学び、クリックして学びましょう
な