I.1 Lanjutan Mengenai Menampilkan Record Tertentu
Didalam menampilkan record
adakalanya membutuhkan tambahan perintah yang dapat diberikan kepada perintah
SELECT .. FROM.
I.2 4.1 WHERE pada SELECT
Jika
ingin mencari sebuah atau sekelompok
data dari database, diperlukan satu atau lebih kondisi. dengan kata lain bila
kita memberikan suatu kondisi pada perintah SQL, maka hanya data – data
tertentu saja yang akan ditampilkan. Sebagai kata kuncinya adalah kata where yang disisipkan setelah menyebut
nama tablenya. Sintaksnya adalah :
SELECT nama_kolom FROM nama_tabel WHERE kondisi
WHERE sendiri dapat dijelaskan
sebagai : kolom <operator> <nilai>
Beberapa operator yang berlaku yaitu
:
Operator
|
Keterangan
|
=
|
sama dengan
|
<>
|
tidak sama
|
<
|
lebih kecil
|
<=
|
lebih kecil atau sama
|
>
|
lebih besar
|
>=
|
lebih besar atau sama
|
Contoh : Gaji pegawai yang
lebih besar dari 1000000
SQL > SELCT * FROM employee WHERE SALARY > 1000000 ;
4.2
JOIN
Pada Query dapat dilakukan antara
join dua buah tabel yang berbeda tapi dengan nilai recordnya harus sama. Join adalah teknik yang digunakan untuk
mengakses lebih dari satu tabel dan menggabungkan hasilnya.
Perhatikan
tabel EMPLOYEE dibawah ini :
SQL > SELECT SSN, FNAME , LNAME , DNUMBER
SSN FNAME LNAME
DNUMBER
21012 BAMBANG SUTRISNO
2
23112 BUDI SUDARSONO 2
34432 EKO PURJIANTO 4
Selanjutnya
bagaimana dapat ditampilkan nama Departement (DNAME ) dari setiap Employee?
Karena Nama Departement ada pada tabel DEPT, maka query berikut menampilkan
nama depertement tersebut.
SQL > SELECT SSN, FNAME , LNAME , DEPT.DNAME FROM employee,
dept WHERE employee.dnumber =
dept.dnumber;
SSN FNAME LNAME
DEPT.DNAME
21012 BAMBANG SUTRISNO
ACCOUNTING
23112 BUDI SUDARSONO ACCOUNTING
34432 EKO PURJIANTO SALES
Perhatikan
bahwa nama kolom dapat diberikan dalam format
‘<NamaTabel>.<NamaKolom>’.
I.2.1.1 AND, OR dan NOT
Untuk menggabungkan lebih dari satu kondisi,
diperlukan logical AND dan OR. Sedangkan untuk negasi, perlukan NOT. Sedangkan
untuk negasi, diperlukan NOT. Sebagai
contoh tampilkan Nama employee dengan gaji lebih kecil sama dengan
2000000 dan jenis kelamin 9 sex ) laki-laki ( L ).
SQL > SELECT * FROM EMPLOYEE WHERE SEX =
‘L’ AND SALARY < 2000000;
Catatan : Prioritas AND lebih kuat
dari OR, sehingga kondisi OR harus dipisahkan dalam kurung sebelum AND.
I.2.2 4.3 Lebih lanjut query dengan SQL
I.2.3 4.3.1 Operator Aritmatika
Yang termasuk dalam operator
aritmatika adalah tanda plus (+), minus (-), bagi (/), dan kali (*). Semua
perhitungan dapat dilakukan bila tipe datanya adalah number. Bila dilakukan
perhitungan secara bersamaan maka urutannya adalah : perkalian, pembagian,
penjumlahan dan pengurangan.
Contoh
perintah sql yang menggunakan operator aritmatika:
SQL > SELECT * FROM employee WHERE (salary
+ 500000) > 2000000 ;
I.2.3.2 Menemukan record dimana menggunakan nilai value null
Sebuah data dalam database dianggap
null bila salah satu kolom yang ada didalam tabel tidak terdapat datanya. Jadi
bila data tersebut bersifat null maka operator perbandingan bersifat false atau
data yang dipakai adalah isnull. Seperti pada contoh data dalam tabel gaji, ada
seorang pegawai yang mempunyai gaji null, maka untuk perintah SQLnya unutuk
mencari data pegawai tersebut ialah :
SQL> SELECT * FROM employee WHERE salary is null ;
Catatan : biala dalam buah kolom
terdapat nilai null maka tidak dapat digabungkan dengan menggunakan where
<kondisi1>= null OR <kondisi> = null
I.3 4.3.2 GROUP BY
GROUP BY adalah beberapa bagian dari
SELECT. Pada dasarnya Oracle mengelompokkan baris berdasarkan nilai distinct
yang terdapat didalam kolom tertentu. Tetapi dengan GROUP BY, dapat dilakukan
konjungsi dari kolom tersebut untuk
lebih lanjut membatasi dari pencarian baris tersebut.
Sintaksnya :
SELECT kolom
FROM NamaTabel
GROUP BY kolom
Contohnya :
SQL> SELECT SSN ,
AVG(SALARY)
2 FROM employee
3 GROUP BY SSN;
I.5 4.3.3 GROUP BY …… HAVING
HAVING berlaku untuk kelompok query
group by dan berfungsi sebagai WHERE.
Hanya group yang mempunyai kriteria tersebut yang akan diproses (
pada WHERE yang diproses adalah setiap
record dalam tabel ).
Sintaks :
SELECT kolom
FROM NamaTabel
GROUP BY kolom
HAVING kondisi
Contohnya :
SQL> SELECT SSN , AVG(SALARY)
2 FROM employee
3 GROUP BY SSN
4 HAVING AVG(SALARY) > 1000000 ;
I.7 4.3.4 LIKE dan NOT LIKE
Umumnya LIKE digunakan untuk
permintaan yang mencari suatu teks berdasarkan prefix (kata depan), sufix (kata
akhir) atau kata tengah. NOT LIKE digunakan sebagai negasi. Terdapat tanda ‘%’
menyerupai “wild character”, yaitu kata sembarangan. Jika tanda % terdiri dari
0,1 atau beberapa karakter maka tanda _ merepresentasikan persis satu huruf.
Selain itu terdapat tanda Concat (||) yang digunakan untuk menggabungkan dua
buah kolom yang tipe datanya karakter.
Contoh :
Menampilkan pegawai yang mempunyai
nama depan BUDI.
SQL> SELECT * FROM employee WHERE FNAME LIKE ‘BUDI’;
Menampilkan pegawai yang mempunyai
nama depan dimulai huruf B.
SQL> SELECT * FROM employee WHERE FNAME LIKE ‘B%’;
I.7.1.1.1.1.1.1
I.7.1.1.1.1.1.2
4.3.5 BETWEEN
dan NOT BETWEEN
BETWEEN
menyederhanakan pencarian “antara” (range), sedangkan untuk NOT BETWEEN
digunakan untuk mencari yang tidak ada dalam range tersebut.
Contoh :
SQL> SELECT * FROM employee WHERE salary
BETWEEN 2000000 AND 3000000 ;
SQL> SELECT * FROM employee WHERE salary
NOT BETWEEN 2000000 AND 3000000 ;
I.9 4.3.6 IN dan NOT IN
IN digunakan untuk mencari nilai dalam satu kelompok
nilai (daftar). Nilai dalam daftar terdiri atas satu atau lebih.
Bila ingin menegatifkan pertanyaan tersebut maka dapat menggunakan NOT IN.
Sebagai tambahan untuk mencari kata dalam huruf besar semua maupun kecil semua
dapat menggunakan fungsi (UPPER) dan (LOWER).
Syntagnya :
SELECT kolom1 ,
kolom2 …
FROM NamaTabel
WHERE kolom IN ( Nilai1,
Nilai2 , … )
Contoh :
Menampilkan Nama depan BUDI atau AGUS
SQL> SELECT SSN,FNAME ,LNAME FROM
employee WHERE
2 FNAME IN ( ‘BUDI’ , ‘AGUS’);
EXIST adan NOT EXIST
Fungsi EXIST
didalam SQL adalah untuk mengecek nilai dari korelasi yang dihasilkan
dari query. Exist memberikan nilai return TRUE, jika didalam query minimal
terdiri dari satu record, sedangkan NOT EXIST memberikan nilai TRUE, jika dalam
hasil query tidak satupun record dihasilkan.
Contoh
menampilkan pegawai tidak bekerja dalam suatu proyek.
SQL>SELECT
SSN,FNAME,LNAME
2 FROM EMPLOYEE
3 WHERE NOT EXIST
4 ( SELECT * FROM
WORKS_ON WHERE employee.ssn = works_on.ssn);
No comments:
Post a Comment
silahkan membaca dan berkomentar