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全体のケースの詳細な説明

推薦する

MySQL の完全なデータベース バックアップからデータベースとテーブルを復元する方法

公式の MySQL ダンプ ツールで、特定のデータベースのみを復元するにはどうすればよいですか?完全...

Windows での PyTorch 開発環境のインストール チュートリアル

アナコンダのインストールAnaconda は、Python の使用を容易にするために作成されたソフト...

Vue テンプレート構成と Webstorm コード形式仕様設定

目次1. コンパイラコードフォーマット仕様設定2. Vueテンプレートの設定1. コンパイラコードフ...

期間限定フラッシュセール機能を実現するJavaScriptタイマー

この記事では、期間限定フラッシュセール機能を実装するためのJavaScriptの具体的なコードを参考...

Kylin V10 への zabbix-agent のインストール手順

1. インストールパッケージをダウンロードするダウンロードアドレス: https://sourcef...

最小限の展開で CentOS8 に OpenStack Ussuri をインストールする方法の詳細なチュートリアル

CentOS8 に最小限のデプロイメントで OpenStack Ussuri をインストールするため...

CentOS に MySQL 8.0 をインストールして設定するための詳細な手順

序文CentOS に MySQL をインストールして設定する手順は次のとおりです。文章yumソースか...

Linux での wget コマンドの基本的な使い方

目次序文1. wgetを使用して単一のファイルをダウンロードする2. wget -Oを使用してダウン...

Docker を使用した ELK7.3.0 ログ収集サービスの導入に関するベスト プラクティス

最初に書くこの記事では、ELK 7.3.0 の展開についてのみ説明します。展開環境:システムセントO...

Vue のミックスインの使用方法の詳細な説明

目次序文1. Mixin とは何ですか? 2. Mixin はいつ使用すればよいですか? 3. Mi...

VMware kali仮想マシン環境の設定方法

1|0 カーネルをコンパイルする(1)uname -rコマンドを実行してカーネルバージョンを表示しま...

条件によるMysqlカウントの複数の実装方法を詳細に解説

最近、あるウェブサイトのバックエンドに一連の統計機能を追加していたのですが、条件によるカウントが必要...

JavaScript における継承の 3 つの方法

継承する1. 継承とは何か継承: まず、継承とは関係、つまりクラス間の関係です。JS にはクラスはあ...

JavaScript Sandboxについての簡単な説明

序文:サンドボックスといえば、私たちの頭には反射的に上の写真が思い浮かび、すぐに興味がわいてくるかも...

Windows 10 システムで Mysql8.0.13 のルート パスワードを忘れる方法

1. まずmysqlサービスを停止します管理者としてCMDを開いて閉じるか、Windowsサービスペ...