コンピュータ三次データベースの高度なクエリ

1. SOLServer 208 データベースには書籍リスト (書籍番号、書籍名、発行日、単価) があり、「書籍番号はメイン コードです。2015 年 1 月版で単価が最も高い最初の 3 冊の書籍は、確認する. クエリの詳細. 次のクエリステートメントのうち、情報のクエリ要件を正しく完了することができるのはどれですか?

A、SELECT TOP 3 * FROM 图书表
WHERE 出版日期 BETWEEN #2015/1/1# AND #2015/1/31# ORDER BY 单价 DESC
B、SELECT TOP 3 * FROM 图书表
WHERE 出版日期 BETWEEN '2015/1/1’ AND ’2015/1/31' ORDER BY 单价 DESC
C、SELECT* TOP 3 FROM 图书表
WHERE 出版目期 BETWEEN2015/1/1AND2015/1/31'ORDER BY单价DESC
D、SELECT* TOP 3 FROM 图书表
WHERE 出版日期 BETWEEN #2015/1/1# AND #2015/1/31# ORDER BY单价DESC

参考回答はB

分析: C と D の構文形式が正しくありません。TOP 3 を * の前に配置する必要があり、オプション A の日付形式が正しくありません。なので答えはBです。

2. SNSerer 203のデータベースには、商品テーブル(商品番号、商品名、カテゴリ、単価)と販売テーブル(商品番号、販売時期、販売数量)があります。2005年9月に売れなかった携帯電話の商品名と単価を調べたい。次のクエリステートメントのうち、クエリ要件を正しく満たすことができるものはどれですか?

A、SELECT 商品名,单价 FROM 商品表
WHERE 商品号 IN(
	SELECT 商品号 FROM 销售表
	WHERE 销售时间 BETWEEN '2015/9/1' AND '2015/9/30' 
	AND 类别!='手机')
AND 类别='手机'
B、SELECT 商品名,单价 FROM 商品表
JOIN 销售表 ON 商品表.商品号=销售表.商品号
WHERE 销售时间 NOT BETWEEN2015/9/1AND '2015/9/30' 
AND 类别='手机'
C、SELECT 商品名,单价 FROM 商品表 
WHERE 商品号 NOT IN (
	SELECT 商品号 FROM 销售表
	WHERE 销售时间 BETWEEN '2015/9/1’ AND ’2015/9/30' 
	AND 类别='手机')
AND 类别 ='手机'
D、SELECT 商品名,单价 FROM 商品表
JOIN 销售表 ON 商品表.商品号=销售表.商品号 
WHERE 销售时间 BETWEEN '2015/9/1' 
AND '2015/9/30' AND 类别 !='手机'

参考回答はCです

解析: セットベースのテストにサブクエリを使用する場合、演算子 IN および NOT IN を使用して、式の値をサブクエリによって返された結果セットと比較します。その形式は次のとおりです。
WHERE 式 [NOT] IN (サブクエリ)
この形式のサブクエリ ステートメントは段階的に実装されます。つまり、最初にサブクエリが実行され、次にサブクエリの結果に基づいて外部クエリが実行されます。この質問のサブクエリは、2015 年 9 月に販売された携帯電話をクエリし、この範囲に属さない製品名と単価をクエリすることです。というわけで、答えはCです。

3. 車のテーブル (車のモデル、車の名前、色、価格>) はありません。ここで、「車のモデル」がメイン コードです。次に、すべての白と黒の車の名前、色、および価格をクエリします。クエリは次のことができます。次のステートメントで正しく完了する必要があります

A、SELECT 汽车名称,颜色,价格 FROM 汽车表
WHERE 颜色='白色' OR 颜色='黑色'
B、SELECT 汽车名称,颜色,价格 FROM汽车表
WHERE 颜色='白色' AND 颜色='黑色'
C、SELECT 汽车名称,颜色,价格FROM汽车表
WHERE 颜色 LIKE '[白色黑色]'
D、SELECT 汽车名称,颜色,价格FROM汽车表
WHERE 颜色 LIKE '[白色,黑色]'

参考回答はAです

