SQL の基本的なステートメントといくつかの複雑な SQL クエリ ステートメント


序文

SQL (Structured Query Language) は、リレーショナル データベースの管理に使用される標準言語です。これにより、ユーザーはデータベースからデータを取得、挿入、更新、削除できます。このブログでは、私が勉強中にメモした基本的な SQL ステートメントと複雑なクエリ ステートメントをいくつか紹介します。


1. データベースの基本動作言語

データベースの作成: データベース名を作成します。

ライブラリが存在するかどうか、存在しない場合は作成します。存在しない場合はデータベースを作成します。

すべてのデータベースを表示: データベースを表示します。

データベースの定義情報を表示します。 show create database name;

データベースの文字情報を変更します: alter database namecharacter set utf8;

データベースの削除: データベース名を削除します。
上記はすべてデータ定義言語です。

2. データテーブルの基本操作言語

最初にデータ テーブルを作成します。

cretate  table  student(

id  int,

name  varchar,

sex  varchar,

age  int,

address varchar);

ビューテーブル構造: desc テーブル名

テーブルを作成する SQL ステートメントを表示します: show create table テーブル名

テーブル名を変更します: alter table table name rename to new table name

列を追加します:テーブル テーブル名を変更します 列名のデータ型を追加します

列の削除: テーブルの変更 テーブル名 列名を削除

テーブルを削除します: テーブル テーブル名を削除するか、テーブルが存在する場合はテーブル名を削除します

上記はすべてデータ定義言語です

3. 追加、削除、変更

1.増加

完全な列名と属性を書き込みます: テーブル名 (列 1、列 2...) に値 (値 1、値 2) を挿入します。

すべての列を追加: テーブル名の値 (値 1、値 2) に挿入します。

部分的な列: テーブル名 (列 1、列 2...) に値 (値 1、値 2) を挿入します。

2. 削除

テーブル内のデータを削除: 列名 = 値のテーブル名から削除

すべてのデータを削除: テーブル名から削除

すべてのデータを削除します (最初にテーブルを削除してから、新しいテーブルを作成します): テーブル テーブル名を切り詰めます

3. 変更

属性を変更します: テーブル名を更新し、列名 = 値を設定します。

条件変更: テーブル名を更新 set カラム名 = 値 where カラム名 = 値

上記はデータ操作言語です

4. お問い合わせ

次に、SQL ステートメントであるクエリ ステートメントに焦点を当てます。
一般的なクエリ構造は次のとおりです。テーブル名から列 1、列 2... を選択します。条件は次のとおりです。

1. 基本的なキーワード

**between…and: between what**
例: Query 5 以上、10 以下
select * from Student where age between 5 and 10; (同じことが、>、<、= などの記号にも当てはまります) 、&&)

IN コレクションの例: クエリselect * from students where age in(4,5,6) for
age=4,5,or 6

is not null is not null.
例: Query address is not null
select * from students where address is not null

ファジークエリのように
X で始まります: 'X%' のように
2 番目の単語が X: '_X%'
のように 1 つの単語です: '_%' に
X が含まれます: '%X%' のように

2. 並べ替えクエリ

特に desc を追加しない場合、デフォルトは昇順です。

構文:最後にorder by句を追加(フィールド1、フィールド2) 条件2は条件1が同じ場合のみ判定

例: データの順序からバンバー降順で * を選択

3. 集計機能 (属性の列を全体として取得し、垂直方向の計算を実行します)

COUNT: 列内の null 以外の値の数をカウントします。
例: SELECT COUNT(*) FROMemployees;
これは、「employees」テーブルの行数を返します。

SUM: 列の値の合計を計算します
例: SELECT SUM(salary) FROMemployees;
これは、「employees」テーブル内のすべての従業員の給与の合計を返します。

AVG: 列の平均値を計算します
例: SELECT AVG(age) FROMemployees;
これは、「employees」テーブル内の全従業員の平均年齢を返します。

MIN: 列値の最小値を取得する
例: SELECT MIN(salary) FROMemployees;
これは、「employees」テーブル内の最も給与の低い従業員の給与を返します。

MAX: 列値の最大値を取得する
例: SELECT MAX(salary) FROMemployees;
これは、「employees」テーブル内の最も給与の高い従業員の給与を返します。

4. グループクエリ

構文: <条件> を持つグループ化フィールドでグループ化;
例: SELECT 部門、AVG(給与) FROM 従業員 GROUP BY 部門;
これにより、部門ごとにグループ化された平均給与が返されます。

5. ページングクエリ

構文: 開始インデックスの制限、ページごとのクエリ数
例: 例: SELECT * FROMemployees LIMIT 10;
これにより、「employees」テーブルのレコードの最初の 10 行が返されます。

6、場合

CASE WHEN ステートメントは、データに対して条件付き操作を実行し、条件に基づいて値を返すために使用されます。その一般的な構文は次のとおりです。

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE result
END

例: SELECT name,
CASE WHEN age <= 18 THEN '未成年'
WHEN age > 18 AND age <= 30 THEN '若者'
ELSE '成人'
END AS age_group
FROM Customers;
これにより、顧客名と顧客を含むリストが返されます。年齢別にグループ化された列。

7. 条項クエリ

サブクエリは、メイン クエリ (外部クエリ) にネストされたクエリ ステートメントを指します。

列値としてのサブクエリ:
例: SELECT name, (SELECT MAX(salary) FROMemployees) A​​S max_salary FROMemployees;
これにより、「employees」テーブル内の各従業員の名前と、そのテーブル内の最高給与が追加の列として返されます。

WHERE 句の条件としてのサブクエリ:
例: SELECT name, age FROMemployees WHERE age > (SELECT AVG(age) FROMemployees);
これは、「employees」テーブル内の従業員の年齢よりも古い従業員の名前と年齢を返します。平均年齢。

FROM 句のテーブルとしてのサブクエリ:
例: SELECT 部門, COUNT(*) FROM (SELECT * FROM 従業員 WHERE 給与 > 5000) AS high_paid GROUP BY 部門;
これにより、「従業員」に 5000 を超える給与を持つ従業員が返されます。表 、部門ごとにグループ化し、各部門の従業員の数を数えます。

EXISTS サブクエリ:
例: SELECT name FROM 従業員 WHERE EXISTS (SELECT * FROM 注文 WHERE 注文.employee_id = 従業員.id);
これは、「従業員」テーブルで注文を関連付けている従業員の名前を返します。

IN サブクエリ:
例: SELECT name FROMemployees WHERE id IN (SELECTemployee_id FROMorders);
これは、「orders」テーブルに表示される従業員 ID に対応する従業員名を返します。

言及されていないさらに複雑な SQL クエリ文がたくさんあるので、後で学習してから作成します。

おすすめ

転載: blog.csdn.net/a545__27/article/details/132099270