一般的な SQL クエリ ステートメントは何ですか?
一般的な SQL クエリ ステートメントには次のものが含まれます: 1. テーブル構造の表示 [SQL>DESC emp;]; 2. すべての列のクエリ [SQL>SELECT * FROM emp]; 3. 指定された列のクエリ [SQL>SELECT empmo , ]; 4. 指定された行をクエリします [SQL>SELECT * FROM]。
#一般的な SQL クエリ ステートメントは次のとおりです:
#1. 単純なクエリ ステートメント1. テーブル構造の表示
SQL>DESC emp;
SQL>SELECT * FROM emp;
SQL>SELECT empmo, ename, mgr FROM emp;
SQL>SELECT * FROM emp WHERE job='CLERK';
SQL>SELECT ename, sal*13+nvl(comm,0) FROM emp;
SQL>SELECT ename, sal*13 nvl(comm,0) year_sal FROM emp; (year_sal は別名であり、別名でソートできます)
SQL>SELECT * FROM emp WHERE hiredate>'01-1月-82';
% は 1 つ以上の文字を表し、_ は 1 つの文字を表し、[charlist] は文字列内の任意の 1 文字を表します。[^charlist] または [!charlist] は文字ではありません 列内の任意の 1 文字。
SQL>SELECT * FROM emp WHERE ename like 'S__T%';
SQL>SELECT * FROM emp WHERE job IN ('CLERK','ANALYST');
SQL>SELECT * FROM emp WHERE mgr IS/IS NOT NULL;
SQL>SELECT * FROM emp WHERE (sal>500 or job='MANAGE') and ename like 'J%';
SQL>SELECT * FROM emp ORDER BY deptno, sal DESC;
11. ユースケース ... when ... then ... クエリ結果の処理を終了
SQL>SELECT CASE a WHEN "original_a" THEN "新しい名前 Aa" WHEN "original_b" THEN "新しい名前 Bb" END AS XXX;
テーブル内のフィールドを選択しますaの内容がoriginal_aの場合、内容は「新しい名前Aa」と表示されます。12. 日付データのフォーマット
SQL>SELECT DATE_FORMAT(start_time,"%Y-%m-%d") as "时间";
1. データのグループ化 (最大、 min,avg,sum,count)
SQL>SELECT MAX(sal),MIN(age),AVG(sal),SUM(sal) from emp; SQL>SELECT * FROM emp where sal=(SELECT MAX(sal) from emp)); SQL>SELEC COUNT(*) FROM emp;
SQL>SELECT deptno,MAX(sal),AVG(sal) FROM emp GROUP BY deptno; SQL>SELECT deptno, job, AVG(sal),MIN(sal) FROM emp group by deptno,job having AVG(sal)<2000;
3. 複数テーブル クエリ
SQL>SELECT e.name,e.sal,d.dname FROM emp e, dept d WHERE e.deptno=d.deptno order by d.deptno; SQL>SELECT e.ename,e.sal,s.grade FROM emp e,salgrade s WHER e.sal BETWEEN s.losal AND s.hisal; Select a.*, b.x, c.y from a left outer join (Select * from tablex where condition1)b on a.id=b.id left outer join (Select * from tabley where condition2)c on a.id=c.id where condition3;
4. 自己結合 (同じテーブルの接続クエリを参照)
SQL>SELECT er.ename, ee.ename mgr_name from emp er, emp ee where er.mgr=ee.empno;
5.1 単一行のサブクエリ
SQL>SELECT ename FROM emp WHERE deptno=(SELECT deptno FROM emp where ename='SMITH');
5.2 複数行のサブクエリ
SQL>SELECT ename,job,sal,deptno from emp WHERE job IN (SELECT DISTINCT job FROM emp WHERE deptno=10);
in とexists の違い:exists() の後のサブクエリは相関サブクエリと呼ばれ、リストの値を返しません。 true または false の結果を返すだけで、メイン クエリを 1 回実行し、その後サブクエリで対応する結果をクエリするという操作方法です。 trueの場合は出力され、そうでない場合は出力されません。次に、メイン クエリの各行に基づいてサブクエリでクエリを実行します。 in() の後のサブクエリは結果セットを返します。つまり、exists() とは実行順序が異なります。サブクエリは最初に結果セットを生成し、次にメイン クエリはその結果セットにアクセスして、要件を満たすフィールドのリストを検索します。要件を満たしている場合は出力されます。要件を満たしていない場合は出力されません。
SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ALL (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MAX(sal) FROM emp WHERE deptno=30);
5.4 ANY
SQL>SELECT ename,sal,deptno FROM emp WHERE sal> ANY (SELECT sal FROM emp WHERE deptno=30);或SQL>SELECT ename,sal,deptno FROM emp WHERE sal> (SELECT MIN(sal) FROM emp WHERE deptno=30);
5.5 複数列のサブクエリ
SQL>SELECT * FROM emp WHERE (job, deptno)=(SELECT job, deptno FROM emp WHERE ename='SMITH');
SQL>SELECT emp.deptno,emp.ename,emp.sal,t_avgsal.avgsal FROM emp,(SELECT emp.deptno,avg(emp.sal) avgsal FROM emp GROUP BY emp.deptno) t_avgsal where emp.deptno=t_avgsal.deptno AND emp.sal>t_avgsal.avgsal ORDER BY emp.deptno;
SQL>SELECT a2.* FROM (SELECT a1.*, ROWNUM rn FROM (SELECT * FROM emp ORDER BY sal) a1 WHERE ROWNUM<=10) a2 WHERE rn>=6;
SQL>CREATE TABLE mytable (id,name,sal,job,deptno) AS SELECT empno,ename,sal,job,deptno FROM emp;
SQL>SELECT ename, sal, job FROM emp WHERE sal>2500 UNION(INTERSECT/UNION ALL/MINUS) SELECT ename, sal, job FROM emp WHERE job='MANAGER';
合并查询的执行效率远高于and,or等逻辑查询。
5.10 使用子查询插入数据
SQL>CREATE TABLE myEmp(empID number(4), name varchar2(20), sal number(6), job varchar2(10), dept number(2));
先建一张空表;
SQL>INSERT INTO myEmp(empID, name, sal, job, dept) SELECT empno, ename, sal, job, deptno FROM emp WHERE deptno=10;
再将emp表中部门号为10的数据插入到新表myEmp中,实现数据的批量查询。
5.11 使用了查询更新表中的数据
SQL>UPDATE emp SET(job, sal, comm)=(SELECT job, sal, comm FROM emp where ename='SMITH') WHERE ename='SCOTT';
相关免费学习推荐:SQL视频教程
以上が一般的な SQL クエリ ステートメントは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