分析: like キーワードは主に文字フィールド用であり、その機能は文字フィールド列の対応する部分文字列を取得することです. オプション C と D は間違っています. And キーワードの両側の条件が満たされた場合にのみ、クエリの結果が返されます. オプション B の機能は、同時に白と黒である車の色をクエリすることです. そのような車はありません. なので答えはAです。

4. 車の販売テーブル (車のモデル、販売時間、販売価格。販売数量) はありません。ここで、(車のモデル、販売時間> はメイン コードです。次に、車のモデルと車の総販売台数を確認します。過去 215 年間で最大の総売上高. 数量 (タイを含む). 次のステートメントのうち、クエリを正しく完了することができるものはどれですか?

A、SELECT TOP 1 WITH TIES 汽车型号,SUM(汽车型号) FROM 汽车销售表 
WHERE 销售时间 BETWEEN '2015/1/1' AND '2015/12/31'
GROUP BY 汽车型号
ORDER BY SUM(汽车型号)DESC
B、SELECT TOP 1 WITH TIES 汽车型号,SUM(销售数量) FROM 汽车销售表 
WHERE 销售时间 BETWEEN '2015/1/1' AND '2015/12/31'
GROUP BY 汽车型号
ORDER BY SUM(销售数量)ASC
C、SELECT TOP 1 WITH TIES 汽车型号,SUM(销售数量) FROM 汽车销售表
WHERE销售时间 BETWEEN '2015/1/1' AND '2015/12/31'
GROUP BY 汽车型号
ORDER BY SUM(销售数量) DESC
D、SELECT TOP 1 WITH TIES 汽车型号,SUM(汽车型号) FROM
汽车销售表 WHERE 销售时间 BETWEEN '2015/1/1' AND '2015/12/31'
GROUP BY 汽车型号
ORDER BY SUM(汽车型号) ASC

参考回答はCです

分析: この質問では、TOP 述語を使用して出力結果を制限します。DESC は降順を意味し、ASC は昇順を意味します。この質問では、販売合計が最も多い車を照会する必要があるため、降順の最初のレコードを照会する必要があります。オプション BD が間違っています。
選択肢Aは車種順、質問の条件を満たさないものは累計販売台数順なので答えはCです。

5. 従業員テーブル (従業員番号、名前、給与、部門) があります。ここで、「従業員番号」はメイン コードです。次に、「基本部門」で最も給与が低い従業員の名前と給与を照会します。 . クエリは、次のステートメントで正しく完了することができます。

A、SELECT 姓名,工资 FROM 员工表
WHERE 工资 INSELECT MIN(工资、FROM 员工表 
	WHERE 所在部门='基础部') 
AND 所在部门='基础部'
B、SELECT 姓名,工资 FROM 员工表
WHERE工资INSELECT MIN(工资、FROM 员工表 
	WHERE所在部门='基础部')
C、SELECT 姓名,工资 FROM 员工表 
WHERE工资IN(
	SELECT MAX(工资、FROM 员工表 
	WHERE 所在部门='基础部')
AND 所在部门='基础部'
D、SELECT 姓名,工资 FROM 员工表
WHERE工资IN(
	SELECT MAX(工资、FROM 员工表 
	WHERE所在部门='基础部')

参考回答はAです

分析: 給与が最も低い従業員を照会するための質問では MIN 関数を使用する必要があるため、オプション CD は間違っています。
オプションBのサブクエリを実行した後、外側のクエリには、部門をベース部門と判断するステートメントがありません。
なので答えはAです。

6. 教師テーブル (教師番号、教師名、役職、性別) があり、「教師番号」が主キーです。「Professor」という肩書を持つ女性教師の数をクエリするには、次のステートメントのどれがクエリを正しく完了することができますか?

A、SELECT COUNT(*) FROM 教师表 WHERE 职称='教授' and 性别='女'
B、SELECT SUM(职称) FROM 教师表 WHERE职称='教授' or 性别='女'
C、SELECT COUNT(职称) FROM教师表WHERE职称='教授' or 性别='女'
D、SELECT SUM(*) FROM 教师表 WHERE 职称='教授' and 性别='女'

参考回答はAです

分析: この問題で調べる知識のポイントは、データ クエリ
B と D は合計であり、問​​題に必要な人数はカウントする必要があるため、B と D は間違っています。
Cの条件は肩書きが教授か性別が女性で、質問は女性の教授が必要で、使うべきなのでCは間違いなので答えはAです。

7. SQL Server でトリガーを定義する次のステートメントがあります:
CREATE TRIGGER tri_1
ON T1 FOR UPDATE
AS...
トリガーの機能に関する次のステートメントは正しいです.
A. テーブルは T1 テーブルに定義されています。データ変更操作によってトリガーされる プレトリガー トリガー
B. ポスト トリガー トリガーは T1 テーブルで定義され、データの追加、削除、および変更操作によってトリガーされます
C. ポスト トリガー トリガーは、T1 テーブルで定義されますデータ変更操作によってトリガーされる T1 テーブル.
D. データの追加、削除、および変更操作によってトリガーされる事前トリガー トリガーが T1 テーブルで定義されている.
参照回答は C

分析: FOR または AFTER オプションで定義されたトリガーは、トリガー後トリガーです。つまり、トリガーが実行される原因となったステートメント内の操作が正常に実行され、すべての制約チェックが完了した後にのみ、トリガーが実行されます。無事に完成しました。INSTEAD OF オプションを使用して定義されたトリガーは、事前にトリガーされるトリガーです。このモードのトリガーでは、トリガーを実行する原因となった SQL ステートメントを実行する代わりに実行するようにトリガーが指定され、トリガーされたアクションが置き換えられます。
ステートメントで指定された操作は update であり、更新操作です。

8. SQL Server インデックスに関する次のステートメントは正しいです
。 A. クラスター化インデックスは 1 つの列にのみ設定できます
B. 唯一のインデックスをクラスター化インデックスにすることはできません
C. クラスター化インデックスのないテーブルに主キーが定義されている場合、システムは自動的にそれに主キーを追加します.
D にクラスタ化インデックスを作成します. テーブルに複数の一意のインデックスを作成することはできません.
参照の答えは Cです.

分析: インデックスを作成するための簡略化された構文は次の
とおり
です
複数の列名が指定された場合、指定された列の複合値に対して複合インデックスが作成されます。
AB エラーは文法から知られています。
一意のインデックスにより、インデックス付きの列に重複する値が含まれないことが保証されます。複数列の一意のインデックスの場合、インデックス付きの列の値の各組み合わせが一意であることが保証されます (D が間違っています)。

9. SQL Server には、
パーティション関数を作成する次のステートメントがありますB. 2 つのパーティションを作成しました。間隔は <=100、>=200 C. 3 つのパーティションを作成しました。間隔は <=100、[101,200]、>200 D. 3 つのパーティションを作成しました。間隔は次のとおりです。 <100, [100,200],>200参考回答はC






分析: パーティション関数を作成するための sql ステートメントは次のとおりです。 CREATE PARTITION
FUNCTION partition_function_name(input_parameter_type)
AS RANGE [LEFT|RIGHT]
FOR VALUES([boundary_value[,…n]])
[;]
この質問のパーティションの境界値はそれぞれ 100 と 200 であり、3 つの間隔、つまり <=100、>=101 および <=200、>200 に分割されます。

10. 「番地」を主キーとする番地表(番地、面積、月額賃料)があります。今回は、面積10~120平米の住宅の中で、月額賃料が最も安い家屋番号と月額賃料を調べてみたいと思います。次のステートメントのうち、クエリ要件を正しく満たしているものはどれですか?

A、SELECT TOP 1 WITH TIES 房屋号,月租金 FROM 房屋表
WHERE 面积 BETWEEN 100 AND 120
ORDER BY 月租金 DESC
B、SELECT 房屋号,月租金 FROM 房屋表
WHERE 月租金=MIN(月租金) AND 面积 BETWEEN 100 AND 120
C、SELECT TOP 1 WITH TIES 房屋号,月租金 FROM 房屋表
WHERE 面积 BETWEEN 100 AND 120
ORDER BY 月租金 ASC
D、SELECT 房屋号,月租金 FROM 房屋表
WHERE 面积 BETWEEN 100 AND 120
AND 月租金 IN (SELECT MIN(月租金) FROM 房屋表)

参考回答はCです

分析: 質問の意味によると、この質問は月額賃料が最も安いものを調べるため、月額賃料を昇順に並べ替え、上位 1 を取得し、面積が 100 ~ 120 平方メートルであることを制限条件とします。
オプション A は降順です。間違っています。
オプション B、集約関数 min は、間違っているか、サブクエリに表示されます。
オプション D、サブクエリはすべてのレントの最小値を返しますが、これは親クエリの 100 から 120 の間の条件に一致せず、空の検索結果になります。
というわけで、答えはCです。

11. 書籍テーブル (書籍番号、タイトル、価格、出版日) があります。書籍番号はメイン コードで、出版日は tcate タイプです。 2018. 次のステートメントは正しい可能性があります クエリを完了するために必要なのは
、 A, SELECT book title, price FROM book table
WHERE publication date BETWEEN 2018-01-01 AND 2018-12-31
B, SELECT book title, price FROM bookテーブル
WHERE 出版日 = 2018
C, SELECT book name, price FROM book table
WHERE 出版日 = '2018'
D, SELECT book title, price FROM book table
WHERE 出版日 BETWEEN '2018-01-01' AND '2018-12- 31分
参考回答はD

分析: SQL 言語では、日付データを英語の単一引用符で囲む必要があります。年を個別に参照する必要がある場合は、年関数 year( ) を呼び出して日付データを計算する必要があります。
したがって、この質問の答えは D です。

12. ある SULServer 200S データベースに販売テーブル (書籍番号、販売日、販売数量) があり、メイン コードは (書籍番号、販売日) です。ここで、累積販売数が最も多い本の総販売数をクエリします。次のステートメントは、クエリ要件を正しく完了することができます
。 A, SELECT MAX (販売数量) FROM 販売テーブル
ORDER BY 販売数量 DESC
B, SELECT TOP 1 COUNT (販売数量) FROM 販売テーブル
GROUP BY 書籍
番号 ORDER BY COUNT (販売数量) DESC
C, SELECT TOP 1 SUM (販売数) FROM sales table
GROUP BY book
number ORDER BY SUM (販売数) DESC
D, SELECT MAX (販売数) FROM sales table
GROUP BY book number
参考回答はC

分析: 販売数を累積するには、sum 関数を使用する必要があります。せいぜい、order by phrase desc を使用して降順に並べ替え、結果セットを上位 1 に制限する必要があります。

13. 従業員テーブル (従業員番号、名前、年齢、部門) があり、「従業員番号」がメイン コードです。ここで、部門の数が最も多い部門を照会します。次のステートメントで、クエリを正しく完了することができるのは、
A、SELECT TOP 1 WITH TIES 部門 FROM 従業員テーブル
GROUP BY 部門
ORDER BY COUNT(*)DESC
B、SELECT TOP 1 部門 FROM 従業員テーブル
GROUP BY 部門
ORDER BY SUM (従業員番号) DESC
C, SELECT MAX (従業員番号) FROM 従業員テーブル
GROUP BY 部門
D, SELECT MAX (従業員番号) FROM 従業員テーブル
ORDER BY 部門
参照回答は A

分析: オプション C と D は、group by 句と order by 句を考慮せずに決定でき、タイトルに必要な部門番号の代わりに最大の従業員番号を持つ従業員が表示されます。
選択肢Aは「同点数が多い」の存在を考慮するだけでなく、レコード数の降順でも問題ありません。
したがって、この質問の答えは A です。

14. ハウステーブル(ハウスナンバー、住所、部屋数、月額賃料)があり、「ハウスナンバー」がメインコードです。ここで、2 ベッドルームの中で月額賃料が最も低い 3 つの家屋の番地と月額賃料をクエリしたいと考えています。次のステートメントはクエリ要件を正しく完了することができます
2 ORDER BY MONTHRY RENT DESC C, SELECT TOP 3 house number, MONTHLY RENT FROM house table WHERE room number = 2部屋番号で注文 ASC D, SELECT TOP 3 house number, 毎月の家賃 FROM house table WHERE room number = 2 ORDER BY room番号 DESC参照の答えは A











分析:具体的な操作は、タイトルの説明から分析できます.検索条件は「2ベッドルーム」で、毎月の家賃が昇順でソートされ、最初の3つのレコードが取得されます.

おすすめ

転載: blog.csdn.net/Redamancy06/article/details/127030562