- 文字マッチング
次のように文は次のとおりです。
[NOT] LIKE '<匹配串>' [ESCAPE '<换码字符>'];
注:
<一致文字列>は、完全な文字列がワイルドカード%を含有してもよいかもしれ_%(パーセント記号)任意の長さを表す(長さが0であってもよい)、例えば、%のBで始まる文字列は、任意の長さの、Bで終了する文字列を表す
(下線)_は、任意の単一の文字を表します。例えばA_Bが任意の文字列で始まる表し、Bは3の端部の長さ
[実施例3.29]は、学生201 215 121の数の詳細を学ぶクエリ。
SELECT *
FROM Student
WHERE Sno LIKE ‘201215121';
or
SELECT *
FROM Student
WHERE Sno = ' 201215121 ';
文字列マッチングはワイルドカード文字を含む留意する必要があるときは:
- データベース・キャラクタ・セットがASCIIで、文字は_ 2が必要です
- 文字が必要なときにデータベース・キャラクタ・セットが_ GBKです
[例3.30]は、すべての某劉、学生の名前、学生番号、性別を照会します。
SELECT Sname, Sno, Ssex
FROM Student
WHERE Sname LIKE '刘%';
[例3.31]クエリ名「欧陽」と学生の名前の3文字のフルネーム。
SELECT Sname
FROM Student
WHERE Sname LIKE '欧阳_ _';
単語「正」の単語の最初の2人の生徒の名前と学生番号で[例3.32]クエリ名。
SELECT Sname,Sno
FROM Student
WHERE Sname LIKE '_ _阳%';
[例3.33]クエリは、すべての劉、生徒の名前、学生番号、性別を某されていません。
SELECT Sname, Sno, Ssex
FROM Student
WHERE Sname NOT LIKE '刘%';
使用すると、通常の文字としてエスケープワイルドカード文字をエスケープ
- ESCAPEエスケープ文字は「\」の手段「\」
[例3.34]クエリDB_Designコース数とコースのクレジット。
SELECT Cno,Ccredit
FROM Course
WHERE Cname LIKE 'DB\_Design' ESCAPE '\ ' ;
[例3.35]「DB_」で始まるクエリ、コース私の詳細の最初の3文字までのカウントダウン。
SELECT *
FROM Course
WHERE Cname LIKE 'DB\_%i_ _' ESCAPE '\ ' ;
述語:
- IS NULL或はされていないNULL **
- ことができない「=」「IS」の代わりに
[例3.36]は、いくつかの選択科目の後に学生をテストをしていないので、そこに選択科目の記録がありますが、ではないテストの点数をしました。クエリは、生徒の成績や学校の数に対応するコース番号の欠如します。
SELECT Sno,Cno
FROM SC
WHERE Grade IS NULL
[例3.37]は、すべての学生の数とコース数が実りされている確認してください。
SELECT Sno,Cno
FROM SC
WHERE Grade IS NOT NULL;
それは次のように書き換えることができます。
SELECT Sname, Ssex
FROM Student
WHERE Sdept= ' CS' OR Sdept= ' MA' OR Sdept= 'IS ';
論理演算子:ANDとORクエリ条件の複数に接続されています
- AND ORよりも高い優先順位
- あなたは、優先順位のブラケットを変更することができます
[例3.38]コンピュータサイエンスのクエリ学部学生の20歳名歳の時。
SELECT Sname
FROM Student
WHERE Sdept= 'CS' AND Sage<20;
ORDER BY句(ソート)
- 1つ以上の属性の列でソートすることができます
- ASC:ASC;降順:DESC; ASCデフォルト値
ヌル値には、表示の順序は場合順序を決定するために、特定のシステムによって達成されます。
[実施例3.39]クエリ3号選択科目学生は、スコアの降順で番号とその結果、クエリ結果を学びます。
SELECT Sno, Grade
FROM SC
WHERE Cno= ' 3 '
ORDER BY Grade DESC;
年齢によって降順[実施例3.40]クエリすべての学生、クエリ結果行を昇順に配列されている行番号、学生の同じシステムによる。
SELECT *
FROM Student
ORDER BY Sdept, Sage DESC;
集計関数:
- タプルのCOUNT(*)の数を数えます
- COUNTの値の数をカウントします([DISTINCT | ALL]は、<列名>)
- 合計値の合計を計算する([DISTINCT | ALL] <列名>)
- 平均値AVGを計算する([DISTINCT | ALL] <列名>)
- MIN([DISTINCT | ALL] <カラム名> |の最大値と最小値MAX(<列名> [ALL DISTINCT])を探しています
学生[実施例3.41]クエリ総数。
SELECT COUNT(*)
FROM Student;
[例3.42]は、学生のクエリ数はコースに登録しました。
SELECT COUNT(DISTINCT Sno)
FROM SC;
[実施例3.43]計算番号1コースの学生の成績平均点。
SELECT AVG(Grade)
FROM SC
WHERE Cno= ' 1 ';
[例3.44]学生のクエリは最高の選択科目の1号を獲得します。
SELECT MAX(Grade)
FROM SC
WHERE Cno='1';
[例3.45]クエリ201 215 012選択科目の学生は合計スコアを学びます。
SELECT SUM(Ccredit)
FROM SC,Course
WHERE Sno='201215012' AND SC.Cno=Course.Cno;
句のグループBY GROUP:
- オブジェクトの洗練集約関数の役割
- 何のクエリ結果をグループ化する場合は、集約関数は、クエリ全体の結果に適用されません
- クエリパケットの結果の後に、集約関数は、各グループに適用され
- 指定されたグループによって1つ以上の列の値は、値が等しく設定されています
[実施例3.46]様々な選択科目の数と対応する数を求めます。
SELECT Cno,COUNT(Sno)
FROM SC
GROUP BY Cno;
[例3.47]クエリつ以上選択科目学生番号。
SELECT Sno
FROM SC
GROUP BY Sno
HAVING COUNT(*) >3;
90点や学生及び学校の成績平均点のより多くの[実施例3.48]問い合わせ平均スコア
SELECT Sno, AVG(Grade)
FROM SC
GROUP BY Sno
HAVING AVG(Grade)>=90;
なお、
- 、ますます安心してブログやSQLの切り替え退屈なショットを丸め、それでもラインにより符号間ラインの重要性を理解する必要があります