注文データベースに対するクエリおよびその他の操作
テーブル構造の場合:
1.エージェント(エージェント番号、名前、住所、郵便番号、コミッション金額、コミッション比率)
エージェント番号は主キーです
フィールド名 | データ型 | 備考 |
---|---|---|
エージェントID | char(4) | 主キー |
お名前 | nvarchar(10) | |
住所 | nvarchar(20) | |
郵便番号 | char(6) | |
手数料額 | 小さなお金 | |
手数料の割合 | tinyint |
2.顧客(顧客番号、名前、住所、郵便番号、収入と支出の差額、ローン制限、エージェント番号)
顧客番号が主キーです
フィールド名 | データ型 | 備考 |
---|---|---|
お客様ID | char(4) | 主キー |
お名前 | nvarchar(10) | |
住所 | nvarchar(20) | |
郵便番号 | char(6) | |
収支 | 小さなお金 | |
ローン限度額 | 小さなお金 | |
エージェントID | char(4) | 外部キー |
3。製品(製品番号、説明情報、在庫、カテゴリ、倉庫番号、価格)
製品のシリアル番号が主キーです
フィールド名 | データ型 | 備考 |
---|---|---|
製品ID | char(4) | 主キー |
説明的な情報 | nvarchar(20) | |
在庫 | int | |
カテゴリー | tinyint | |
倉庫ID | char(4) | |
価格 | 小さなお金 |
4。注文(注文番号、注文日、顧客番号)
フィールド名 | データ型 | 備考 |
---|---|---|
注文番号 | char(4) | 主キー |
注文日 | Smalldatetime | |
お客様ID | char(4) | 外部キー |
5。注文品目(注文番号、製品番号、注文数量、注文単価)
フィールド名 | データ型 | 備考 |
---|---|---|
注文番号 | char(4) | 主キー、外部キー |
製品ID | char(4) | 主キー、外部キー |
注文数量 | smallint | |
注文単価 | 小さなお金 |
倉庫番号1002の製品の総在庫を照会し、倉庫番号と総在庫を表示します
select 仓库编号,sum(库存量) as 总库存量 from 产品
group by 仓库编号
having 仓库编号='1002'
最高のコミッション金額を持つエージェントをクエリし、エージェント番号、名前、住所、コミッション金額を表示します
select 代理商编号,姓名,地址,提成金额 from 代理商
where 提成金额 in (select max(提成金额) from 代理商)
番号300の顧客から渡されたエージェントの名前と住所をクエリする
select a.姓名,a.地址 from 客户 b inner join 代理商 a
on a.代理商编号 = b.代理商编号
where b.客户编号 = '300'
顧客番号と製品番号0033の名前を問い合わせます。注文数量は100を超えています
注:ここで言及する注文数量は、合計注文数が0033の製品の数を数えるためのものです。同じ顧客が複数の異なる注文で0033製品を注文した可能性があるためです。
select a.客户编号,a.姓名 from 客户 a inner join 订单 b
on a.客户编号 = b.客户编号
inner join 订货项目 c
on b.订单编号 = c.订单编号
group by a.客户编号,a.姓名,c.产品编号
having sum(c.订购数量)>100 and c.产品编号='0033'
各顧客の注文をクエリし、顧客番号、顧客名、注文番号、注文日を表示する
select a.客户编号,a.姓名,b.订单编号,b.订货日期 from 客户 a
inner join 订单 b on a.客户编号 = b.客户编号
2000年以降(2000を含まない)のすべての注文アイテムを照会し、注文番号、製品番号、注文数量、注文単価のみを表示および表示する
select a.订单编号,a.产品编号,a.订购数量,a.订购单价 from 订货项目 a
inner join 订单 b on a.订单编号 = b.订单编号
where (DATEPART(yy,b.订货日期))>2000
コミッション金額が100,000(100,000を含む)を超えるエージェントに対応する顧客名を照会します
select a.姓名 from 客户 a inner join 代理商 b
on a.代理商编号 = b.代理商编号
where b.提成金额>=100000
注文情報ビューと呼ばれる注文番号、顧客番号、注文のエージェント番号を含むビューを作成します
create view 订单信息视图 as
select b.订单编号,a.客户编号,a.代理商编号 from 客户 a
inner join 订单 b on a.客户编号 = b.客户编号
注文情報ビューから、注文番号111(注文番号、顧客番号、エージェント番号を含む)で製品情報を照会します。
select 订单编号,客户编号,代理商编号 from 订单信息视图
where 订单编号 = '111'
建立一个含有产品编号、产品库存量及产品在订量三个字段的视图,名为产品信息视图
注:① 产品在定量指产品已经累计被订购的数量
② group by 子句可以将查询结果按某一列或多列的值进行分组,但出现在select后面的字段 要么是聚合函数中的,要么是在group by 中的。
create view 产品信息视图 as
select a.产品编号,a.库存量,sum(b.订购数量) as 产品在定量 from 产品 a
inner join 订货项目 b on a.产品编号 = b.产品编号
group by a.产品编号,a.库存量
从产品信息视图中,查询产品在定量大于6100的产品,显示产品编号及产品在定量
select 产品编号,产品在定量 from 产品信息视图
where 产品在定量>6100
建立一个含有客户编号、客户所订的产品编号、该产品的订购单价及该产品的描述四个字段的视图,名为客户订购产品视图
create view 客户订购产品视图 as
select a.客户编号,b.产品编号,b.订购单价,c.描述信息 from 订单 a
inner join 订货项目 b on a.订单编号 = b.订单编号
inner join 产品 c on b.产品编号 = c.产品编号
从客户订购产品视图中,查询所订购的产品的订购单价<=1000的客户编号
select 客户编号 from 客户订购产品视图
where 订购单价 <=1000
group by 客户编号