Oracleにおけるscottテーブル構造と簡単なクエリの実例分析


本明細書の例は、Oracleにおけるscottテーブル構造と簡単なクエリの方法を説明する。皆さんの参考にしてください。具体的な分析は以下の通りです。
1、scottユーザーのテーブルの構造
表示構造
descテーブル名//desc emp;
empテーブル:
SQL>desc emp;
名前は空ですか?タイプ
--------------------------
EMP NO NO NO NO NULL NUMBER(4)従業員番号
ENAME VRCHARR 2(10)従業員名
JOB VRCHARR 2(9)従業員職
MGR NUMBER(4)対応リード番号
HIREDATE DATE雇用日
SAL NUMBER(7、2)基本給
COMM NUMBER(7,2)ボーナス、コミッション
DEPTNO NUMBER(2)部門番号
dept表:
SQL>desc dept;
名前は空ですか?タイプ
--------------------------
DEPTNO NO NOT NULL NUMBER(2)部門番号
DNAME VRCHARR 2(14)部門名
LOC VRC HAR 2(13)部門の位置
salgrade表:
SQL>desc salgrade
名前は空ですか?タイプ
----------------------
GRADE NUMBER賃金等級
LOSAL NUMBERこの等級の最高賃金
HISAL NUMBERこのクラスの最高賃金
bonus表:
SQL>desc bonus
名前は空ですか?タイプ
--------------------------
ENAME VRCHARR 2(10)従業員名
JOB VRCHARR 2(9)従業員職
SAL NUMBER従業員給与
COMM NUMBER従業員ボーナス
2、簡単な検索
1.重複していない職位を照会する

select distinct job from emp;
2.年俸を調べて、別名を付けて、別名は単に引用符でくくらないでください。

select sal*12 [as] income from emp;

3.簡単なクエリーでは、クエリーのフィールドを「?124;」で接続することができます。

select empno ||','|| ename from emp;

sql文の文字列は単引用符で表します。
select'sの従業員番号は:'????????????;?;?;?;;という名前です。従業員情報from emp;
4.oracleでデータを書くとき、大文字と小文字を区別する

select * from emp where job ='CLERK';

従業員ではない従業員の情報を調べる。

select * from emp where job!='CLERK'; 
select * from emp where job<>'CLERK';
select * from emp where NOT job='CLERK';
5.BETWEEN…ANDが大きいのは以下に等しい。

select * from emp where sal between 1500 and 3000; 
逆もいいです

select * from emp where sal not between 1500 and 3000;
日付でもいいです

select * from emp where hiredate between '01-1  -1981' and '31-12  -81';
6.空IS(NOT)NULLかどうかを判断する

select * from emp where comm Is not null; 
select * from emp where not comm Is null;

7.INオペレータ

select * from emp where empno in (7521,7844,5555);
select * from emp where empno not in (7521,7844,5555);

NOT INについて
今INオペレータを使ったら、クエリ範囲にnullが存在します。クエリに影響がありません。

select * from emp where empno in (7521,7844,null);
今使っているのがNOT INの操作子です。もしクエリ範囲の中にnullがあれば、何の結果も返ってきません。

select * from emp where not empno in (7521,7844,null);
select * from emp where empno not in (7521,7844,null);
8.LIKE子文
マッチ記号:
マッチする文字:_0個
任意の複数文字にマッチします。%0、一つ、複数
すべての文字で「A」の先頭の従業員を検索します。

select * from emp where ename like 'A%';
第二文字は「A」の従業員を検索します。

select * from emp where ename like '_A%'; 
Aという文字が含まれている従業員を検索します。

select * from emp where ename like '%A%'; 
文字が含まれていない「A」の従業員を調べます。

select * from emp where not ename like '%A%'; 
select * from emp where ename not like '%A%';
LIKE'%はクエリのすべてのデータを表します。

select * from emp where empno like '%%'
9.データの並べ替え

order by    [ASC|DESC][,   [ASC|DESC]……];

order by子文は必ずwhere子文の後に、すべてのsql文の最後になければなりません。
並べ替えの場合は、複数の並べ替えフィールドを指定できます。
並べ替え方式は2種類あります。デフォルト(ASC)昇順、DESC(降順)
給料によって序列をつける

select * from emp order by sal desc;

まず給料順に並べて、雇用日順に並べます。

select * from emp order by sal desc,hiredate;

ここで述べたように、みんなのOracleプログラムの設計に役に立ちます。