MySQLクエリ構文の概要

MySQLクエリ構文の概要

序文:

この記事では主に、MySQL の where、group by、order by、limit、join、union、union all、subtable などのクエリ構文を紹介します。

テストデータの準備

テーブルempを作成します(empno numeric(4) not null、ename varchar(10)、job varchar(9)、mgr numeric(4)、hiredate datetime、sal numeric(7, 2)、comm numeric(7, 2)、deptno numeric(2));
テーブルdeptを作成します(deptno numeric(2), dname varchar(14), loc varchar(13));
テーブル salgrade (grade numeric、losal numeric、hisal numeric) を作成します。
dept 値に挿入 ​​(10, 'ACCOUNTING', 'NEW YORK');insert into dept 値に挿入 ​​(20, 'RESEARCH', 'DALLAS');insert into dept 値に挿入 ​​(30, 'SALES', 'CHICAGO');insert into dept 値に挿入 ​​(40, 'OPERATIONS', 'BOSTON');
salgrade 値に挿入します (1、700、1200)。salgrade 値に挿入します (2、1201、1400)。salgrade 値に挿入します (3、1401、2000)。salgrade 値に挿入します (4、2001、3000)。salgrade 値に挿入します (5、3001、9999)。
EMP値(7369、「スミス」、「書記」、7902、「1980-12-17」、800、ヌル、20); EMP値に挿入(7499、「セールスマン」、7698、 '1981-02-20'、1600、300、30); 、500、30); EMP値への挿入(7566、「ジョーンズ」、「マネージャー」、7839、「1981-04-02」、2975、null、20); EMP値に挿入(7654、「マーティン」、「セールスマン」、7698、 '1981-09-28'、1400、1400、783 -05-01 '、2850、null、30); EMP値に挿入(7782、「クラーク」、「マネージャー」、781-06-09'、2450、null、10); emp値に挿入(7788、「スコット」、「アナリスト」、7566、 '' '' '' '' '' '' ''、 '' '' '' 'ints ull、 '1981-11-17'、5000、null、10); EMP値に挿入(7844、「ターナー」、「セールスマン」、7698、1981-09-08 '、1500、0、30); EMP値への挿入Clerk '、7698、' 1981-12-03 '、950、null、30); EMP値に挿入(7902、「フォード」、「アナリスト」、7566、' 1981-12-03 '、3000、null、20); EMP値への挿入(7934、' Miller」

1. あいまいクエリ

mysql> select * from emp where ename like '%S%'; +-------+-------+---------+------+---------------------+---------+------+--------+| empno | ename | job | mgr | hiredate | sal | comm | deptno |+-------+-------+---------+------+---------------------+---------+------+--------+| 7369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800.00 | NULL | 20 || 7566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975.00 | NULL | 20 || 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 00:00:00 | 3000.00 | NULL | 20 || 7876 | ADAMS | CLERK | 7788 | 1983-01-12 00:00:00 | 1100.00 | NULL | 20 || 7900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950.00 | NULL | 30 |+-------+-------+---------+------+---------------------+---------+------+--------+5 rows in set (0.00 sec)
mysqlは、eMAME+-------+---------+------+ +-----+ -------+-------+--------+------+------------------+--------+------+-------+2行セット(0.01秒)
mysqlは、「%s」のように+------+------------------------- --------+ || 7900 |
mysql> select * from emp where ename like '_O%';+-------+-------+---------+------+---------------------+---------+------+--------+| empno | ename | job | mgr | hiredate | sal | comm | deptno |+-------+-------+---------+------+---------------------+---------+------+--------+| 7566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975.00 | NULL | 20 || 7902 | FORD | ANALYST | 7566 | 1981-12-03 00:00:00 | 3000.00 | NULL | 20 |+-------+-------+---------+------+---------------------+---------+------+--------+2 rows in set (0.00 sec)

概要: % は 0 個以上の任意の文字を表し、任意のタイプと長さの文字に一致します。_ は任意の 1 文字を表し、任意の 1 文字に一致します。

2. ソート

