SQLクエリステートメントとは何ですか?
sql クエリ ステートメント: 1. テーブル構造を表示 [SQL>DESC emp]; 2. すべての列をクエリ [SQL>SELECT * FROM emp]; 3. 指定された列をクエリ; 4. 指定された行をクエリ; 5. 算術式を使用する; 6. 論理演算記号を使用する。
推奨 (無料): sql チュートリアル
#sql クエリ ステートメント:
1. 単純なクエリ ステートメント
##1. テーブル構造の表示
SQL>DESC emp;
2. すべての列をクエリする
SQL>SELECT * FROM emp;
3. 指定した列をクエリする
SQL>SELECT empmo, ename, mgr FROM emp; SQL>SELECT DISTINCT mgr FROM emp; 只显示结果不同的项
4. 指定した行をクエリする
SQL>SELECT * FROM emp WHERE job='CLERK';
5. 算術式を使用します
SQL>SELECT ename, sal*13+nvl(comm,0) FROM emp; nvl(comm,1)的意思是,如果comm中有值,则nvl(comm,1)=comm; comm中无值,则nvl(comm,1)=0。 SQL>SELECT ename, sal*13+nvl(comm,0) year_sal FROM emp; (year_sal为别名,可按别名排序) SQL>SELECT * FROM emp WHERE hiredate>'01-1月-82';
6. like 演算子 (%,_)
を使用します% は 1 つ以上の文字を表し、_ は文字を表し、[charlist] は文字列内の任意の 1 文字を表し、[^charlist] または [!charlist] は文字列にない任意の 1 文字を表します。SQL>SELECT * FROM emp WHERE ename like 'S__T%';
7. where 条件で In
SQL>SELECT * FROM emp WHERE job IN ('CLERK','ANALYST');
# を使用します。 8. フィールドの内容が空であるか空ではないというステートメントをクエリします
SQL>SELECT * FROM emp WHERE mgr IS/IS NOT NULL;
9. 論理演算記号を使用します
SQL>SELECT * FROM emp WHERE (sal>500 or job='MANAGE') and ename like 'J%';
10. クエリ結果をフィールド値で並べ替えます#SQL>SELECT * FROM emp ORDER BY deptno, sal DESC; (按部门升序,并按薪酬降序)
SQL>SELECT CASE a WHEN "original_a" THEN "新命名Aa" WHEN "original_b" THEN "新命名Bb" END AS XXX;
元のテーブル
b | c | |
... | ... | |
... | ... |
新しい名前 Aa |
新しい名前 Bb |
SQL>SELECT DATE_FORMAT(start_time,"%Y-%m-%d") as "时间";
1. データのグループ化 (最大、最小、平均、合計、カウント)
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;
データ グループ化の概要:
a. グループ化関数は、次の場合にのみ使用できます。 select list、having、order by 句 (where には使用できません)
b. select ステートメントに group by、having、order by も含まれている場合、それらの順序は group by、持っている、までに注文する。
c. 選択列に列、式、およびグループ化関数がある場合、これらの列と式は group by 句に含める必要があり、そうでない場合はエラーが発生します。つまり、SELECT 句の列名はグループ化列または列関数である必要があります
- #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. サブクエリ (他の SQL ステートメントに埋め込まれた select ステートメント、ネストされたクエリとも呼ばれます)
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);
部門番号と同じ職務を持つ従業員の名前と職務をクエリします。表の10、給与、部門番号。返された結果には複数の行があるため、サブクエリ ステートメントを接続するために「IN」が使用されます。
5.3 ALL
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);
を使用して、部門番号 30 の全従業員よりも給与が高い従業員の名前、給与、および部門番号をクエリします。上記 2 つのステートメントは機能的には同じですが、実行効率の点では、機能ははるかに高くなります。
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);
を使用して、部門番号 30 の従業員よりも給与が高い従業員の名前、給与、部門番号をクエリします (給与が 30 より高い場合に限ります)。とある社員)。上記 2 つのステートメントは機能的には同じですが、実行効率の点では、機能ははるかに高くなります。
5.5 複数列のサブクエリ
SQL>SELECT * FROM emp WHERE (job, deptno)=(SELECT job, deptno FROM emp WHERE ename='SMITH');
5.6 from 句でのサブクエリの使用
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;
5.7 ページング クエリ
データベース内のデータの各行には、対応する行番号は rownum と呼ばれます。
SQL>SELECT a2.* FROM (SELECT a1.*, ROWNUM rn FROM (SELECT * FROM emp ORDER BY sal) a1 WHERE ROWNUM<=10) a2 WHERE rn>=6;
クエリ列の指定、クエリ結果の並べ替えなどを行うには、最も内側のサブクエリを変更するだけで済みます。
5.8 クエリ結果を含む新しいテーブルの作成
SQL>CREATE TABLE mytable (id,name,sal,job,deptno) AS SELECT empno,ename,sal,job,deptno FROM emp;
5.9 クエリのマージ (和集合、交差積、全和集合、マイナス差分セット)
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';
php プログラミング
(ビデオ)以上がSQLクエリステートメントとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











