MySQL テーブルの追加、削除、変更、クエリの基本チュートリアル

MySQL テーブルの追加、削除、変更、クエリの基本チュートリアル

1. 作成する

[テーブル名] (フィールド1、フィールド2、...) 値 (値1、値2、...) に挿入します。

[テーブル名] (フィールド 1、フィールド 2、...) の値を挿入します
(値1, ...),
(値2, ...),
(値3, ...);

例:

生徒の成績表を作成する

テーブルexam_resultを作成する(
 id INT、
 名前 VARCHAR(20)、
 中国語の10進数(3,1)、
 数学 DECIMAL(3,1)、
 英語 DECIMAL(3,1)
);

1.1 単一行データ + 全列挿入

-- 2 つのレコードを挿入します。value_list の数は、定義テーブルの列の数と順序と一致している必要があります。 insert into exam_result value (1, 'tom', 68, 98, 56); 
exam_result に値 ( 2, 'jum', 87.5, 78, 77 ) を挿入します。 

データが挿入されるたびに、いくつかの列を含むレコードになります~~

列の数とデータ型は、テーブルの構造に対応している必要があります。

指定された列が値の前に省略されている場合、デフォルトで列全体が挿入されます。

1.2 複数行のデータ + 指定された列

- 2 つのレコードを挿入します。value_list の数は、指定された列の数と順序と一致している必要があります。INSERT INTO exam_result (id,name, chinese, math, english) VALUES
 (1,'トム', 67, 98, 56),
 (2,'jum', 87.5, 78, 77)、
 (3,'lim', 88, 98.5, 90),
 (4,'ティム', 82, 84, 67),
 (5,'huy', 55.5, 85, 45),
 (6、'太陽'、70、73、78.5)、
 (7、'ming'、75、65、30);

2. 取得

2.1 全列クエリ

[テーブル名]から*を選択します。

*はワイルドカードを表し、すべての列を検索することを意味します

2.2 指定した列によるクエリ

[テーブル名]から[クエリ列を指定]を選択します。

2.3 クエリフィールドを式として使う

[テーブル名]から[フィールド式]を選択します。

2.4 エイリアス

select colum [as] [列名] from [テーブル名];

2.5 重複排除: DISTINCT

列から重複データを削除するには、distinctキーワードを使用します。

--98 ポイントを繰り返しました。exam_result から数学を選択します。
+------+
|数学|
+------+
| 98.0 |
| 78.0 |
| 98.0 |
| 84.0 |
| 85.0 |
| 73.0 |
| 65.0 |
+------+

-- 重複した結果を削除します。 select distinctive math from exam_result;
+------+
|数学|
+------+
| 98.0 |
| 78.0 |
| 84.0 |
| 85.0 |
| 73.0 |
| 65.0 |
+------+

2.6 ソート: ORDER BY

select * from [テーブル名] order by [ソートフィールド];

並べ替えの基準となる列を指定するには order by を使用します。デフォルトの並べ替えは昇順です。

desc を明示的に追加すると、降順で並べ替えられます。asc を使用すると、昇順で並べ替えられます。

select name, math from exam_result order by math desc;
+------+------+
| 名前 | 数学 |
+------+------+
| トム | 98.0 |
| 限界 | 98.0 |
| フイ | 85.0 |
| ティム | 84.0 |
| ジャンプ | 78.0 |
| 太陽 | 73.0 |
| 明 | 65.0 |
+------+------+

NULLデータはどの値よりも小さいものとしてソートされ、昇順では一番上に、降順では一番下に表示されます。

複数の列を指定して並べ替えることもできます