この記事では、パフォーマンスとスケーラビリティへの影響に焦点を当てたSQLでの水平および垂直データの分割について説明します。それは、それらを選択するための利点と考慮事項を比較します。

この記事では、SQLアグリゲート関数(SUM、AVG、Count、Min、Max)を使用してデータを要約し、使用と違いを詳述し、クエリでそれらを結合する方法について説明します。

この記事では、SQLインジェクションに焦点を当てた動的SQLのセキュリティリスクについて説明し、パラメーター化されたクエリと入力検証の使用などの緩和戦略を提供します。

この記事では、SQLトランザクションの分離レベルについて説明します。データの一貫性とパフォーマンスへの影響を調べ、より高い分離により一貫性が高くなることがありますが、

記事では、GDPRおよびCCPAコンプライアンスにSQLを使用して、データの匿名化、アクセス要求、および時代遅れのデータの自動削除に焦点を当てています(159文字)について説明します。

この記事では、SQLトランザクションにおける酸性特性(原子性、一貫性、分離、耐久性)について説明します。これは、データの整合性と信頼性を維持するために重要です。

この記事では、SQLインジェクションなどの脆弱性に対してSQLデータベースを保護し、準備されたステートメント、入力検証、定期的な更新を強調しています。

記事では、パフォーマンスとスケーラビリティを向上させるために、SQLでデータパーティションを実装すること、詳細な方法、ベストプラクティス、監視ツールについて説明します。