DateTimeデータ型は、0001-01-01-01 00:00:00:00:00:00:00:00:00:00:00:00:59:59.999999999:59:59.99999999の範囲の高精度の日付情報を保存するために使用され、内部はdateTime(精度)です。変換機能は機能しますが、精度、範囲、およびタイムゾーンを変換する際に潜在的な問題に注意する必要があります。

SQL ServerでSQLステートメントを使用してテーブルを作成する方法:SQL Server Management Studioを開き、データベースサーバーに接続します。データベースを選択してテーブルを作成します。作成テーブルステートメントを入力して、テーブル名、列名、データ型、制約を指定します。 [実行]ボタンをクリックしてテーブルを作成します。

SQLステートメントは、SQLステートメントを条件付きで実行するために使用され、構文は次のようになります。if(条件)then {ステートメント} else {ステートメント} end if;。条件は有効なSQL式である可能性があり、条件が真の場合、then句を実行します。条件が偽の場合は、else句を実行します。ステートメントをネストできる場合、より複雑な条件付きチェックを可能にします。

sqlで異なる使用を使用して重複排除するには2つの方法があります。選択した列の一意の値のみが保存され、元のテーブル順序が維持されます。グループ:グループ化キーの一意の値を保持し、テーブルの行を再注文します。

外部のキーの制約は、データの整合性、一貫性、および参照の整合性を確保するために、テーブルの間に参照関係がある必要があることを指定します。特定の機能には、以下が含まれます。データの整合性:違法データの挿入または更新を防ぐために、メインテーブルに外部キー値が存在する必要があります。データの一貫性:メインテーブルデータが変更されると、外部キーの制約は、関連データを自動的に更新または削除して、同期し続けます。データ参照:表間の関係を確立し、参照の整合性を維持し、関連データの追跡と取得を促進します。

一般的なSQL最適化方法は次のとおりです。インデックス最適化:適切なインデックスアクセラレーションされたクエリを作成します。クエリの最適化:マルチテーブル結合の代わりに、正しいクエリタイプ、適切な結合条件、およびサブクエリを使用します。データ構造の最適化:適切なテーブル構造、フィールドタイプを選択し、ヌル値の使用を避けるようにしてください。クエリキャッシュ:クエリキャッシュを有効にして、頻繁に実行されるクエリ結果を保存します。接続プールの最適化:接続プールを使用して、マルチプレックスデータベース接続を行います。トランザクションの最適化:ネストされたトランザクションを避け、適切な分離レベルを使用し、バッチ操作を使用します。ハードウェアの最適化:ハードウェアをアップグレードし、SSDまたはNVMEストレージを使用します。データベースメンテナンス:インデックスメンテナンスタスクを定期的に実行し、統計を最適化し、未使用のオブジェクトをクリーンにします。クエリ

SQLラウンド()関数は、指定された数字の数を丸めます。次の2つの用途があります。1。num_digits&gt; 0:小数点に丸められています。 2。Num_Digits&lt; 0:整数の場所に丸みを帯びています。

SQLの宣言ステートメントは、変数、つまり変数値を保存するプレースホルダーを宣言するために使用されます。構文は次のとおりです:declare&lt;変数名&gt; &lt;データ型&gt; [デフォルト&lt;デフォルト値&gt;];ここで&lt;変数名&gt;変数名、&lt;データ型&gt;そのデータ型(VarcharやIntegerなど)、および[default&lt; default値&gt;]はオプションの初期値です。宣言ステートメントは、中間体を保存するために使用できます
