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

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

WBOY
リリース: 2022-11-02 20:19:20
転載
1850 人が閲覧しました

この記事では、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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート