Teks tersebut membahas tentang bahasa query SQL (Structured Query Language). SQL digunakan untuk mengakses dan memanipulasi data pada basis data relasional. Teks tersebut menjelaskan struktur dasar SQL yang terdiri dari klausa SELECT, FROM, dan WHERE serta contoh-contoh penggunaannya. Selain itu juga membahas tentang fungsi agregasi dan manipulasi data menggunakan SQL."
1. BAB 6
STRUCTURE QUERY LANGUAGE (SQL)
Tujuan Intruksional Khusus :
Mahasiswa mampu memahami dan melakukan operasi-
operasi manipulasi terhadap model basis data
relasional menggunakan sintak-sintak operasi bahasa
query SQL.
Bahasa formal yang diberikan pada bagian sebelumnya adalah merepresentasikan notasi
sederhana untuk melakukan query, sehingga untuk sistem basis data komersil
membutuhkan bahasa query yang lebih bersifat user friendly. Pada bagian ini akan
diberikan bahasa query yang banyak digunakan di pasar dunia, yaitu bahasa SQL. SQL
untuk mengkombinasikan konstruksi relasional aljabar dan relasional kalkulus. SQL
adalah sebagai bahasa query yang tidak hanya terbatas digunakan untuk query ke dalam
basis data, tetapi dapat digunakan untuk mendefinisikan struktur data, memodifikasi data,
dan menspesifikasikan security constraint. Atau dengan kata lain bahwa SQL, memiliki
kemampuan untuk Data Manipulation Language (DML) dan Data Definition Language
(DDL). Versi SQL yang digunakan pada modul ini, dan sekaligus yang banyak
digunakan di pasar dunia adalah versi SQL 1999.
6.1. Struktur Dasar
SQL adalah didasarkan pada himpunan operasi-operasi relasional yang telah dilakukan
modifikasi dan perbaikan. Struktur dasar SQL terdiri dari tiga klausa, yaitu SELECT,
FROM, dan WHERE :
SELECT berkorespondensi dengan operasi Projection pada relasional aljabar.
SELECT digunakan untuk menampilkan list atribut pada hasil query.
FROM berkorespondensi dengan operasi Cartesian product pada relasional aljabar.
FROM digunakan sebagai list suatu relasi (tabel) yang akan di proses dan di
evaluasi.
Structure Query Language (SQL) 56
2. WHERE berkorespondensi dengan operasi Selection pada relasional aljabar.
WHERE terdiri dari predikat yang meliputi atribut dalam relasi yang muncul pada
klausa FROM.
Secara umum tipikal query dengan menggunakan SQL memiliki bentuk sebagai berikut :
SELECT A1 , A2 ,..., An
FROM r1 , r2 ,..., rn
WHERE P
Dimana :
A1 , A2 ,..., An : merepresentasikan atribut
r1 , r2 ,..., rn : merepresentasikan relasi (tabel)
P : adalah predikat, dengan P = TRUE.
Sintak query SQL adalah ekuivalen dengan ekspresi relasional aljabar sebagai berikut :
π A1 , A2 ,..., An ( σ P ( r1 × r2 × ... × rn ) )
Untuk contoh-contoh yang diberikan pada modul ini, akan menggunakan skema basis
data supplier dan part yang diberikan pada gambar 6.1.
Tabel SUPPLIER
Structure Query Language (SQL) 57
3. Tabel PARTS
Tabel SHIPMENT
Gambar 6.1. Skema Basis Data Supplier dan Part
6.1.1. Klausa SELECT
Diberikan suatu query sederhana dengan menggunakan skema basis data pada gambar
6.1., yaitu menentukan nama-nama semua kota (CITY) yang terdapat pada tabel PARTS :
SELECT CITY
FROM PARTS
Hasil query perintah SQL diatas adalah suatu relasi (tabel), yaitu :
Structure Query Language (SQL) 58
4. Hasil query di atas akan mengambil semua tuples yang terdapat pada header (atribut)
CITY, sehingga duplikasi tuple terjadi. Untuk menghindari duplikasi yang terdapat pada
tuple dapat dilakukan dengan menambahkan DISTINCT setelah SELECT. Jika sintak
query di atas di rubah menjadi :
SELECT DISTINCT CITY
FROM PARTS
maka hasil query-nya menjadi :
Untuk menampilkan semua atribut yang terdapat pada relasi sebagai hasil query, dapat
digunakan simbol asterisk ‘*’. Klausa SELECT dapat juga berisi ekspresi aritmatika,
yang meliputi operasi +, -, *, dan /.
Misalkan diberikan sintak SQL :
SELECT COLOR, WEIGHT * 10
FROM PARTS
Sehingga akan diperoleh relasi sebagai hasil query sebagai berikut :
Structure Query Language (SQL) 59
5. 6.1.2. Klausa WHERE
Klausa WHERE digunakan untuk menentukan predikat atau kriteria yang harus di penuhi
suatu relasi sebagai hasil query. Klausa ini bersifat opsional, yaitu dapat menggunakan
klausa WHERE atau tidak. Jika tidak menggunakan klausa WHERE, maka query dilakukan
untuk semua tuples pada tabel yang disebutkan pada klausa FROM.
Misalkan, untuk menampilkan semua tuples SUPPLIER yang memiliki STATUS = 20.
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER
WHERE STATUS = 20
Hasil query perintah SQL diatas adalah :
Nilai predikat yang terdapat klausa WHERE, untuk tipe string harus diberikan tanda petik
tunggal, sedangkan untuk tipe numerik tidak menggunakan tanda petik tunggal.
Misalkan, untuk menampilkan semua tuples SUPPLIER yan berada di semarang :
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER
WHERE CITY = ‘Semarang’
Hasil query perintah SQL diatas adalah :
Structure Query Language (SQL) 60
6. Predikat pada klausa WHERE dapat dikombinasikan dengan operator relasi lainnya,
seperti <, <=, >, >=, <>, dan operator logika, seperti AND, OR, NOT.
Misalkan, untuk menampilkan semua SUPPLIER yang memiliki STATUS = 30, tetapi
berada pada kota(CITY) Yogyakarta :
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER
WHERE STATUS = 30 AND CITY = ‘Yogyakarta’
Hasil query perintah SQL diatas adalah :
Klausa WHERE dapat digunakan untuk melakukan query dengan predikat yang berbentuk
suatu range nilai tertentu, yaitu dengan menambahkan klausa BETWEEN.
Misalkan, untuk menampilkan SUPPLIER yang memiliki STATUS antara 10 sampai
dengan 30 :
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER
WHERE STATUS BETWEEN 20 AND 30
Hasil query perintah SQL diatas adalah :
Structure Query Language (SQL) 61
7. Untuk atribut yang bertipe string dapat dilakukan suatu pencarian dengan pola tertentu,
yaitu dengan memanfaatkan karakter ‘%’ atau ‘_’ (underscore) dan menambahkan klausa
LIKE pada klausa WHERE :
‘%’ untuk semua substring
‘_’ untuk semua karakter pada posisi yang sesuai.
Misalkan, untuk menampilkan semua tuples SUPPLIER yang kotanya (CITY) di awali
dengan huruf ‘S’ :
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER
WHERE STATUS LIKE ‘S%’
Hasil query perintah SQL diatas adalah :
Sedangkan untuk menampilkan semua SUPPLIER yang karakter kedua dari kota (CITY)
adalah karakter ‘o’ :
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER
WHERE STATUS LIKE ‘_o%’
Hasil query perintah SQL diatas adalah :
6.1.3. Klausa FROM
Klausa FROM digunakan untuk menentukan tabel yang akan dijadikan sebagai sumber
untuk pencarian data.
Dalam melakukan query tidak hanya terbatas pada satu tabel, tetapi sering kali
dibutuhkan untuk merelasikan beberapa tabel sekaligus. Hal ini dilakukan, karena atribut-
Structure Query Language (SQL) 62
8. atribut yang diharapkan sebagai hasil query tidak hanya terdapat pada satu tabel, tetapi
berada pada beberapa tabel.
Misalkan, untuk menampilkan semua SUPPLIER yang melakukan SHIPMENT dengan
jumlah kuantitasnya lebih besar 300 :
Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER, SHIPMENT
WHERE SUPPLIER.SCODE=SHIPMENT.SCODE
AND SHIPMENT.QTY > 300
Hasil query perintah SQL diatas adalah :
Dalam melakukan query untuk dua tabel atau lebih tidak dapat dilakukan sembarang.
Tabel-tabel yang digunakan harus memiliki keterhubungan. Pada contoh query di atas
keterhubungan diwakili oleh nilai yang sama pada atribut SCODE yang diwakili oleh
kedua tabel yang digunakan. Ekspresi SUPPLIER.SCODE adalah menunjukan nilai
SCODE yang berasal dari tabel SUPPLIER, sedangkan SHIPMENT.SCODE adalah
menunjukan nilai SCODE yang berasal dari tabel SHIPMENT.
Untuk menghindari ketidakjelasan atribut yang terlihat pada relasi sebagai hasil query,
dapat dilakukan dengan cara menyebutkan nama tabel yang terdapat pada klausa FROM.
Dan untuk menyederhanakan cara penulisan, dapat digunakan nama alias untuk tabel-
tabel yang terdapat pada klausa FROM.
Misalkan, untuk menampilkan nama-nama SUPPLIER yang melakukan SHIPMENT
dengan jumlah kuantitasnya lebih besar 300 :
Perintah SQL-nya adalah :
SELECT SU.SNAME
FROM SUPPLIER SU, SHIPMENT SH
WHERE SU.SCODE=SH.SCODE
Structure Query Language (SQL) 63
9. AND SH.QTY > 300
Hasil query perintah SQL diatas adalah :
Header (atribut) pada relasi sebagai hasil query dapat dilakukan perubahan, yaitu dengan
menambahkan klausa AS setelah nama atribut yang akan dilakukan perubahan namanya.
Misalkan, dari query sebelumnya akan dilakukan perubahan untuk atribut SNAME
menjadi NAMA_SUPPLIER :
Perintah SQL-nya adalah :
SELECT SU.SNAME AS NAMA_SUPPLIER
FROM SUPPLIER SU, SHIPMENT SH
WHERE SU.SCODE=SH.SCODE
AND SH.QTY > 300
Hasil query perintah SQL diatas adalah :
6.1.4. Pengurutan Hasil Query
Pada saat menggunakan ekspresi dasar SQL (SELECT, WHERE, dan FROM), hasil query
ditampilkan dengan urutan sesuai dengan urutan kronologis penyimpanan tabel yang
dilakukan query. Jika ingin menampilkan hasil query berdasarkan urutan atribut tertentu,
maka dapat dilakukan dengan menambahkan klausa ORDER BY. Default yang diberikan
klausa ORDER BY adalah urutan secara menial (ASC), tetapi untuk merubah menjadi
urutan secara menurun, dapat dilakukan dengan menambahkan klausa DESC setelah
nama atribut yang dilakukan pengurutan.
Misalkan, untuk melakukan pengurutan secara menurun terhadap SUPPLIER
berdasarkan STATUS-nya :
Structure Query Language (SQL) 64
10. Perintah SQL-nya adalah :
SELECT *
FROM SUPPLIER
ORDER BY STATUS DESC
Hasil query perintah SQL diatas adalah :
Klausa ORDER BY dapat juga dikombinasikan dengan klausa WHERE untuk melakukan
query.
Misalkan, untuk menampilkan semua nama-nama SUPPLIER yang STATUS-nya sama
dengan 30 dan hasil query-nya dilakukan pengurutan secara menurun :
Perintah SQL-nya adalah :
SELECT SNAME
FROM SUPPLIER
WHERE STATUS = 30
ORDER BY SNAME DESC
Hasil query perintah SQL diatas adalah :
6.2. Fungsi Agregasi
Dalam melakukan suatu query, terkadang dibutuhkan untuk melakukan perhitungan
jumlah tuples, total nilai suatu atribut, nilai atribut terbesar atau terkecil, dan menentukan
nilai rata-rata suatu atribut.
Untuk memenuhi kondisi-kondisi di atas, SQL sebagai bahasa query menyediakan
fungsi-fungsi agregasi sebagai berikut.
Structure Query Language (SQL) 65
11. AVG
Untuk memperoleh nilai rata-rata suatu atribut yang bertipe numerik.
MIN
Untuk memperoleh nilai terkecil suatu atribut yang bertipe numerik.
MAX
Untuk memperoleh nilai terbesar suatu atribut yang bertipe numerik.
SUM
Untuk memperoleh nilai total suatu atribut yang bertipe numerik.
COUNT
Untuk memperoleh nilai banyaknya tuples.
Untuk peggunaan fungsi-fungsi agregasi di atas, diberikan contoh-contoh penerapan
fungsi agregasi pada suatu query sebagai berikut:
Menghitung banyaknya tuples pada tabel SHIPMENT
Perintah SQL-nya adalah :
SELECT COUNT(*)
FROM SHIPMENT
Hasil query perintah SQL diatas adalah :
Menampilkan total berat (WEIGHT) untuk semua PARTS
Perintah SQL-nya adalah :
SELECT SUM(WEIGHT)
FROM PARTS
Hasil query perintah SQL diatas adalah :
Menghitung rata-rata kuantitas (QTY) untuk semua SHIPMENT
Perintah SQL-nya adalah :
SELECT AVG(QTY)
FROM SHIPMENT
Hasil query perintah SQL diatas adalah :
Structure Query Language (SQL) 66
12. Menentukan nilai STATUS yang terbesar untuk SUPPLIER
Perintah SQL-nya adalah :
SELECT MAX(STATUS)
FROM SUPPLIER
Hasil query perintah SQL diatas adalah :
Menentukan nilai kuantitas (QTY) yang terkecil untuk SHIPMENT
Perintah SQL-nya adalah :
SELECT MIN(QTY)
FROM SHIPMENT
Hasil query perintah SQL diatas adalah :
Fungsi agregasi dapat juga dikombinasikan dengan klausa GROUP BY, untuk
menyatakan pengelompokan tuple hasil query.
Misalkan, untuk menampilkan banyaknya tuple dan jumlah kuantitas (QTY) untuk
SHIPMENT yang dikelompokan berdasarkan PARTS (PCODE) dengan urutan secara
menaik:
Perintah SQL-nya adalah :
SELECT PCODE, COUNT(*), SUM(QTY)
FROM SHIPMENT
GROUP BY PCODE
ORDER BY PCODE
Hasil query perintah SQL diatas adalah :
Structure Query Language (SQL) 67
13. 6.3. Nilai NULL
Atribut-atribut yang terdapat pada suatu tabel belum tentu sudah memiliki nilai (data).
Atribut yang belum memiliki nilai, biasanya diisi dengan nilai khusus, yang disebut
NULL. Nilai NULL pada suatu query dapat diperlakukan secara khusus, yaitu dapat juga
diperlakukan untuk query menggunakan ekspresi SQL.
Misalkan, menampilkan atribut CITY dari tabel SUPPLIER yang masih kosong :
Perintah SQL-nya adalah :
SELECT DISTINCT SCODE
FROM SUPPLIER
WHERE CITY is NULL
Hasil query perintah SQL diatas adalah : Tidak menampilkan hasil apapun, karena semua
atribut CITY sudah diisi dengan data.
Dapat juga dilkakukan untuk menghitung banyaknya nama SUPPLIER yang STATUS-
nya sudah terisi (tidak kosong) :
Perintah SQL-nya adalah :
SELECT COUNT(*)
FROM SUPPLIER
WHERE STATUS is NOT NULL
Hasil query perintah SQL diatas adalah :
Structure Query Language (SQL) 68
14. Ekspresi SQL di atas akan memiliki hasil yang sama dengan ekspresi SQL berikut ini :
SELECT COUNT(SNAME)
FROM SUPPLIER
6.4. Manipulasi Data (DML)
Operasi-operasi manipulasi data terdiri dari penambahan tuple baru, pengubahan nilai
atribut, dan penghapusan tuple pada suatu tabel. SQL juga dilengkapi dengan sejumlah
ekspresi dan perintah untuk melakukan manipulasi data.
6.4.1. Penambahan Tuple (Record)
Sintak SQL untuk penambahan tuple baru ke suatu tabel adalah :
INSERT INTO t [ ( A1 , A2 ,..., An ) ]
VALUES (V1 , V2 ,..., Vn )
dimana :
t : nama relasi (tabel) yang akan dilakukan penambahan tuple
A1 , A2 ,..., An : nama-nama atribut yang akan di isi nilainya
V1 , V2 ,..., Vn : nilai-nilai yang akan diisikan pada atribut-atribut.
Nama atribut-atribut pada tabel dapat tidak dituliskan, jika akan mengisikan nilai ke
semua atribut dengan urutan atribut sesuai dengan pendefinisian struktur yang dilakukan
pada saat awal pembuatan tabel. Tetapi jika urutan atribut berbeda atau atribut yang akan
diisikan nilainya tidak pada semua atribut, maka nama-nama atribut yang akan di isi
nilainya harus dituliskan.
Misalkan, untuk menambahkan tuple pada tabel SUPPLIER :
Perintah SQL-nya adalah :
INSERT INTO SUPPLIER
VALUES ('S6','YOSHINTA',20,'Semarang')
Hasil query perintah SQL diatas adalah :
Structure Query Language (SQL) 69
15. tuple baru yang
ditambahkan pada
tabel SUPPLIER
Ekspresi perintah SQL di atas, dapat juga dituliskan menggunakan ekspresi SQL :
INSERT INTO SUPPLIER (SCODE,SNAME,STATUS,CITY)
VALUES ('S6','YOSHINTA',20,'Semarang')
Untuk nama atribut yang tidak disebutkan pada perintah INSERT, atribut-atribut
tersebut akan di isi dengan nilai NULL.
Misalkan, perintah SQL sebagai berikut :
INSERT INTO SUPPLIER (SCODE,SNAME,STATUS)
VALUES ('S7','MIRANTHI',20)
Hasil query perintah SQL diatas adalah :
nilai NULL atribut
CITY yang
ditambahkan pada
tabel SUPPLIER
6.4.2. Pengubahan Tuple (Record)
Sintak SQL untuk mengubah nilai atribut pada tuple dari sebuah tabel adalah :
UPDATE t
SET assignment
[ WHERE P ]
dimana :
Structure Query Language (SQL) 70
16. t adalah nama tabel yang akan dilakukan perubahan atribut pada suatu tuple
assignment adalah ekspresi nilai baru untuk suatu atribut yang akan dilakukan
perubahan
P adalah merupakan predikat untuk tuple yang akan dilakukan perubahan. Jika
klausa WHERE tidak digunakan, maka perubahan akan dilakukan pada semua
tuple pada tabel t .
Misalkan, untuk mengubah nilai atribut CITY untuk SUPPLIER dengan SCODE = ‘S6’ :
Perintah SQL-nya adalah :
UPDATE SUPPLIER
SET CITY = 'Purwodadi'
WHERE SCODE = ‘S6’
Hasil query perintah SQL diatas adalah :
nilai atribut CITY
yang di rubah
menjadi
‘Purwodadi’ pada
tabel SUPPLIER
Untuk melakukan perubahan semua nilai atribut CITY pada tabel SUPPLIER, yang di isi
dengan nilai ‘Purwodadi’, dilakukan dengan perintah SQL :
UPDATE SUPPLIER
SET CITY = 'Purwodadi'
6.4.3. Penghapusan Tuple (Record)
Sintak SQL untuk menghapus tuple pada suatu tabel adalah :
DELETE FROM t
[ WHERE P ]
dimana :
t adalah nama tabel yang akan dilakukan penghapusan tuple
Structure Query Language (SQL) 71
17. P adalah merupakan predikat untuk tuple yang akan dihapus. Jika klausa WHERE
tidak digunakan, maka penghapusan akan dilakukan pada semua tuple pada tabel
t.
Misalkan, untuk menghapus SUPPLIER dengan nama YOSHINTA :
Perintah SQL-nya adalah :
DELETE FROM SUPPLIER
WHERE SNAME = ‘YOSHINTA’
Hasil query perintah SQL diatas adalah : tuple dengan SNAME = YOSHINTA telah di
hapus dari tabel SUPPLIER.
Sedangkan, untuk menghapus semua tuple pada SUPPLIER dapat dilakukan dengan
perintah SQL :
DELETE FROM SUPPLIER
6.5. Transaksi
Suatu transaksi terdiri dari sekumpulan perintah-perintah query dan/atau operasi
manipulasi data. Perintah-perintah manipulasi data belum di simpan / di tulis pada disk,
jika belum diberikan perintah transaksi.
Perintah transaksi yang harus digunakan sebagai akhir transaksi adalah :
commit [ work ]
Operasi-operasi manipulasi data yang telah dilakukan, akan di simpan secara
permanen ke dalam disk dan transaksi dinyatakan selesai. Setelah transaksi
commit, secara otomatis transaksi baru di mulai.
rollback [ work ]
Operasi-operasi manipulasi data yang belum dilakukan commit akan dibatalkan
(tidak disimpan secara permanen ke dalam disk). Sehingga kondisi basis data
yang di simpan pada disk tidak akan mengalami perubahan, seperti sebelum
transaksi rollback di eksekusi.
Work pada perintah transaksi commit dan rollback bersifat opsional dan tidak
memberikan pengaruh terhadap makna kedua perintah transaksi tersebut.
Structure Query Language (SQL) 72
18. 6.6. Data Definition Language (DDL)
DDL adalah perintah-perintah untuk mendefinisikan objek-objek basis data, dimana tidak
hanya sekumpulan relasi (tabel), tetapi juga tentang informasi setiap tabel, yaitu meliputi
sebagai berikut :
Skema untuk setiap tabel
Domain nilai untuk setiap atribut
Integritas constraints
Indek untuk setiap tabel
Informasi security dan authorization untuk setiap tabel
Struktur fisik penyimpanan untuk setiap tabel pada disk.
Sintak SQL untuk membuat tabel di dalam basis data adalah :
CREATE TABLE t [ ( A1 D1 , A2 D2 ,..., An Dn ) ]
dimana :
t : adalah nama tabel
A1 , A2 ,..., An : adalah nama-nama atribut yang dimiliki oleh tabel t
D1 , D2 ,..., Dn : adalah domain nilai masing-masing atribut yang ditentukan
berdasarkan tipe data
Untuk domain tipe data meliputi sebagai berikut :
char(n)
Tipe string dengan panjang tetap sebesar n karakter (jika panjang karakter yang
diisikan kurang dari n, maka sisanya di isi dengan spasi)
varchar(n)
Tipe string dengan panjang fleksibel, tetapi maksimal sebanyak n karakter.
int atau integer
Tipe integer 2 byte.
smallint
Tipe integer 1 byte.
real, double, precision
Tipe pecahan decimal floating point.
float(n)
Tipe pecahan decimal floating point dengan presisi n digit.
Structure Query Language (SQL) 73
19. date
Tipe tanggal (terdiri 4 digit tahun, bulan, dan tanggal).
time
Tipe waktu (terdiri dari jam, menit, dan detik)
Misalkan, untuk membuat tabel SUPPLIER :
Perintah SQL-nya adalah :
CREATE TABLE SUPPLIER
( SCODE char(3),
SNAME varchar(20),
STATUS int,
CITY varchar (15))
Dalam melakukan pembuatan tabel dapat juga dilakukan untuk menambahkan suatu
indek primer berdasarkan atribut tertentu, yaitu dengan cara menggunakan klausa
PRIMARY KEY.
Misalkan, pada tabel SUPPLIER di atas memiliki indek berdasarakan atribut SCODE :
Perintah SQL-nya adalah :
CREATE TABLE SUPPLIER
( SCODE char(3) NOT NULL,
SNAME varchar(20),
STATUS int,
CITY varchar (15),
PRIMARY KEY (SCODE))
Jika suatu tabel memiliki indek secara komposit (gabungan), maka dilakukan dengan cara
menuliskan semua atribut pada kalusa PRIMARY KEY.
Misalkan pada tabel SUPPLIER memiliki indek SCODE dan SNAME :
Perintah SQL-nya adalah :
CREATE TABLE SUPPLIER
( SCODE char(3) NOT NULL,
SNAME varchar(20) NOT NULL,
STATUS int,
CITY varchar (15),
Structure Query Language (SQL) 74
20. PRIMARY KEY (SCODE,SNAME))
Keberadaan tabel yang telah dibuat dapat dibatalkan atau di hapus dengan menggunakan
perintah SQL :
DROP TABLE t
t adalah nama tabel yang di hapus. Misalkan tabel SUPPLIER akan dihapus :
Perintah SQL-nya adalah :
DROP TABLE SUPPLIER
Struktur tabel yang telah dibut dapat dilakukan perubahan, tanpa harus menghapus tabel
dan kemudian membangunnya kembali dengan definisi struktur yang baru. Perubahan
struktur menjadi lebih praktis, dan juga tidak mengakibatkan hilangnya data yang sudah
ada pada tabel (jika data sudah ada).
Perubahan struktur terdiri dari :
Penambahan atribut
Sintak SQL :
ALTER TABLE t ADD A D
t adalah nama tabel yang dilakukan perubahan, A adalah nama atribut, dan D adalah
tipe data untuk atribut A .
Penghapusan atribut
Sintak SQL :
ALTER TABLE t DROP A
t adalah nama tabel yang dilakukan perubahan, dan A adalah nama atribut.
Misalkan, untuk menambahkan atribut DATE_OF_BORN pada tabel SUPPLIER :
Perintah SQL-nya adalah :
ALTER TABLE SUPPLIER ADD DATE_OF_BORN date
Dan untuk menghapus atribut DATE_OF_BORN pada tabel SUPPLIER, dilakukan
dengan perintah SQL :
ALTER TABLE SUPPLIER DROP DATE_OF_BORN
Structure Query Language (SQL) 75
21. 6.7. SOAL-SOAL LATIHAN
Dari skema yang diberikan pada gambar 5.9, maka lakukanlah operasi manipulasi data
menggunakan perintah SQL untuk soal-soal latihan berikut ini :
1. Menampilkan nama pengarang dan kategori yang identitas kategorinya adalah 1
2. Menampilkan judul, pengarang dan harga buku yang dipromosikan
3. Menampilkan judul, pengarang dan harga buku yang judul bukunya memiliki
keyword XML
4. Menampilkan judul, pengarang dan harga buku yang pengarang bukunya memiliki
keyword JEFF
5. Menampilkan nama pelanggan yang melakukan order dengan pembayaran
menggunakan Credit Card
6. Menampilkan nama customer yang melakukan orders satu judul buku dengan jumlah
lebih besar sama dengan 2
7. Menampilkan nama dan alamat customer yang melakukan orders dengan alamat
semarang
8. Menghitung banyaknya jumlah judul buku yang memiliki keyword XML
9. Menampilkan judul dan pengarang buku yang memiliki kategori JSP
10. Menampilkan judul dan pengarang buku yang memiliki kategori JSP yang diurutkan
secara menurun berdasarkan pengarang
11. Menampilkan nama customer yang tidak pernah melakukan orders
12. Menampilkan judul dan harga buku yang memiliki keyword JAVA dan harganya
lebih besar sama dengan 30
Structure Query Language (SQL) 76