MySQLの(4)DQL言語 - 条件お問い合わせ

要約:条件お問い合わせ;条件式、論理式、あいまいクエリなど、ワイルドカードのエスケープ文字は、nullである、に、の間、エスケープキーと、nullではない、と等しく確保。

基準クエリの
構文:

SELECT
クエリリスト
FROM
テーブルのフィルタ基準は、1 2 3 4 5 6 我々は分類によるいくつかの単純なフィルタ条件を行います。








条件式フィルタ
条件演算子:
>:より大きい
<:未満
=に等しい
!=または<>:等しくないです
より大きいか等しい:> =
<=:より小さいか等しいです


クエリの給与は12,000従業員情報よりも大きくなります。
従業員SELECT * FROM WHERE給与> 12000 ;

クエリの部門番号は90人の従業員名と部門番号の数と同じではありません。
SELECT
FIRST_NAME、
DEPARTMENT_ID
FROM
社員
WHERE
DEPARTMENT_ID <> 90;
1
2
3。
4。
5。
6。
7。

押して論理式フィルター
:論理演算子
、論理演算子は、条件式に接続されているが。
&&またはと:と
||またはまたは:または
または:!非ません-


クエリ賃金の従業員名、給与および20,000〜10,000のボーナス率。
SELECT
FIRST_NAME、
給料、
COMMISSION_PCT
FROM
従業員給与が> 10000 &&給与<20000; 1 2 3。4。5。6。7。8。









クエリの部門番号は90から110、従業員情報または15,000よりも高い給料の間ではありません。
SELECT
*
FROM
社員NOT(DEPARTMENT_ID <= 110 AND DEPARTMENT_ID> = 90)OR給与> 15000; 1 2 3。4。5。6。







ファジィクエリ
あいまいクエリは、また、条件式である複雑な条件式として見ることができます。
などの


NULLであるか、nullでありません

私たちは一つ一つを紹介します:

1)などの
ように:意味は「似」です。

一般とワイルドカードを使用しました。
ワイルドカード:
%:文字0を含む任意の文字列。
_:任意の1文字

彼ら自身がワイルドカードであるため、我々は文字としてそれらを使用したいので、我々が使用する文字は「%」または「_」であるならば、我々はエスケープ文字が必要:
\ _:下線
\%を:パーセント
の前でコース必須要件ではない「\」文字をエスケープ、我々はまた、「エスケープ」のキーワードでエスケープ文字をカスタマイズすることができます。これは、以下の私たちの第三の例で見ることができます。

使用例のように
、我々は例を引用し、クエリの従業員情報を従業員名は「A」の文字が含まれています。
SELECT
*
FROM
社員
WHERE
FIRST_NAME LIKE '%%';
1
2
3
4
5。
6。

私たちは、3番目の文字が「E」、5番目の文字は、従業員の従業員の名前と給与の「A」であり、クエリの従業員名を別の例を与えます。
SELECT
FIRST_NAME、
給与
FROM
従業
FIRST_NAME LIKE '__e_a%';
1
2
3。
4。
5。
6。

従業員の名前と給与3番目の例では、従業員の問合せは、** 2番目の文字がアンダースコア「_」の従業員である名前を付けます。**ここでは、上記のエスケープ文字を使用する必要があります。
SELECT
LAST_NAME、
給与
FROM
社員
WHEREが
'_ \ _%を'等をLAST_NAME;
1
2
3。
4。
5。
6。
7。

いくつかの特別なケースでは、我々はまた、エスケープ文字をカスタマイズESCAPEキーワードを使用することができます。上記の例では、我々は書くことができます。
SELECT
LAST_NAME、
給与
FROM
従業員
WHEREが
LIKE '_ $ _%' ESCAPE '$'にLAST_NAME;
1。
2
3。
4。
5。
6。
7。
我々は$のエスケープ文字として定義するように。私たちは、効果は同じである見ることができます。

2)BETWEENと
の間: "何の間"とは

100と120の間でのクエリの従業員情報従業員番号:私たちは例を与えます。
私たちは通常、> = 100 EMPLOYEE_ID AND <= EMPLOYEE_IDここに条件を書く 120。
我々はまたの間で使用することができると、私たちは書くことができるように、間および上記の文と文は、等価です

SELECT
*
FROM
社員
WHERE
EMPLOYEE_ID 100〜120;
1
2
。3
。4
。5
。6
効果は同じで達成することができます。

しかし、我々はいくつかの点に注意を払う必要があります。

間使用大幅簡潔SQL文を向上させることができ、
閾値を含む、例えば、上記の例では、含む100及び120
前面と背面の順序を逆にしません!これは、120と100との間に書かれたので、与えられていない場合に、重要であるが、何の結果は存在しないであろう。
3)における
意味での「......内部インチ」

ここでは、例を与えることもある:従業員の仕事のクエリ数がIT_PROG、AD_VPのいずれかの従業員、従業員名とジョブの数でAD_PRESです。
私たちは、論理演算子を使用するか、のように書くことができます。

= JOB_ID 'IT_PROG' JOB_ID = OR 'AD_VP' JOB_ID = OR 'AD_PRES';
1は、
我々はまた、として書かれたInを使用することができます。

SELECT
LAST_NAME、
JOB_ID
FROM
従業
JOB_ID IN( 'IT_PROG'、 'AD_VP'、 'AD_PRES');
1
2
3。
4。
5。
6。
我々は結果を見て:

私たちは、IN機能を紹介します:

役割で、リストの中のIn項目のフィールドの値かどうかを決定することです。
INは、単純なSQL文の使用を向上させることができます。
リストの値の型は、一貫性のあるまたは互換性がなければなりません。
INリストでワイルドカードをサポートしていません。すべての文字は文字そのものとして扱われます。
4)nullで、ヌルではありません
nullで、nullではない:NULL値かどうかを判断します。

のは、例を挙げてみましょう、私たちは何の賞金と従業員の賞与が従業員ではなかったかどうか確認する必要があります。
この時点で我々は、使用したいnullの場合はnullではありません。

SELECT
LAST_NAME、
COMMISSION_PCT
FROM
従業員COMMISSION_PCTはNULLです。1 2 3 4 5 6 7








だから私は、私たちがCOMMISSION_PCT = NULLを使用することができることを尋ねますか?
答えはノーです。

しかし、またそれは、全体があるNULLであることに注意することはNULL価値があるだけで他人を判断してはいけない、判断するために使用することができます。

追加:等しい確保
最後に、我々は内部でSQLを追加したシンボルが「<=>」である「と等しく保障すること」

したがって、安全性はNULL値に基づいています。
当然の分析はまた、正常値、および「=」同じのために使用すること。
しかし、セキュリティは比較的貧しい可読性があるので、非常に少ないと等しいです。だから、「=」または「NULL IS」普通使用することをお勧めします。

そのようなボーナスがヌルであるかどうかを決定するために、上記の例のように、我々は、条件式を書くことができます。

SELECT
LAST_NAME、
COMMISSION_PCT
FROM
社員COMMISSION_PCT <=> NULL; 1 2 。3 。4 。5 。6 。7 決意上記12,000のクエリ賃金の一例であり、のように書くことができます。









SELECT
*
FROM
従業員の給与<=> 12000; 1 2 3 4 5 6







--------------------- 

おすすめ

転載: www.cnblogs.com/hyhy904/p/10987455.html