mysql> select * from emp order by sal;+-------+--------+-----------+------+---------------------+---------+---------+--------+| empno | ename | job | mgr | hiredate | sal | comm | deptno |+-------+--------+-----------+------+---------------------+---------+---------+--------+| 7369 | SMITH | CLERK | 7902 | 1980-12-17 00:00:00 | 800.00 | NULL | 20 || 7900 | JAMES | CLERK | 7698 | 1981-12-03 00:00:00 | 950.00 | NULL | 30 || 7876 | ADAMS | CLERK | 7788 | 1983-01-12 00:00:00 | 1100.00 | NULL | 20 || 7521 | WARD | SALESMAN | 7698 | 1981-02-22 00:00:00 | 1250.00 | 500.00 | 30 || 7654 | MARTIN | SALESMAN | 7698 | 1981-09-28 00:00:00 | 1250.00 | 1400.00 | 30 || 7934 | MILLER | CLERK | 7782 | 1982-01-23 00:00:00 | 1300.00 | NULL | 10 || 7844 | TURNER | SALESMAN | 7698 | 1981-09-08 00:00:00 | 1500.00 | 0.00 | 30 || 7499 | ALLEN | SALESMAN | 7698 | 1981-02-20 00:00:00 | 1600.00 | 300.00 | 30 || 7782 | CLARK | MANAGER | 7839 | 1981-06-09 00:00:00 | 2450.00 | NULL | 10 || 7698 | BLAKE | MANAGER | 7839 | 1981-05-01 00:00:00 | 2850.00 | NULL | 30 || 7566 | JONES | MANAGER | 7839 | 1981-04-02 00:00:00 | 2975.00 | NULL | 20 || 7788 | SCOTT | ANALYST | 7566 | 1982-12-09 00:00:00 | 3000.00 | NULL | 20 || 7902 | FORD | ANALYST | 7566 | 1981-12-03 00:00:00 | 3000.00 | NULL | 20 || 7839 | KING | PRESIDENT | NULL | 1981-11-17 00:00:00 | 5000.00 | NULL | 10 |+-------+--------+-----------+------+---------------------+---------+---------+--------+14 rows in set (0.00 sec)
mysqlは、sal asc;+-------+----------+-------+--------+| +------+ 7788 |マーティン| 7499 | 1981-00:00 | 00 | | null |
mysqlは、sal desc;+-------+----------+-------+-------+| +------+ 2 | | 1981-0.00 | 00:00 | 50.00 | | ||

要約: order byソートはデフォルトで昇順でソートされますが、desc降順を指定することもできます。

3. 行数を制限する

mysqlは、EMP 3から---------+--------------+-------+| ------+| 7521 |
mysqlは、SAL DESCリミット+---------+-------+------+ -------+| |スコット|

要約: limitは表示される行数を制限し、order byと組み合わせて使用​​できます。

4. 集計機能

count() sum() 関数の使用法: #1. 給与と各部署の給与mysql> select deptno,sum(sal) from emp group by deptno;+--------+----------+| deptno | sum(sal) |+--------+----------+| 10 | 8750.00 || 20 | 10875.00 || 30 | 9400.00 |+--------+----------+3 rows in set (0.01 秒)
: : : : : : : : : : : : : : :
#3 .00 || 30 |。

結合および結合データ準備の使用法については、以下を参照してください。

テーブルtesta(aid int,aname varchar(40))を作成します。
テーブル testb(bid int,bname varchar(40),age int) を作成します。
種皮の値に挿入(1,'xiaoming');種皮の値に挿入(2,'LY');種皮の値に挿入(3,'KUN');種皮の値に挿入(4,'ZIDONG');種皮の値に挿入(5,'HB');

testb の値に挿入します(1,'xiaoming',10);testb の値に挿入します(2,'LY',100);testb の値に挿入します(3,'KUN',200);testb の値に挿入します(4,'ZIDONG',110);testb の値に挿入します(6,'niu',120);testb の値に挿入します(7,'meng',130);testb の値に挿入します(8,'mi',170);

5.左結合

mysql> A.Aname、b.bname、b.age> aid = b.bid ------+------+| xiaoming | +------+---------+------+5行のセット(0.00秒)

要約: テーブルの左結合が完了し、テーブル b を使用してテーブルが一致します。LEFT JOIN キーワードは、右側のテーブル (b) に一致する行がない場合でも、左側のテーブル (a) のすべての行を返します。一致しない列は NULL に置き換えられます。

6.右結合

mysql> a.aid、b.bname、b.age> aid = b.bid; Xiaoming | | null |

要約: 右結合 b b テーブルが完了し、テーブル a を使用してテーブル b を一致させます。RIGHT JOIN キーワードは、右テーブル (b) のすべての行を返します。左テーブル (a) に一致する行がない場合でも、一致しない列は NULL に置き換えられます。

7. 内部結合

mysql> A.Aname、b.bname、b.age> aiad = b.bid ------+------+| 1 Xiaoming | 0.00秒)
mysql> a.Aname、b.bname、> testaは、aid = b.bid -----+------+| Xiaoming | 00秒)