exam_result から * を選択し、数学 desc、中国語 desc で順序付けします。
+------+------+--------+-------+---------+
| ID | 名前 | 中国語 | 数学 | 英語 |
+------+------+--------+-------+---------+
| 3 | 限界 | 88.0 | 98.0 | 90.0 |
| 1 | トム | 67.0 | 98.0 | 56.0 |
| 5 | ヒュイ | 55.5 | 85.0 | 45.0 |
| 4 | ティム | 82.0 | 84.0 | 67.0 |
| 2 | ジャンプ | 87.5 | 78.0 | 77.0 |
| 6 | 太陽 | 70.0 | 73.0 | 78.5 |
| 7 | 明 | 75.0 | 65.0 | 30.0 |
+------+------+--------+-------+---------+

複数の列を並べ替える場合、最初の列でサイズを区別できない場合は、2 番目の列で並べ替えます。

2.7 条件付きクエリ: WHERE

比較演算子

オペレーター例示する
>、>=、<、<=より大きい、以上、より小さい、以下
=等しい、NULLは安全ではない。例えば、NULL = NULLの結果はNULLである。
<=>等しい、NULL安全、例えばNULL <=> NULLはTRUE(1)
!=, <>等しくない
a0とa1の間範囲マッチング[a0, a1]、a0 <= value <= a1の場合、TRUEを返します(1)
IN (オプション、…)いずれかのオプションに該当する場合はTRUEを返します(1)
NULLですNULLです
NULLではないNULLではない
のようにあいまい一致。 % は任意の文字(0を含む)を表します。_ は任意の文字を表します。

論理演算子:

オペレーター例示する
そして結果がTRUE(1)となるためには、複数の条件がすべてTRUE(1)でなければなりません。
または条件のいずれかがTRUE(1)の場合、結果はTRUE(1)になります。
ない条件はTRUE(1)で結果はFALSE(0)です

知らせ:

  • where~~ では列エイリアスは使用できません
  • AND は OR よりも優先度が高くなります。 一緒に使用する場合は、優先度部分を囲む括弧 () が必要です。

例:

基本的なクエリ:

-- 英語で不合格になった生徒とその英語スコア(< 60)を照会します
exam_result から、english < 60 の name、english を選択します。

-- 中国語のスコアが英語のスコアよりも優れている学生を照会します。 select name, chinese, english from exam_result where chinese > english;

-- 合計スコアが 200 未満の学生を照会します。 select name, chinese + math + english as total from exam_result where chinese + math + english < 200;

AND と OR:

-- 中国語のスコアが 80 を超え、英語のスコアも 80 を超える学生を照会します。select * from exam_result where chinese > 80 and english > 80;

-- 中国語のスコアが 80 点を超える、または英語のスコアが 80 点を超える学生を照会します。select * from exam_result where chinese > 80 or english > 80;

優先順位の問題に関しては、またはが優先されます。

範囲クエリ:

1.…と…の間

-- 中国語のスコアが [80, 90] の間の学生とその中国語のスコアを照会します。select name, chinese from exam_result where chinese BETWEEN 80 AND 90;

中国語 >= 80 かつ中国語 <= 90 の場合、exam_result から名前、中国語を選択します。

 -- 数学のスコアが 58、59、98、または 99 の生徒とその数学のスコアを照会します。select name, math from exam_result where math in (58, 59, 98, 99);

あいまいクエリ: LIKE

exam_result から name を選択します (name は 't%' のような名前です)。
+------+
| 名前 |
+------+
| トム |
| ティム |
+------+

% は、任意の数の文字を置き換えるために使用できるワイルドカード文字です。

t% tで始まる文字列を検索

%t は t で終わる文字列を検索します

%t% は t を含む単語を検索します

% の他に _ もあります (_ は 1 文字しか表せません~)

exam_result から名前を選択します。名前は 't__' のような名前です。
+------+
| 名前 |
+------+
| トム |
| ティム |
+------+

ワイルドカードは数字のあいまい検索にも使用できます

exam_result から、 '%8%' のような chinese を含む name、 chinese を選択します。
+------+---------+
| 名前 | 中国語 |
+------+---------+
| ジャンプ | 87.5 |
| 限界 | 88.0 |
| ティム | 82.0 |
+------+---------+

