Professional Documents
Culture Documents
Yaitu sekumpulan operasi yang digunakan untuk melakukan proses manipulasi data dalam rangka
untuk mendapatkan informasi yang diperlukan dari database. Ajabar relasional Secara umum dibagi
menjadi 2:
operasi yang dikembangkan secara khusus untuk database relational. (SELECT, PROJECT dan
JOIN)
Istilah Relasi, dalam bahasan ini dipergunakan untuk penamaan tabel beserta datanya baik yang
murni maupun yang sudah dilakukan modifikasi dengan operasi-operasi aljabar relasional.
Notasi
Jika <daftar attribut> tidak menyertakan primary key, maka dimungkinkan akan terjadi duplikasi.
Duplikasi ini akan dihilangkan sehingga hanya sekali yang muncul.
Contoh. Untuk memilih atribut JenisKel dan Gaji dari tabel Pegawai:
Urutan Operasi
Sebuah operasi bisa dituliskan dalam bentuk beberapa ekspresi aljabar relasional dengan
mengelompokkan untuk tiap-tiap operasi dan memberi nama
Mengambil informasi nama depan, nama belakang dan gaji dari pegawai-pegawai yang bekerja di
departemen nomor 5
(tabel pegawai dipilah dulu hanya dengan mengambil yg memenuhi dep_nomor=5 dan disimpan
dalam relasi dengan nama PEG_DEP5)
(kemudian setelah itu, relasi PEG_DEP5 dipilah hanya diambil kolom-kolom nmDepan, nmBlk dan
gaji)
Untuk mengubah nama attribut dari sebuah relasi yang merupakan hasil dari operasi aljabar
relasional, ditulis nama atribut baru dalam huruf besar
FROM table_source
[WHERE search_condition]
[GROUP BY group_by_expression]
[HAVING search_condition]
DESC] ]
SELECT, INTO, FROM, WHERE, GROUP BY, HAVING DAN ORDER BY à kata kunci
(keyword) yang harus disertakan jika kita membutuhkannya di dalam pengolahan data
Kurung kotak [ ] à bagian tersebut boleh disertakan atau tidak, tergantung dari kebutuhan
Urutan syntax untuk kata kunci (keyword), misalnya ORDER BY terletak di setelah GROUP BY,
menunjukkan bahwa keyword harus disusun berdasarkan urutan tersebut, jika keduanya disertakan,
ORDER BY tidak boleh ditulis mendahului GROUP BY
Data base
select_list
adalah kolom-kolom yang didefinisikan sebagai hasil dari proses query
Kolom-kolom yang dipilih berupa ekspresi, yang mana ekspresi tersebut bisa berupa:
• konstanta
• Antara kolom satu dengan lainnya dipisahkan dengan tanda koma (,). Jika merupakan field tabel,
maka judul kolom adalah nama field tersebut. Selain itu, jika tidak diberi nama, judul kolom akan kosong.
Contoh.
Yang terdapat nilai konstanta, menampilkan nilai 1 untuk setiap baris pada kolom pertama dari
query sebelumnya
Yang terdapat ekspresi fungsi dari query sebelumnya, yakni menampilkan nama dalam bentuk
huruf kapital:
Kolom-kolom yang dipilih bisa diberi judul tertentu sesuai dengan keinginan kita.
Ini merupakan cara standar yang dipakai pada banyak sistem database.
Menyertakan nama tabel atau aliasJika kita memasukkan sebuah field tabel di dalam sebuah ekspresi
kolom, kita bisa menyertakan nama tabel Sebelum nama fieldnya yang dipisah dengan tanda
titik:nama_tabel.nama_field
Untuk apa?
Untuk membedakan kepemilikan sebuah field di dalam query yang menyertakan lebih dari satu
tabel. Sebab bisa saja terjadi dua buah tabel memiliki nama field yang sama
Contoh
untuk sebuah contoh query sebelumnya, jika disertakan nama tabel adalah sbb:
SELECT
NamaKapital=UPPER(Anggota.nama),
Anggota.alamat
FROM Anggota
DISTINCT
Digunakan apabila kita ingin menghilangkan duplikasi dari hasil query (hasil query yang sama
ditampilkan sekali)
FROM table_source
Contoh
untuk menampilkan nomor-nomor anggota yang sedang meminjam atau belum mengembalikan:
NoAnggota
ID001
ID002
ID001
ID003
padahasilquerytersebutterdapatNoAnggotayangditampilkanlebihdarisekali.Untuk
meniadakanduplikasi,querynyaadalah sbb:
NoAnggota
ID001
ID002
ID003
TABLE_SOURCE
Adalah sumber data dari query
Tabel yang disertakan bisa lebih dari satu. Jika lebih dari satu, dalam penulisan dipisah dengan
koma.
Pemberian nama lain (alias)
Sebuah tabel bisa diberi nama lain (alias), yang mana hal ini digunakan untuk memperpendek
nama atau untuk membedakan field jika sebuah query mengambil tabel yang sama lebih dari satu
Alias yang dipergunakan untuk Query dengan tabel sumber data yang sama. Query untuk mencari
Anggota yang tanggal lahirnya sama:
Kasus diatas diperlukan dua buah alias untuk sebuah tabel yang sama, karena untuk proses tersebut,
diperlukan pembandingan terhadap tabel yang sama. Oleh karena itu, tabel anggota perlu dianggap
sebagai 2 sumber data yang berbeda dengan memberi nama alias ang1 dan ang2 yang kemudian
dibandingkan mana saja yang memiliki field tanggal lahir yang sama.
WHERE
Klausa ini biasanya digunakan untuk:
Penerapannya adalah dengan memasukkan suatu ekspresi kondisi setelah klausa WHERE:
WHERE <kondisi>
Jika <kondisi> lebih dari satu, maka bisa ditambahkan dengan AND atau OR (sesuai dengan
kebutuhan).
Where untuk filter atau pencarian data di dalam SQL Server bisa dalam beberapa bentuk ekspresi,
yakni:
operasi pembandingan
Operasi:
Khusus untuk pembanding IS, nilai yang diisikan adalah null, yakni sebuah nilai yang belum
berisi nilai.
nilai null tidak sama dengan nilai 0 pada tipe numerik ataupun string kosong pada tipe string
Contoh.
Control.
"%pemrograman%"
Nilai-nilai yang diisikan, maksudnya kita sendiri yang mengisikan nilai-nilai tersebut di dalam
query kita.
Contoh.
menampilkan koleksi yang jenisnya buku dan majalah (idTipeKoleksi=1 atau 2):
menampilkan anggota yang selain mahasiswa atau dosen (idJenisAnggota selain 2 dan 3)
Query tunggal, yakni nilai-nilai yang digunakan sebagai pembanding diambil dari sebuah query
tunggal yang hasilnya hanya satu kolom saja.
Contoh.
Jika kita mengambil informasi dari lebih dari sebuah tabel, maka kita perlu menambahkan
kondisi untuk relasi antara kedua tabel tersebut.
Pada dasarnya mirip dengan filter, tapi fungsinya digunakan untuk merelasikan antara tabel-tabel
yang diambil informasinya.
Contoh.
idKoleksi dan judul bisa diambil dari tabel koleksi. Tetapi, di tabel koleksi tidak terdapat field
nama pengarang. Yang ada hanya idPengarang. Oleh sebab itu, supaya bisa menampilkan
informasi yang akurat, perlu direlasikan antara tabel Koleksi dg tabel Pengarang.
WHERE idPengarang=id
tabel Pengarang. Tanpa relasi ini, hasil query akan menampilkan seluruh pasangan baris data
Koleksi di tiap baris Pengarang, yg tentu saja bukan informasi yang benar.
Jika ada nama field yang sama dari tabel yang disertakan, maka sebelum nama field, berikan
nama tabel diikuti sebuah titik (.)
Pengarang.Nama
WHERE Koleksi.idPengarang=Pengarang.id
Contoh.
menampilkan daftar idKoleksi, judul koleksi dan harganya yang dipinjam dg nomor anggota:
551, diurutkan berdasarkan judul koleksi:
WHERE pj.idkoleksi=kl.idkoleksi
AND pj.idAnggota=ag.id
ORDER BY kl.judul
FUNGSI-FUNGSI AGREGATE
Yaitu fungsi-fungsi yang hasilnya diambil dari proses tiap baris pada tabel.
Proses tersebut akan mengolah nilai sebuah field atau lebih mulai baris pertama sampai seluruh
baris
Contoh.
SELECT MIN(year(TglLahir))
FROM anggota
Yang penting untuk diperhatikan, kolom-kolom yang disertakan setelah GROUP BY harus sama
dengan kolom-kolom yang dipilih pada setelah klausa SELECT yg selain fungsi AGGREGATE
Contoh.
GROUP BY JK
untuk menampilkan rata-rata harga koleksi per kode penerbit
FROM koleksi
GROUP BY idPenerbit
HAVING <kondisiAgregate>
Jika untuk filter query biasa kita menggunakan klause where, maka klausa having digunakan
untuk filter fungsi-fungsi aggregate.
Conto.
untuk menampilkan jumlah buku per kode penerbit, tetapi hanya yang jumlahnya >10 saja yang
ditampilkan.
SQL JOIN
Contoh Data:
Tabel Mahasiswa
Tabel Dosen:
CROSS JOIN
Hasil query dengan cross join merupakan hasil gabungan tiap baris pada masing-masing tabel.
INNER JOIN
Hasil query dengan inner join hanya menampilkan baris-baris yang terdapat relasi antara
dua buah tabel.
Menampilkan seluruh baris pada tabel yang disebut pada bagian kanan, tetapi menampilkan nilai
null untuk setiap kolom yang tidak terdapat relasinya pada tabel sisi kiri