MySQL でのテーブルの追加、削除、変更、クエリ

目次

1.クラッド

2.追加(作成)        

(1) 文法

(2) 単一行のデータ + 全列挿入

(3) 複数行データ+指定列挿入

3. 取得

(1) 文法

(2) フルカラムクエリ

(3) カラムクエリの指定

(4) クエリフィールドは式です

        1. 式にはフィールドが含まれません。

        2. 式にはフィールドが含まれています

       テーブル構造は次のとおりです。

        3. 式には複数のフィールドが含まれています

(5) 別名

(6) 重複排除: DISTINCT        

(7) 並べ替え:ORDER BY

1. 文法:

2. 昇順

3. 降順

4. 式とエイリアスを使用して並べ替える

5. 複数の優先順位でソート可能 ソート優先順位は書き込み順に従います。

(8) 条件付きクエリ: WHERE

 1. 比較演算子

2. 論理演算子

3. 基本的なクエリ:

4、および和OR:

5. 範囲クエリ

        (1) ...との間

        (2)IN

6. ファジークエリ: LIKE

7. NULL クエリ: IS [NOT] NULL        

8. ページングクエリ: LIMIT

4. 修正(アップデート)

場合:

-- 孫悟空の数学の点数を 80 点に変更します。

-- 曹孟徳の数学のスコアを 60 点に、中国語のスコアを 70 点に変更します。

-- 合計スコアが最も低い 3 人の生徒の数学スコアに 30 ポイントを追加します。

-- 全生徒の中国語スコアを元の値の 2 倍に更新します

5. 削除

場合:

--孫悟空のテストスコアを削除

-- テーブルデータ全体を削除します

6. 主要な内容の概要

新規編集

クエリ編集

変更編集

削除編集

皆さんもこれを見たことがあるでしょう、親指を立てて立ち去ってください、ありがとう、ありがとう! ! !


1.クラッド

注: SQL では「--space + description」を使用して、コメント
CRUD、つまり追加 (作成)、クエリ (取得)、更新 (更新) を示すことができます。 、および削除 (削除)4 単語頭字語
 


2.追加(作成)        

既存のテーブル構造とテーブルデータ:

(1) 文法

INSERT [INTO] table_name
[(column [, column] ...)]
VALUES (value_list) [, (値リスト)] ...
値リスト: 値, [, 値] ...

 

(2) 単一行のデータ + 全列挿入

構文:テーブル名の値に挿入(挿入するデータ, ...)

注: 挿入されるデータの順序はテーブル構造と同じである必要があります。そうでない場合、挿入は失敗します。

コード表示:

insert into books values('数学', '张三', 6.66, '数学类');
insert into books values('英语', '李四', 8.88, NULL);

結果は次のとおりです。

(3) 複数行データ+指定列挿入

構文:テーブル名 (指定された列名、...) に挿入 値 (指定された列名のデータ)

コード表示

insert into books (name, price, sort) values('语文', 5.55, '语文类'), ('物理', 7.77, '物理类');

結果は次のとおりです。


3. 取得

(1) 文法

SELECT
[DISTINCT] {* | {column [, columns] ...}
[FROM table_name]
[WHERE ...]
[ORDER BY]列 [ASC | DESC]、...]
LIMIT ...

 

(2) フルカラムクエリ

注:選択クエリ操作はすべて一時テーブルであり、元のデータは変更されません

構文:テーブル名から * を選択

コード表示:

select * from books;

結果は次のとおりです。

注: 通常の状況では列全体のクエリに * を使用することはお勧めできません
-- 1. クエリ カラム数が多いほど、送信する必要のあるデータ量が増加します (処理する必要がある情報が多すぎるため、サーバーが詰まる可能性があります。大量のハードディスク IO とネットワーク IO がいっぱいになる可能性があります)ハードディスクまたはネットワーク カードの帯域幅です。帯域幅がいっぱいになると、サーバーは他のクライアントのリクエストに正常に応答できなくなります。他のクライアントから見ると、サーバーはその帯域幅を超えていると見なされます。ダウンしています)
-- 2. < a i=5>インデックスの使用に影響する可能性があります

(3) カラムクエリの指定

構文:テーブル名から指定された列名を選択します

コード表示:

select name, author, price from books;

