MySQLの使い方の詳細な説明

MySQLの使い方の詳細な説明

1. はじめに

データベース テーブル データの特定のサブセットを取得する必要がある場合は、where 句を使用してフィルタリングの検索条件を指定できます。 where 句には幅広い使用シナリオがあり、習得する必要がある MySQL ステートメントの重要なポイントです。 where によって実装されるすべての関数は MySQL の外部で実装できますが、MySQL で直接クエリをフィルタリングすると、より高速になり、ネットワーク転送のオーバーヘッドが節約されます。

2. 本文

まず、User テーブルを準備します。DDL とテーブルデータは以下のとおりで、そのままコピーして使用できます。

名前を設定します utf8mb4;
FOREIGN_KEY_CHECKS = 0 を設定します。
 
-- ----------------------------
-- ユーザー用テーブル構造
-- ----------------------------
`user` が存在する場合はテーブルを削除します。
テーブル `user` を作成します (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主キー',
  `name` varchar(255) 文字セット utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'ユーザー名',
  `age` int(11) NOT NULL COMMENT '年齢',
  `sex` smallint(6) NOT NULL COMMENT '性別',
  BTREE を使用した主キー (`id`)
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
 
-- ----------------------------
-- ユーザーの記録
-- ----------------------------
`user` に VALUES (1, '李子8', 18, 1) を挿入します。
INSERT INTO `user` VALUES (2, '张三', 22, 1);
`user` VALUES (3, '李四', 38, 1) に INSERT INTO します。
`user` VALUES (4, '王五', 25, 1) に INSERT INTO します。
INSERT INTO `user` VALUES (5, '六麻子', 13, 0);
`user` VALUES (6, '田七', 37, 1) に INSERT INTO します。
`user` VALUES (7, 'Thank you', 18, 1) に INSERT INTO します。
 
FOREIGN_KEY_CHECKS = 1 を設定します。

データの初期順序は次のとおりです。

mysql> ユーザーから * を選択します。
+----+--------+-----+-----+
| ID | 名前 | 年齢 | 性別 |
+----+--------+-----+-----+
| 1 | プラム 8 | 18 | 1 |
| 2 | 張三 | 22 | 1 |
| 3 | 李思 | 38 | 1 |
| 4 | 王武 | 25 | 1 |
| 5 | 劉麻子 | 13 | 0 |
| 6 | 天斉 | 37 | 1 |
| 7 | ありがとう | 18 | 1 |
+----+--------+-----+-----+
セット内の行数は 7 です (0.00 秒)

2.1 Where句の位置

where 句は from 句の後に来ます。例:

mysql> ユーザーから * を選択して、年齢が 18 の場合;
+----+--------+-----+-----+
| ID | 名前 | 年齢 | 性別 |
+----+--------+-----+-----+
| 1 | プラム 8 | 18 | 1 |
| 7 | ありがとう | 18 | 1 |
| 8 | 李子奇 | 18 | 1 |
+----+--------+-----+-----+
セット内の 3 行 (0.00 秒)

order by を使用する場合、where 句は order by の前に配置されます。例:

mysql> select * from user where age = 18 order by name;
+----+--------+-----+-----+
| ID | 名前 | 年齢 | 性別 |
+----+--------+-----+-----+
| 1 | プラム 8 | 18 | 1 |
| 8 | 李子奇 | 18 | 1 |
| 7 | ありがとう | 18 | 1 |
+----+--------+-----+-----+
セット内の 3 行 (0.00 秒)

2.2 演算子

where 句は次の 8 つの演算子をサポートします。

オペレーターオペレーターの説明
=等しい
<>等しくない
!=等しくない
<未満
<=以下
>より大きい
>=より大きいか等しい
との間2つの値の間の間隔(例:1 AND 100)

次に、テーブル内の演算子を使用して、where サブクエリを 1 つずつ実行します。

2.2.1 演算子 =

演算子 = は、完全に一致するデータをクエリするために使用できます。MySQL はデフォルトでは大文字と小文字を区別しないことに注意してください。

必要:
名前が Li Ziba に等しいデータのクエリ ステートメントは次のとおりです。

select * from user where name = '李子捌';

結果:

+----+--------+-----+-----+
| ID | 名前 | 年齢 | 性別 |
+----+--------+-----+-----+
| 1 | プラム 8 | 18 | 1 |
+----+--------+-----+-----+
セット内の 1 行 (0.00 秒)

演算子 = 一致するデータが複数ある場合は、where 句の条件を満たすすべてのデータが返されます。並べ替え方法を指定する必要がある場合は、order by を使用してデータを並べ替えることができます。

2.2.2 演算子 <> と !=

これら 2 つの演算子は、どちらも不等なデータを一致させるという同じ効果を実現します。

必要:
名前が Li Zi Ba と等しくないデータのクエリ ステートメントは次のとおりです。

select * from user where name <> '李子捌';
select * from user where name != '李子捌';

結果:

+----+--------+-----+-----+
| ID | 名前 | 年齢 | 性別 |
+----+--------+-----+-----+
| 2 | 張三 | 22 | 1 |
| 3 | 李思 | 38 | 1 |
| 4 | 王武 | 25 | 1 |
| 5 | 劉麻子 | 13 | 0 |
| 6 | 天斉 | 37 | 1 |
| 7 | ありがとう | 18 | 1 |
| 8 | 李子奇 | 18 | 1 |
+----+--------+-----+-----+
セット内の行数は 7 です (0.00 秒)

2.2.3 演算子 <=、<、>=、>
これら 4 つの演算子は数値型の列データを比較するために使用されますが、テキスト フィールドに適用すると、MySQL は操作も実行できますが、返される結果は期待どおりのデータではない可能性があります (理論的には、誰もこれを行いませんが、エラーは報告されません)。

必要:
年齢が 20 歳以下のすべてのユーザーを照会します。

年齢 <= 20 のユーザーから * を選択します。

結果:

+----+--------+-----+-----+

| ID | 名前 | 年齢 | 性別 |

+----+--------+-----+-----+

| 1 | プラム 8 | 18 | 1 |

| 5 | 劉麻子 | 13 | 0 |

| 7 | ありがとう | 18 | 1 |

| 8 | 李子奇 | 18 | 1 |

+----+--------+-----+-----+

セット内の 4 行 (0.00 秒)

2.2.4 との間
BETWEEN AND は、2 つの数値範囲の間の値を照会するために使用されます。この範囲は 2 つの閉じた間隔であるため、開始値と終了値が含まれます。たとえば、BETWEEN 1 AND 100 には 1 から 100 までのデータが含まれます。

必要:
年齢が 20 以上 50 歳以下のユーザーを照会します。

年齢が 20 から 50 の間のユーザーから * を選択します。

+----+------+-----+-----+

| ID | 名前 | 年齢 | 性別 |

+----+------+-----+-----+

| 2 | 張三 | 22 | 1 |

| 3 | 李思 | 38 | 1 |

| 4 | 王武 | 25 | 1 |

| 6 | 天斉 | 37 | 1 |

+----+------+-----+-----+

セット内の 4 行 (0.00 秒)

2.3 NULL値

NULL 値は、データが含まれていないことを意味します。テーブルを作成するときに、列に NULL 値を含めることができるかどうかを指定するために使用できます。 null は、データ値型の 0 や文字型のスペースとは異なることに注意してください。null 値は値がないことを意味します。
null 値のクエリに関しては、MySQL は特別な where 句 is null を提供します。

必要:
名前に空の値を持つデータ ステートメントをクエリします。

名前が null であるユーザーから * を選択します。

結果:

空のセット (0.00 秒)

ユーザー テーブルに null の名前値を持つデータがないため、データは返されません。名前列が空でないデータをクエリする必要がある場合、どのようにクエリすればよいでしょうか?

この時点では、nullではない

mysql> 名前が null でないユーザーから * を選択します。
+----+--------+-----+-----+
| ID | 名前 | 年齢 | 性別 |
+----+--------+-----+-----+
| 1 | プラム 8 | 18 | 1 |
| 2 | 張三 | 22 | 1 |
| 3 | 李思 | 38 | 1 |
| 4 | 王武 | 25 | 1 |
| 5 | 劉麻子 | 13 | 0 |
| 6 | 天斉 | 37 | 1 |
| 7 | ありがとう | 18 | 1 |
| 8 | 李子奇 | 18 | 1 |
+----+--------+-----+-----+

MySQL where の詳しい使い方については、これで終わりです。MySQL where の使い方に関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL Where 条件文の紹介と演算子の概要
  • MySQL 左結合マルチテーブルクエリの条件記述例
  • MySQL ストアド プロシージャのパラメータ渡しで where id in (1,2,3,...) の例を実装する
  • MYSQL WHERE 文の最適化
  • MySQL の WHERE 句の使用方法の詳細な説明

<<:  HTMLのタグについての簡単な説明

>>:  Web フォントの読み込みを最適化する方法をご存知ですか?

推薦する

Linux 上の MySQL 5.7 でパスワードを忘れる問題を解決する

1. 問題Linux 上の mysql5.7 のパスワードを忘れました2. 解決策• ステップ 1:...

Javascriptの基本ループの詳しい説明

目次サイクルのために入室のためのその間しながら行うループから抜け出す要約するサイクルのためにループは...

Dockerは公式Redisイメージをインストールし、パスワード認証を有効にします

参考: Docker 公式 Redis ドキュメント1. 特別なバージョン要件がある場合は、redi...

CN2、GIA、CIA、BGP、IPLC はどういう意味ですか?

CN2ラインとは何ですか? CN2 は、China Telecom Next Carrier Ne...

CSS3 で虫眼鏡効果を模倣するいくつかの方法の原理の分析

記事のタイトルが「模造虫眼鏡」なのはなぜですか?今日お話ししたいのは、一般的に言われているような、マ...

Mac Docker x509証明書の問題を解決する

質問最近、プライベートミラーセンターにログインする必要がありましたが、ログイン時にエラーメッセージが...

便利で使いやすいウェブアプリケーションを設計するための 10 のヒント

より使いやすい Web アプリケーションを設計するための 10 のヒントをご紹介します。ヒント1: ...

nginxでgzip圧縮を有効にする手順を完了する

目次序文1. gzip圧縮を設定する2. 詳細設定3. nginxサービスを再起動する要約する序文ウ...

React diffアルゴリズムソースコード分析

目次単一ノード差分単一要素を調整するマルチノード差分調整子配列ノードが移動したかどうかを判断するには...

React-Native スクリーンショットコンポーネント react-native-view-shot の紹介と使い方のまとめ

目次1. 現象2. 解決策3. 要約: 1. 現象1. 要件: 特定の表示ページをキャプチャしてアル...

ローカルで起動したときに Vue プロジェクトがクッキーを保持できない問題を解決する

vueプロジェクトをパッケージ化してサーバーにデプロイし、正常にログインできるが、ローカルで起動する...

Linux での vi (vim) の新しい使い方のまとめ

私は数年間 vi エディタを使ってきましたが、実用的な用途で使ったことはありませんでした。今日 Py...

Vueテクノロジーに基づく再帰コンポーネントの実装方法

説明するこの記事では、Vue テクノロジーに基づいて再帰コンポーネントを実装する方法を紹介します。 ...

Dockerコンテナ間の通信と外部ネットワーク通信の操作

コンテナ間の通信1. コンテナのネットワーク共有このモードの Docker コンテナはネットワーク ...

LinuxとGNUシステムの関係の詳細な説明

目次私たちが毎日実行している Linux システムとは何でしょうか? LinuxカーネルとGNUシス...