知らせ:

ファジークエリはより便利に思えるが、実際の実行効率は低い

NULLクエリ: IS [NOT] NULL

 ID が null でない exam_result から名前を選択します。

2.8 ページ分割クエリ: LIMIT

-- 初期データテーブル select * from exam_result;
+------+------+--------+-------+---------+
| ID | 名前 | 中国語 | 数学 | 英語 |
+------+------+--------+-------+---------+
| 1 | トム | 67.0 | 98.0 | 56.0 |
| 2 | ジャンプ | 87.5 | 78.0 | 77.0 |
| 3 | 限界 | 88.0 | 98.0 | 90.0 |
| 4 | ティム | 82.0 | 84.0 | 67.0 |
| 5 | ヒュイ | 55.5 | 85.0 | 45.0 |
| 6 | 太陽 | 70.0 | 73.0 | 78.5 |
| 7 | 明 | 75.0 | 65.0 | 30.0 |
+------+------+--------+-------+---------+

-- 最初の 3 つのレコードは、exam_result limit 3 から * を選択します。
+------+------+--------+-------+---------+
| ID | 名前 | 中国語 | 数学 | 英語 |
+------+------+--------+-------+---------+
| 1 | トム | 67.0 | 98.0 | 56.0 |
| 2 | ジャンプ | 87.5 | 78.0 | 77.0 |
| 3 | 限界 | 88.0 | 98.0 | 90.0 |
+------+------+--------+-------+---------+

-- 3 番目から始まる 3 つのレコード select * from exam_result limit 3 offset 3;
+------+------+--------+-------+---------+
| ID | 名前 | 中国語 | 数学 | 英語 |
+------+------+--------+-------+---------+
| 4 | ティム | 82.0 | 84.0 | 67.0 |
| 5 | ヒュイ | 55.5 | 85.0 | 45.0 |
| 6 | 太陽 | 70.0 | 73.0 | 78.5 |
+------+------+--------+-------+---------+

オフセットは検索を開始するエントリの数を示します。オフセットは省略できます。

exam_result 制限 3、4 から * を選択します。
+------+------+--------+-------+---------+
| ID | 名前 | 中国語 | 数学 | 英語 |
+------+------+--------+-------+---------+
| 4 | ティム | 82.0 | 84.0 | 67.0 |
| 5 | ヒュイ | 55.5 | 85.0 | 45.0 |
| 6 | 太陽 | 70.0 | 73.0 | 78.5 |
| 7 | 明 | 75.0 | 65.0 | 30.0 |
+------+------+--------+-------+---------+

3. 更新

- 下位3名の生徒の数学の点数に合計30点を加算する

exam_result を更新し、math を math + 30 に設定し、chinese + math + english で order by を limit 3 に設定します。

条件を追加せずに更新すると、すべてに適用できます

4. 削除

[テーブル名]から削除します。
-- Ming のテストスコアを削除します。delete from exam_result where name = 'ming';

-- テーブル全体を削除します。delete from exam_result;

条件が指定されていない場合は、テーブル全体が削除されます (drop コマンドとは異なります)。

削除後、テーブルは null になり、ドロップ後、テーブルは存在しません。

5. よく追加されるもの

-- 単一行挿入 insert into [テーブル名] (フィールド 1、...、フィールド N) values ​​(値 1、...、値 N);
-- [テーブル名](フィールド 1、...、フィールド N) の値を挿入します
(値1, ...),
(値2, ...),
(値3, ...);

クエリ

--完全なテーブルクエリ select * from [テーブル名];
--列クエリを指定します。select [列名 1, 列名 2,...] from [テーブル名];
--クエリ式フィールド select [式 1, 式 2,...] from [テーブル名];
--alias 選択 
 - 明確な
