MySQL 学習ノート - DQL

目次

高度な 1: 基本的なクエリ

1. テーブル内の単一フィールドをクエリします。

2. テーブル内の複数のフィールドをクエリします。

4. 定数値を問い合わせます。

5. クエリ式。

6. クエリ機能。

7. エイリアスを付けます。

8. 重りを取り除きます。

9. +記号の機能

高度な 2: 条件付きクエリ

1. 条件式によるフィルタリング

2. 論理式によるフィルタリング

3. ファジークエリ

1、好き

2、との間

3、で

4、nullです

補足: セキュリティは <=> に等しい


高度な 1: 基本的なクエリ

構文: テーブル名からクエリ リストを選択します。

特徴:

1. クエリ リストには、テーブル内のフィールド、定数値、式、関数を含めることができます。

2. クエリ結果は仮想テーブルです

1. テーブル内の単一フィールドをクエリします。

のように

SELECT 
    last_name 
FROM 
    employees;

検索結果:

2. テーブル内の複数のフィールドをクエリします。

のように:

SELECT 
    last_name,
    salary,
    email 
FROM 
    employees;

検索結果:

3. テーブル内のすべてのフィールドをクエリします。

のように:

SELECT 
    employee_id,
    first_name,
    last_name,
    salay,
    .........
或
SELECT 
    *
FROM 
    employees;

検索結果:

4. 定数値を問い合わせます。

のように:

SELECT 100;

検索結果:

5. クエリ式。

のように:

SELECT 100*98;

検索結果:

6. クエリ機能。

のように:

SELECT version();

検索結果:

7. エイリアスを付けます。

特徴:①わかりやすい、②問い合わせ対象のフィールド名が重複する場合、エイリアスを使用することで区別できる。

方法 1. AS を使用する

のように:

SELECT 100*98 AS 结果;

操作結果:

SELECT 
    last_name AS 姓,
    fist_name AS 名 
FROM 
    employees;

検索結果:

方法 2: スペースを使用する

のように:

SELECT 
    last_name 姓,
    first_name 名 
FROM 
    employees;

検索結果:

ケース: 給与をクエリし、結果を出力として表示する

SELECT 
    salary AS "out put" 
FROM 
    employees;

検索結果:

8. 重りを取り除きます。

ケース: 従業員テーブルに含まれるすべての部門番号をクエリします。

SELECT 
    depatment_id 
FROM 
    employees;

検索結果:

SELECT DISTINCT department_id FROM employees;

検索結果:

9. +記号の機能

Java における + 記号の機能: ① 演算子 (両方のオペランドは数値)、② コネクタ (一方のオペランドが文字列である場合)。

mysql の + 記号には、operator という関数が 1 つだけあります。①両方のオペランドが数値型で加算演算を行う ②一方のオペランドが文字型で文字型の値を数値型に変換しようとし、変換が成功すると加算演算が行われるを続ける; 変換に失敗した場合は文字型の値を数値型に変換し、その値を0に変換する; ③ どちらかがnullである限り、結果は必ずnullになります。

ケース: 従業員の姓名をクエリして 1 つのフィールドに結合し、名前として表示します。

SELECT last_name+first_name AS 姓名 FROM employees;

検索結果:

SELECT CONCAT('a','b','c') AS 结果;

操作結果:

SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;

検索結果:

高度な 2: 条件付きクエリ

/*

文法:

    選択する 

        クエリリスト

    から

        テーブル名

    どこ

        フィルタ条件。

カテゴリ: 1. 条件式によるフィルター 条件演算子: > < = <>(!=) <= >=

2. 論理式によるフィルタリング 論理演算子: && (and) || (or)! (ない)

3. between や in のようなファジークエリは null です

*/

1. 条件式によるフィルタリング

ケース 1: 給与が 12,000 を超える従業員情報をクエリする

SELECT * FROM employees WHERE salary>1200;

検索結果:

ケース 2: 部門番号が 90 に等しくない従業員名と部門番号を照会する

SELECT last_name,department_id FROM employee WHERE department_id<>90;

検索結果:

2. 論理式によるフィルタリング

ケース 1: 給与が 10,000 ~ 20,000 の従業員の名前、給与、ボーナスを照会する

SELECT last_name,department_id FROM employee WHERE department_id<>90;

検索結果:

ケース 2: 部門番号が 90 ~ 110 以外の従業員、または給与が 15,000 を超える従業員情報をクエリする

SELECT last_name,department_id FROM employee WHERE department_id<>90;

検索結果:

3. ファジークエリ

1、好き

特徴: ① 一般的にワイルドカードと併用されます。

ワイルドカード: % (0 文字を含む任意の複数文字); _ (任意の 1 文字)

ケース 1: 名前に文字 a が含まれる従業員の情報をクエリする

SELECT

    *

FROM

    employees

WHERE

    last_name LIKE '%a%';

検索結果:

ケース 2: 3 番目の文字が e、5 番目の文字が a である従業員の名前と給与をクエリします。

SELECT

    last_name,

    salary

FROM

    employees

WHERE

    last_name LIKE '__e_a%';

検索結果:

ケース 3: 2 番目の文字が _ である従業員名をクエリする

SELECT

    last_name

FROM

    employees

WHERE

    last_name LIKE '_\_%';或last_name LIKE '_A_%' ESCAPE 'A';

検索結果:

2、との間

① と の間を使うと文の簡潔さが向上します。

②クリティカル値を含む

③2つの臨界値の順序を変えないでください。

ケース 1: 従業員番号 100 ~ 120 の従業員情報をクエリする

SELECT

    *

FROM

    employees

WHERE

    employee_id BETWEEN 100 AND 120;

検索結果:

3、で

意味: フィールドの値がリスト内の項目に属しているかどうかを判断します。

特徴: ① in を使用して文の簡略化を図る

②リスト内の値の型は一貫しているか、互換性がある必要があります。

ケース: 従業員の職務番号を照会するのは、IT_PROG、AD_VP、AD_PRES の中の従業員名と職務番号です。

SELECT

    last_name,

    job_id

FROM

    employees

WHERE

    job_id IN ('IT_PROG','AD_VP','AD_PRES');

検索結果:

4、nullです

= または <> を使用して null 値を決定することはできません

null であるか null ではないことで、null 値を決定できます

ケース: ボーナスのない従業員の名前とボーナス率をクエリする

SELECT

    last_name,

    commission_pct

FROM

    employees

WHERE

    commission_pct IS NULL;

検索結果:

補足: セキュリティは <=> に等しい

ケース 1: ボーナスのない従業員の名前とボーナス率をクエリする

SELECT

    last_name,

    commission_pct

FROM

    employees

WHERE

    commission_pct <=> NULL;

検索結果:

ケース 2: 給与 12,000 の従業員情報をクエリする

SELECT

    *

FROM

    employees

WHERE

    salary <=> 12000;

検索結果:

null と <=> の違いは

IS NULL: NULL 値のみを判定でき、読みやすくなります。

<=>:NULL値と通常の値の両方を判定でき、可読性が低い。

おすすめ

転載: blog.csdn.net/weixin_45502414/article/details/122899415