ホームページ  >  記事  >  データベース  >  MySQL サブクエリの詳細なチュートリアル

MySQL サブクエリの詳細なチュートリアル

WBOY
WBOY転載
2022-11-02 16:32:211794ブラウズ

この記事では、mysql に関する関連知識を提供します。主に、where の後のネストされたサブクエリ、from の後のネストされたサブクエリ、select の後ろのネストされたサブクエリやその他のコンテンツなど、サブクエリに関する関連コンテンツを紹介します。見てみましょう。皆さんのお役に立てれば幸いです。

推奨学習: mysql ビデオ チュートリアル

定義: select ステートメントは select ステートメント内にネストされており、ネストされた select ステートメントはサブクエリです。

サブクエリは次の場所に使用できます:

select 
	....(select)..
from 
	....(select)..
where 
	....(select)..

1. where の後ろにネストされたサブクエリ

select * from emp where sal > (select avg(sal) from emp) ;

2. from *

の後ろにネストされたサブクエリ
SELECT d.dname,AVG(s.grade) '部门平均薪资' 
FROM emp e
JOIN salgrade s ON e.sal BETWEEN s.losal AND s.hisal 
JOIN dept d ON e.deptno = d.deptno
GROUP BY d.dname

3. select の後にサブクエリをネストします

各従業員の部門名を調べます

写法一:看作临时表
SELECT t.ename,d.dname
FROM dept d JOIN (SELECT e.ename,e.deptno FROM emp e) t ON t.deptno = d.deptno   

写法二:连接查询
SELECT e.ename,d.dname FROM emp e JOIN dept d ON e.deptno = d.deptno

写法三:select后嵌套子查询
SELECT e.ename,(SELECT d.dname FROM dept d WHERE d.deptno = e.deptno) AS dept FROM emp e ;

4.union

クエリ結果セットを追加できます

SELECT ename,job FROM emp e WHERE job = 'CLERK'
UNION
SELECT ename,job FROM emp e WHERE job = 'SALESMAN'

と、無関係な 2 つのテーブルのデータを結合することもできます。 (ただし、列数は変わりません)

SELECT ename FROM emp 
UNION
SELECT dname FROM dept

5.*limit

重要なポイント、ページングクエリはそれに依存します

1) 制限はmysqlに固有です。その他 データベースにはそのようなメカニズムはありませんが、Oracle には rownum と呼ばれる同様のメカニズムがあります。

2) limit は結果セットからデータを取得します

3) 構文メカニズム: limit startIndex、length

startindex は 0 から始まる開始位置を示し、0 は最初の記事データ。

length は、取得する数を示します。

4) limit は、SQL ステートメントの最後の実行リンクです。

(現在のページ番号 - 1) * ページ サイズ = 現在のページの開始添え字

推奨学習: mysql ビデオ チュートリアル

以上がMySQL サブクエリの詳細なチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。