結果は次のとおりです。

注: 図に示すように、指定された列クエリは、このテーブルの列順序に従ってクエリすることはできません。

(4) クエリフィールドは式です

        1. 式にはフィールドが含まれません。

構文:書籍から式を選択

コードデモ:

 select name, price, 10 from books;

結果は次のとおりです

10 がないため、フィールド 10 が作成され、その下に 10 が配置されます。

        2. 式にはフィールドが含まれています

構文:テーブル名から 1 つのフィールドを含む式を選択します。

コードデモ:

select name, author, price + 10 from books;

結果は次のとおりです。

       テーブル構造は次のとおりです。

        3. 式には複数のフィールドが含まれています

構文:テーブル名から複数のフィールドを含む式を選択します...

整数データ コードのデモ:

 select name, chinese + math + english from report;

結果は次のとおりです。

整数データ コードのデモではありません。

select price, name + author + sort from books;

結果は次のとおりです。

ご覧のとおり、式には複数行のフィールドが含まれており、NULL がある限り NULL となり、文字列の合計は 0 になります。

(5) 別名

構文:レポートのエイリアスとして列名を選択

注(省略可能ですが、追加した方が区別しやすくなります)

コードデモ:

 select id, chinese + math + english as 总分 from report;

結果は次のとおりです。

(6) 重複排除: DISTINCT        

既存のテーブル:

構文:テーブル名から個別の列名を選択します

コード表示:

 select distinct math from exam_result;

結果は次のとおりです。

(7) 並べ替え:ORDER BY

1. 文法:

--ASC は昇順 (小さいものから大きいものへ)
--DESC は降順 (大きいものから小さいものへ)
--デフォルトは ASC
SELECT ... FROM table_name [WHERE ...]
ORDER BY カラム [ASC|DESC], [...];

 

2. 昇順

構文:select * ( または他の列名も使用できます) テーブル名から列名順

コード表示:

 select * from exam_result order by math;

結果は次のとおりです。

3. 降順

構文:select * ( または他の列名も使用できます) 列名によるテーブル名の順序から desc

コード表示:

select * from exam_result order by math desc;

結果は次のとおりです。

4. 式とエイリアスを使用して並べ替える

構文:テーブル名から列名、式を式順に選択します。

コード表示:

 select name, math + chinese + english as total from exam_result order by math + chinese + english;

結果は次のとおりです。

知らせ:

ここでは、注文後にエイリアスを使用できます

5. 複数の優先順位でソート可能 ソート優先順位は書き込み順に従います。

構文:クエリする列を選択します。exam_result 列名順、列名...;

コードデモ:

 select * from exam_result order by math, english;

結果は次のとおりです。

(8) 条件付きクエリ: WHERE

注:条件では式を使用できますが、エイリアスは使用できません

 1. 比較演算子

2. 論理演算子

注: 1。AND は OR よりも優先されます。同時に使用する場合は、最初に実行される部分を括弧 () で囲む必要があります。あ>

           2.WHERE 条件では式 () を使用できますが、エイリアスは使用できません< a i= 4>。

図に示すように:

                SQL ステートメントの実行順序:

                ステップ 1: レコードを取り出す (テーブルを横断する)

                ステップ 2: レコードを条件に組み込み、条件が満たされているかどうかを判断する

                ステップ 3: 条件が満たされた場合、select で指定された列を取り出し、いくつかの式操作を実行します

したがって、条件付きクエリの where の後にエイリアスを使用することはできません。

3. 基本的なクエリ:

英語のスコアが 70 点を超える生徒にクエリを実行します。

コードは以下のように表示されます:

 select name, english from exam_result where english > 70;

結果は次のとおりです。

英語のスコアが中国語のスコアより高い学生をチェックします。

コードは以下のように表示されます:

 select name, english, chinese from exam_result where english > chinese;

結果は次のとおりです。

合計スコアが 200 未満の生徒にクエリを実行します。

コードは以下のように表示されます:

 select name, chinese + math + english from exam_result where (chinese + math + english) < 200;

結果は次のとおりです。

4、および和OR:

中国語のスコアが 80 点を超え、英語のスコアが 80 点を超える学生に質問します。

コードは以下のように表示されます:

