データベース-oracleの研究ノート(7)

基礎となるクエリ言語のSQL --DQL

1)基本的なクエリ言語を選択...から...どこ...。

  • キーワードから(1)は
    、クエリで指定されたテーブルから
  • (2)は、エイリアスの問題使用
    与えられたクエリを選択し、SELECT文の内側の列、
    構文を:スペースで区切って別名を、書き込みに出て設定した後、途中で添加することができるか、キーワードとして追加されていません。
    注:あなたは、大文字と小文字を区別した文字の別名をしたい、または別名は文字やスペースが含まれている場合、それは二重引用符で囲む必要があります。
列明 别名
列明 as 别名
select empno, ename, sal*12 from emp;
select empno as id, ename name, sal*12 as totalSal from emp;
select empno as "id", ename "name", sal*12 as "年薪" from emp;
  • (3)〜句を選択する
    列を選択し、照会される
    がselect *の後ろのテーブルのすべての列である場合
    、それは特定の列である場合、書き込みが明らかに後ろにコンマで区切られた列を選択します。
select * from...
select id, name,age as 别名 from ....
  • 節(4)
    句は、クエリの制限に条件を作るために使用される
    (選択、更新中に句を使用して利用可能な場合、削除)
    :ストレスを
    where句で①、条件が比較的数字であれば、あなたはシングルを使用することができます
    引用符がありません。
    ②where句には、その文字列、日付と多くの種類の場合は
    データが比較され、それは単一引用符で囲む必要があります。
查询在部门10下面的所有员工信息
select * from emp where deptno=10;
select * from emp where deptno='10';
查询员工表中职位是SALESMAN的职员
select * from emp where job='SALESMAN';
select * from emp where job=SALESMAN;   ORA-00904: "SALESMAN": 标识符无效

オラクルでは2)のクエリ----句

  • (1)> <> = <= =!=等価<>
查询员工表薪水低于2000的员工信息
select * from emp where sal<2000;
select * from emp where sal+nvl(comm,0)<2000;
查询员工表中不属于部门10的员工信息
select * from emp where deptno!=10;
select * from emp where deptno<>10;
查询员工表中在2002年1月1日以后入职的员工信息,比较日期类型数据
SELECT ENAME,SAL,HIREDATE FROM emp 
WHERE HIREDATE > TO_DATE('2002-1-1','YYYY-MM-DD');
  • (2)やキーワード
    所望の結果が返された場合SQL操作において、条件の数、およびこれらの条件を接続するために使用満たしている必要があり、
    所望の結果が返された場合、SQL操作は、複数の条件の一つで満たされていますまたはこれらの条件を接続するのに使用されます。
查询底薪大于1000并且职位是'CLERK'的员工信息
select * from emp where sal>1000 and job='CLERK'; 正确
SELECT * FROM EMP WHERE SAL>1000 AND JOB='CLERK'; 正确
select * from emp where sal>1000 and job='clerk';   错误
select * from emp where sal>1000 and lower(job)='clerk'; 正确
select * from emp where sal>1000 and initcap(job)='Clerk';  正确
select job, upper(job), lower(job), initcap(job) from emp;
查询底薪大于1000或者职位是'CLERK'的员工信息
select * from emp where sal>1000 or lower(job)='clerk';
select * from emp where sal>1000 or job='CLERK';
  • 等(3)使用条件-ファジー検索
    ファジーマッチングクエリワイルドカード:
    複数の文字を表す0:%
    _:任意の単一の文字を表します
select * from emp where ename='SMITH';    精确值查询
select * from emp where ename like '_A%';   员工姓名中第二个字母是A的  模糊匹配查询
模糊匹配查询     查询员工姓名中包含A的所有信息
select * from emp where ename like '%A%';
模糊匹配查询    查询员工姓名中是S结尾的员工信息
select * from emp where ename like '%S';
  • (4)と使用しない
    構文:で(LIST1、LIST2、LIST3 、...) の値を取るリストに等しい
    (LIST1、LIST2、LIST3ではない ...) 抽出されたデータリストに等しくない
    パラメータリスト、値のリストを表します各値をカンマで区切ったリスト
查询职位是MANAGER或者CLERK的员工信息
select * from emp where job='MANAGER' or job='CLERK';
select * from emp where job in('MANAGER', 'CLERK');
查询出不是部门10和不是部门20的员工信息
select * from emp where deptno !=10 and deptno !=20;   正确
SELECT * FROM emp WHERE DEPTNO NOT IN (10,20);    正确
select * from emp where deptno !=10  or deptno !=20;   错误
  • A1とA2との間の(5)使用
    データ(A1とA2との間の範囲であって、a1とa2)の条件満たすクエリの値の範囲
    デジタル型、文字列型で使用して、日付データ型の範囲。
查询底薪在1500~3000之间的员工信息
select * from emp where sal between 1500 and 3000;
select * from emp where sal>=1500 and sal<=3000;
  • (6)がヌルでないnullで、
    NULL値は、特別な値である=を比較する際に使用することができません。
    ヌルに等しいですヌル
    ヌルに等しくない場合はnullではありません
查询提成为空的员工信息
select * from emp where comm is null;
查询提成不为空的员工信息
select * from emp where comm is not null;
  • (7)いずれかおよび全ての使用
    任意の及び全ては>> = << =使用と比較演算子必要で、単独で使用することができます
>any(list1,list2,list3,....):大于()里的最小值
<any(list1,list2,list3....):小于()里的最大值
>all(list1,list2,list3...):大于()里的最大值
<all(list1,list2,list3...):小于()里的最小值
select * from emp where sal>any(3500,4000,4500);  工资大于3500
select * from emp where sal<any(3500,4000,4500);  工资小于4500
select * from emp where sal>all(3500,4000,4500);    工资大于4500
select * from emp where sal<all(3500,4000,4500);    工资小于3500
any   大于最小的,小于最大的
all     大于最大的,小于最小的
  • (8)異なる重複排除の使用
    データ行がデータテーブルで同一のデータを格納することができる、デフォルトのクエリはすべての行のデータの場合です。
    重複データが意味のないとき、あなたは明確な重複排除機能を使用することができます。
    注:select句を使用して、カラム名の前に明確な。
select deptno from emp;    查询员工表中的所有部门编号
查看员工表中有哪些部门,过滤重复数据
select distinct deptno from emp;
查询员工表中部门和职位
select deptno, job from emp;
查看每个部门的职位--去掉重复
select distinct deptno, job from emp;
公開された53元の記事 ウォン称賛36 ビュー2415

おすすめ

転載: blog.csdn.net/qq_44458489/article/details/104671850