Login sebagai user SCOTT
-- Menampilkan semua pegawai
SELECT empno, ename, sal, deptno
FROM emp;
-- menampilkan pegawai yg salary-nya diatas 2000
SELECT empno, ename, sal, deptno
FROM emp
WHERE sal > 2000;
-- Untuk mencari data karakter gunakan tanda kutip tunggal dan
case-sensitive
Contoh : Cari pegawai yang namanya 'ALLEN'
SELECT empno, ename
FROM emp
WHERE ename='Allen'; --> tidak akan ketemu
SELECT empno, ename
FROM emp
WHERE ename='ALLEN'; --> ketemu
-- Untuk data DATE itu format sensitive
Format defualt untuk DATE DD-MON-RR
(25-JAN-11)
Contoh : cari pegawai yang masuk kerja sebelum tgl 01 Januari 1981
SELECT empno, ename, hiredate
FROM emp
WHERE hiredate < '01-JAN-81';
SELECT empno, ename, hiredate
FROM emp
WHERE hiredate < '01/01/81'; --> error
-- Operator BETWEEN..AND..
Menampilkan data mulai dari batas bawah sampai batas atas yang ditentukan
Contoh:
Tampilkan pegawai yang salary-nya antara 1300 s.d 3000
SELECT empno, ename, sal
FROM emp
WHERE sal BETWEEN 1300 AND 3000;
EMPNO ENAME SAL
------- ---------- ----------
7499 ALLEN 1600
7566 JONES 2975
7698 BLAKE 2850
7782 CLARK 2450
7788 SCOTT 3000
7844 TURNER 1500
7902 FORD 3000
7934 MILLER 1300
-- Operator IN
Menampilkan data sesuai dengan yang disebutkan di dalam IN
Misal : Tampilkan pegawai2 yg salarynya 1250, 3000, 800
SELECT empno, ename, sal
FROM emp
WHERE sal IN(1250,800,3000);
EMPNO ENAME SAL
----- ---------- ----------
7369 SMITH 800
7521 WARD 1250
7654 MARTIN 1250
7788 SCOTT 3000
7902 FORD 3000
Tampilkan pegawai yang namanya SCOTT, JAMES dan CLARK
SELECT empno, ename, sal
FROM emp
WHERE ename IN('SCOTT','JAMES','CLARK');
EMPNO ENAME SAL
------ ---------- ----------
7782 CLARK 2450
7788 SCOTT 3000
7900 JAMES 950
-- Operator LIKE
mencari data berdasarkan format tertentu
format dibentuk dengan karakter under score "_" dan persen
"%"
dengan ketentuan :
_ : akan mengabaikan satu karakter
% : akan mengabaikan banyak
karakter
Contoh : Cari pegawai yang namanya diawali dengan 'S'
SELECT ename
FROM emp
WHERE ename LIKE 'S%';
Contoh : Cari pegawai yg huruf kedua adalah 'L'
SELECT ename
FROM emp
WHERE ename LIKE '_L%';
-- Operator IS NULL
Mencari data yang bernilai NULL
Contoh : Tampilkan pegawai yg komisi-nya (comm) tidak ada
SELECT ename, sal, comm
FROM emp
WHERE comm IS NULL;
Tampilkan pegawai yang tidak punya manager
SELECT ename,sal,mgr
FROM emp
WHERE mgr IS NULL;
-- Operator Logik
AND, OR dan NOT
Selama ini kondisi yang digunakan untuk menyeleksi data hanya satu. Jika
kondisi yg digunakan untuk menyeleksi data lebih dari satu maka gunakan
operator logik untuk menghubungkan antara kondisi satu dengan lainnya.
AND : data akan dimunculkan jika memenuhi kedua syarat
Misal : tampilkan pegawai yang ada di bagian (deptno) 30 dan salary-nya
kurang dari 2500
SELECT empno, ename, sal, deptno
FROM emp
WHERE deptno=30
AND
sal <
2500;
OR : data akan dimunculkan walaupun hanya memenuhi salah satu kondisi
Misal : Cari pegawai yang ada di bagian 10 atau pegawai yang jabatannya
(job) SALESMAN
SELECT ename, deptno, job
FROM emp
WHERE deptno=10
OR
job =
'SALESMAN';
-- Operator NOT
Menampilkan data yang berlawanan dengan kondisi
Misal : tampilkan pegawai yang salarynya berada diluar interval 1300 sampai
3000
SELECT empno, ename, sal
FROM emp
WHERE sal NOT BETWEEN 1300 AND 3000;
Tampilkan pegawai yang punya komisi
SELECT empno, ename, sal, comm
FROM emp
WHERE comm IS NOT NULL;
-- Mengurutkan data Menggunakan ORDER BY
SELECT kolom,kolom...
FROM tabel
WHERE kondisi
ORDER BY kolom
Mode urutan
ASC : kecil ke besar (default)
DESC: besar ke kecil
Selama ini data yg dimunculkan tidak terurut berdasarkan kolom tertentu.
Untuk mengurutkan data digunakan ORDER BY
Buatlah daftar gaji pegawai dengan diurutkan berdasarkan gajinya mulai dari
kecil ke besar
SELECT empno, ename, sal
FROM emp
ORDER BY sal;
SELECT empno, ename, sal
FROM emp
ORDER BY sal DESC;
-- Mengurutkan berdasarkan dua kolom
Buatlah daftar gaji pegawai dengan mengurutkan berdasarkan DEPTNO-nya
kemudianya pegawai2 yg dalam satu bagian (deptno) salary-nya diurutkan
mulai dari yg besar ke kecil
SELECT deptno, empno, ename, sal
FROM emp
ORDER BY deptno, sal DESC;
10 7839 KING 5000
10 7782 CLARK 2450
10 7934 MILLER 1300
20 7788 SCOTT 3000
20 7902 FORD 3000
20 7566 JONES 2975
20 7876 ADAMS 1100
20 7369 SMITH 800
30 7698 BLAKE 2850
30 7499 ALLEN 1600
30 7844 TURNER 1500
30 7654 MARTIN 1250
30 7521 WARD 1250
30 7900 JAMES 950
-- Mengurutkan berdasarkan kolom alias
SELECT ename AS Nama,
sal AS Gaji,
comm AS Komisi,
sal + NVL(comm,0) AS TOTAL
FROM emp
ORDER BY total;
No comments:
Post a Comment