[テーブル名]から[フィールド]を区別して選択します。
-- 並べ替え ORDER BY
select * from [テーブル名] order by [ソートフィールド];
-- 条件付きクエリ WHERE
-- (1) 比較演算子 (2) BETWEEN ... AND ... (3) IN (4) IS NULL (5) LIKE (6) AND (7) OR 
(8) いいえ
select * from [テーブル名] where [条件];

改訂

update [テーブル] set [変更内容1、変更内容2、....] where [条件];

消去

delete from [テーブル名] where [条件];

要約する

これで、MySQL テーブルの追加、削除、変更、クエリに関するこの記事は終了です。より関連性の高い MySQL テーブルの追加、削除、変更、クエリについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • mysql の追加、削除、変更、クエリの基本ステートメント
  • Mysql の追加、削除、変更、クエリステートメントのシンプルな実装
  • MySQL トリガーの追加、削除、変更、クエリ操作の例
  • Mysql テーブル、列、データベースの追加、削除、変更、クエリの問題の概要
  • MySQL の詳細な単一テーブルの追加、削除、変更、クエリの CRUD ステートメント
  • MySQL ビュー管理ビューの例の詳細説明 [追加、削除、変更、クエリ操作]

<<:  XHTML 特殊文字コレクション

>>:  Vueでシングルサインオンを実装する方法のまとめ

推薦する

Vue プロジェクトで TypeScript クラスを適用する方法

目次1. はじめに2. 使用1. @コンポーネント2. 計算、データ、方法3. @props 4. ...

vue3.0共通コンポーネントの自動インポート方法の例

1. 前提条件インポートには require.context メソッドを使用します。vite で作成...

3つのDocker Nginxログの処理の詳細な説明

社内の同僚は Nginx ログの標準出力、つまりコンソール経由の処理を必要としているため、まずログを...

INS と DEL を使用してドキュメントの変更をマークする方法の詳細な説明

ins と del は、HTML 4.0 で導入され、文書の作成時に作成者が共同作業できるようにし、...

XHTMLはHTMLのいくつかの廃止された要素を使用しなくなりました

CSS ウェブページレイアウトを行う場合、XHTML1.0 仕様に準拠する必要があることは誰もが知っ...

Ubuntu 18.04 Linux システムに JDK と Mysql をインストールする方法

プラットフォームの展開1. JDKをインストールするステップ1. OracleJDKをダウンロードす...

JavaScript でドラッグ スライダー パズルの検証機能を実装します (html5、canvas)

導入:スライダー ドラッグ検証は現在、多くの場所で使用されています。週末に 1 つ作成しようと思い、...

MySQL ALTERコマンドの知識ポイントのまとめ

テーブル名を変更したり、テーブル フィールドを変更したりする必要がある場合は、 MySQL ALTE...

JVMシリーズのメモリモデルの詳細な説明

目次1. メモリモデルとランタイムデータ領域2. マインドマップと凡例3. オブジェクトはJVMから...

Reactは二次連結(左右連結)を実現する

この記事では、二次リンクを実現するためのReactの具体的なコードを参考までに共有します。具体的な内...

Win10システムにMySQL 8.0をインストールするときに発生する問題を解決する

Win10 システムに MySQL 8.0 をインストールする際に発生する問題と解決策は次のとおりで...

MySQL 8.0.15 winx64 解凍版のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.15 winx64解凍版のインストールと設定方法を紹介します。具体...

Linux Centos でスクリプトを使用して Docker をインストールする方法

Dockerの主な機能は何ですか?現在、Docker には少なくとも次のアプリケーション シナリオが...

CSS を使用して半透明の背景と不透明なテキストを実現する例

この記事では、CSS を使用して半透明の背景と不透明なテキストの効果を実現する方法の例を紹介します。...

一般的な Linux の問題に対する解決策の概要

1. VMwareでCentos7を接続し、固定IPを設定する1) まず、仮想イメージ名を右クリック...