select name, chinese, english from exam_result where (chinese > 80) and (english > 80);

結果は次のとおりです。

中国語のスコアが 80 点を超える、または英語のスコアが 80 点を超える学生を検索します

コードは以下のように表示されます:

 select name, chinese, english from exam_result where (chinese > 80) or (english > 80);

結果は次のとおりです。

注:and は or よりも優先されます。使用する場合は、必要に応じて括弧を使用できます。

5. 範囲クエリ

        (1) ...との間

        コード表示:

select * from exam_result where chinese between 80 and 90;

        結果の表示:


     これは、 と を使用して実現することもできます。

コード:

 select * from exam_result where chinese >= 80 and chinese <= 90;

        (2)IN

コードは以下のように表示されます:

 select name, math from exam_result where math in(58, 59, 98, 99);

結果の表示:

ここで または を使用することもできます

コード:

select name, math from exam_result where math = 58 or math = 59 or math = 98 or math = 99;

6. ファジークエリ: LIKE

        アウトアウトアウトどれからも


コード表示:

 select name from exam_result where name like '孙%';

結果は次のとおりです。

コード表示:

 select name from exam_result where name like '孙_';

結果は次のとおりです。

注:% は次のように使用することもできます: %Sun (「Sun」で終わるフィールド)、%Sun% (フィールドに「Sun」が含まれている場合)

        _次のようにも使用できます: _Sun、先頭に 1 文字だけ、最後に「Sun」があるフィールドですが、複数のアンダースコア _ も使用できます。

7. NULL クエリ: IS [NOT] NULL        

テーブル内の列が NULL かどうかを判断します。

コードは以下のように表示されます:

select name from exam_result where name is not null;

結果は次のとおりです。

コードは以下のように表示されます:

select name from exam_result where name is NULL;

結果は次のとおりです。

8. ページングクエリ: LIMIT

構文:
-- 開始インデックスは 0 です
-- 0 から開始して、n 個の結果をフィルタリングします
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- s から開始して、n 個の結果をフィルタリングします
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- s から開始して、n 個の結果をフィルタリングします。2 番目の使用法よりも明確な、
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;
 

0 から開始して 3 つの結果をフィルタリングします

コード表示:

select * from exam_result limit 3;

結果は次のとおりです。

0 から開始して、3 つのレコードをフィルターし、ID で順番にページ分割します。

コード表示:

select * from exam_result limit 3;

結果は次のとおりです。

3 から開始して、3 つのレコードをフィルターし、ID で順番にページ分割します。

コード表示:

 select * from exam_result order by id limit 3 offset 3;

結果は次のとおりです。


4. 修正(アップデート)
 

文法:

UPDATE table_name SET 列 = expr [, 列 = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]

 

場合:
 

-- 孫悟空の数学の点数を 80 点に変更します。

文法:

update table name set 変更する列名 = 変更する値 ここで、列名 = 変更するように指定する列の値

コードは以下のように表示されます:

mysql> update exam_result set math = 80 where name = '孙悟空';

結果は次のとおりです。

-- 曹孟徳の数学のスコアを 60 点に、中国語のスコアを 70 点に変更します。

コードは以下のように表示されます:

 update exam_result set math = 60, chinese = 70 where name = '曹孟德';

結果は次のとおりです。


-- 合計スコアが最も低い 3 人の生徒の数学スコアに 30 ポイントを追加します。

コードは以下のように表示されます:

結果は次のとおりです。


-- 全生徒の中国語スコアを元の値の 2 倍に更新します

コードは以下のように表示されます:

 update exam_result set chinese = chinese * 2;

結果は次のとおりです。


5. 削除

文法:

DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
 

場合:
 

--孫悟空のテストスコアを削除

コードは以下のように表示されます:

delete from exam_result where name = '孙悟空';

結果は次のとおりです。


-- テーブルデータ全体を削除します

次のようにテーブルを準備します。

コードは以下のように表示されます:

 delete from for_delete;

結果は次のとおりです。


6. 主要な内容の概要

新しい

お問い合わせ

改訂

消去


皆さんもこれを見たことがあるでしょう、親指を立てて立ち去ってください、ありがとう、ありがとう! ! !

おすすめ

転載: blog.csdn.net/cool_tao6/article/details/134148942