序文: この記事では主に、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 ダンプ ツールで、特定のデータベースのみを復元するにはどうすればよいですか?完全...
アナコンダのインストールAnaconda は、Python の使用を容易にするために作成されたソフト...
目次1. コンパイラコードフォーマット仕様設定2. Vueテンプレートの設定1. コンパイラコードフ...
この記事では、期間限定フラッシュセール機能を実装するためのJavaScriptの具体的なコードを参考...
1. インストールパッケージをダウンロードするダウンロードアドレス: https://sourcef...
CentOS8 に最小限のデプロイメントで OpenStack Ussuri をインストールするため...
序文CentOS に MySQL をインストールして設定する手順は次のとおりです。文章yumソースか...
目次序文1. wgetを使用して単一のファイルをダウンロードする2. wget -Oを使用してダウン...
最初に書くこの記事では、ELK 7.3.0 の展開についてのみ説明します。展開環境:システムセントO...
目次序文1. Mixin とは何ですか? 2. Mixin はいつ使用すればよいですか? 3. Mi...
1|0 カーネルをコンパイルする(1)uname -rコマンドを実行してカーネルバージョンを表示しま...
最近、あるウェブサイトのバックエンドに一連の統計機能を追加していたのですが、条件によるカウントが必要...
継承する1. 継承とは何か継承: まず、継承とは関係、つまりクラス間の関係です。JS にはクラスはあ...
序文:サンドボックスといえば、私たちの頭には反射的に上の写真が思い浮かび、すぐに興味がわいてくるかも...
1. まずmysqlサービスを停止します管理者としてCMDを開いて閉じるか、Windowsサービスペ...