概要: 内部結合は結合と同じ効果があります。INNER JOIN キーワードは、テーブル内に少なくとも 1 つの一致がある場合に行を返します。

8. 連合と連合すべて

mysql> select aid,aname from testa -> union -> select bid,bname from testb;+------+----------+| aid | aname |+------+----------+| 1 | xiaoming || 2 | LY || 3 | KUN || 4 | ZIDONG || 5 | HB || 6 | niu || 7 | meng || 8 | mi |+------+----------+セットに 8 行あります (0.01 秒)
mysql> select aid,aname from testa -> union all -> select bid,bname from testb;+------+----------+| aid | aname |+------+----------+| 1 | xiaoming || 2 | LY || 3 | KUN || 4 | ZIDONG || 5 | HB || 1 | xiaoming || 2 | LY || 3 | KUN || 4 | ZIDONG || 6 | niu || 7 | meng || 8 | mi |+------+----------+セット内の行数は 12 です (0.00 秒)

要約: union は重複を削除しますが、union all は重複を削除しません。

上記はMySQLクエリ構文の概要の詳細内容です。MySQLクエリ構文の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQLで日付と時刻を照会する方法
  • MySQL データベースの高度なクエリとマルチテーブルクエリ
  • MySQL でのワイルドカードを使用したファジークエリの実装に関する簡単な説明
  • デカルト積原理を使用してMySQLで複数のテーブルをクエリする方法を簡単に説明します。
  • MySQL における SQL ページングクエリのいくつかの実装方法と利点と欠点
  • MySQL インデックスクエリ最適化スキルを習得するための記事
  • MySQL クエリ データベース容量方法手順
  • Python pymysql リンク データベース クエリ結果を Dataframe インスタンスに変換
  • pymysqlクエリステートメントで in を使用する際のパラメータの受け渡しの問題について簡単に説明します。
  • MySQL の複数テーブル関連付け 1 対多クエリを使用して最新のデータを取得する方法の例

<<:  アイデア展開Tomcatサービス実装プロセス図

>>:  Vuex全体のケースの詳細な説明

推薦する

デジタルテーブル特殊効果を実現するネイティブJS

この記事では、ネイティブ JS で実装されたデジタル時計エフェクトを紹介します。エフェクトは次のとお...

MySQL ルートパスワードを変更する 4 つの方法 (要約)

方法1: SET PASSWORDコマンドを使用するまずMySQLにログインします。フォーマット: ...

TypeScript名前空間の説明

目次1. 定義と使用1.1 定義1.2 使用2. 複数のファイルに分割する3. エイリアス序文: T...

ローカルサーバーを構築するためのwebpack-dev-serverの実装

目次序文webpack-deb サーバーwebpack-dev-server 起動エラー解決策1解決...

ウェブデザインにおける2種類のタブアプリケーション

現在、Web デザインではタブが広く使用されていますが、一般的に次の 2 つのタイプに分けられます。...

Vue3+Vantコンポーネントを使用してアプリの検索履歴機能を実装する(サンプルコード)

現在、新しいアプリプロジェクトを開発中です。私にとっても初めてのアプリ開発です。チームで調査と検討を...

LeetCode の SQL 実装 (178. スコアランキング)

[LeetCode] 178.ランクスコアスコアをランク付けする SQL クエリを記述します。2 ...

Docker Hubの動作原理と実装プロセスの分析

GitHub が提供するコード ホスティング サービスと同様に、Docker Hub はイメージ ホ...

CSS のグリッドプロパティの使用に関する詳細な説明

グリッドレイアウト親要素に追加された属性グリッドテンプレートの列/グリッドテンプレートの行要素の行ま...

MySQL で distinct メソッドを使用する詳細な例

明確な意味: distinctive は、一意のレコードの数を照会するために使用されます。つまり、d...

MySQLでバッチを更新するいくつかの方法

通常、フィールド値を更新するには次の SQL ステートメントを使用します。 mytable を更新し...

HTMLページ内の検索機能を完了する

最近、たくさんの人に改変してもらったフレームワークに取り組んでいます。毎日コードを見ていると目が回り...

MySQL Shell import_tableデータインポートの実装

目次1. import_tableの紹介2. データのロードとテーブル関数のインポートの例2.1 L...

言及すべき8つのMySQLの落とし穴を共有する

MySQL はインストールが簡単で、高速で、豊富な機能を備えています。これはオープンソース運動のベン...

Centos7 で MySQL マスター スレーブ サーバーを構築する方法 (グラフィック チュートリアル)

この記事では主に CentOS 上で MySQL マスタースレーブサーバーを構築する方法を紹介します...