BAB 6                   STRUCTURE QUERY LANGUAGE (SQL)       Tujuan Intruksional Khusus :       Mahasiswa mampu memahami d...
      WHERE berkorespondensi dengan operasi Selection pada relasional aljabar.            WHERE terdiri dari predikat yan...
Tabel PARTS                                    Tabel SHIPMENT                    Gambar 6.1. Skema Basis Data Supplier dan...
Hasil query di atas akan mengambil semua tuples yang terdapat pada header (atribut)CITY, sehingga duplikasi tuple terjadi....
6.1.2. Klausa WHEREKlausa WHERE digunakan untuk menentukan predikat atau kriteria yang harus di penuhisuatu relasi sebagai...
Predikat pada klausa WHERE dapat dikombinasikan dengan operator relasi lainnya,seperti <, <=, >, >=, <>, dan operator logi...
Untuk atribut yang bertipe string dapat dilakukan suatu pencarian dengan pola tertentu,yaitu dengan memanfaatkan karakter ...
atribut yang diharapkan sebagai hasil query tidak hanya terdapat pada satu tabel, tetapiberada pada beberapa tabel.Misalka...
AND SH.QTY > 300Hasil query perintah SQL diatas adalah :Header (atribut) pada relasi sebagai hasil query dapat dilakukan p...
Perintah SQL-nya adalah :                SELECT *                FROM SUPPLIER                ORDER BY STATUS DESCHasil qu...
   AVG       Untuk memperoleh nilai rata-rata suatu atribut yang bertipe numerik.      MIN       Untuk memperoleh nilai ...
   Menentukan nilai STATUS yang terbesar untuk SUPPLIER       Perintah SQL-nya adalah :              SELECT MAX(STATUS)  ...
6.3. Nilai NULLAtribut-atribut yang terdapat pada suatu tabel belum tentu sudah memiliki nilai (data).Atribut yang belum m...
Ekspresi SQL di atas akan memiliki hasil yang sama dengan ekspresi SQL berikut ini :                 SELECT COUNT(SNAME)  ...
tuple baru yang                                                            ditambahkan pada                               ...
   t adalah nama tabel yang akan dilakukan perubahan atribut pada suatu tuple      assignment adalah ekspresi nilai baru...
    P adalah merupakan predikat untuk tuple yang akan dihapus. Jika klausa WHERE       tidak digunakan, maka penghapusan ...
6.6. Data Definition Language (DDL)DDL adalah perintah-perintah untuk mendefinisikan objek-objek basis data, dimana tidakh...
   date       Tipe tanggal (terdiri 4 digit tahun, bulan, dan tanggal).      time       Tipe waktu (terdiri dari jam, me...
PRIMARY KEY (SCODE,SNAME))Keberadaan tabel yang telah dibuat dapat dibatalkan atau di hapus dengan menggunakanperintah SQL...
6.7. SOAL-SOAL LATIHANDari skema yang diberikan pada gambar 5.9, maka lakukanlah operasi manipulasi datamenggunakan perint...
Upcoming SlideShare
Loading in …5
×

Bab 6. SQL

3,602 views

Published on

Published in: Technology
3 Comments
5 Likes
Statistics
Notes
  • bener gan........ini namanya sungguh terlaluuuuu
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • hahhaa
    kalo ngeshare sekalian lah di upload ulang di mediafire, IDWS atau apalah biar sekalian di shared juga linknya dan dapat dimiliki oleh banyak orang filenya biar ilmunya lebih bermanfaat

    jgn tanggung'lah kalo mau ngeshare
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • haaa..... .di lock fungsi downloadnya .
    hemmmm.... ??????
    Ngapain ditaruh dinternet.. sebaiknya diletakkan kembali ke hardisk saja...
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
3,602
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
0
Comments
3
Likes
5
Embeds 0
No embeds

No notes for slide

Bab 6. SQL

  1. 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 notasisederhana untuk melakukan query, sehingga untuk sistem basis data komersilmembutuhkan bahasa query yang lebih bersifat user friendly. Pada bagian ini akandiberikan bahasa query yang banyak digunakan di pasar dunia, yaitu bahasa SQL. SQLuntuk mengkombinasikan konstruksi relasional aljabar dan relasional kalkulus. SQLadalah sebagai bahasa query yang tidak hanya terbatas digunakan untuk query ke dalambasis data, tetapi dapat digunakan untuk mendefinisikan struktur data, memodifikasi data,dan menspesifikasikan security constraint. Atau dengan kata lain bahwa SQL, memilikikemampuan untuk Data Manipulation Language (DML) dan Data Definition Language(DDL). Versi SQL yang digunakan pada modul ini, dan sekaligus yang banyakdigunakan di pasar dunia adalah versi SQL 1999.6.1. Struktur DasarSQL adalah didasarkan pada himpunan operasi-operasi relasional yang telah dilakukanmodifikasi 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. 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 PDimana :A1 , A2 ,..., An : merepresentasikan atributr1 , 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 basisdata supplier dan part yang diberikan pada gambar 6.1. Tabel SUPPLIERStructure Query Language (SQL) 57
  3. 3. Tabel PARTS Tabel SHIPMENT Gambar 6.1. Skema Basis Data Supplier dan Part6.1.1. Klausa SELECTDiberikan suatu query sederhana dengan menggunakan skema basis data pada gambar6.1., yaitu menentukan nama-nama semua kota (CITY) yang terdapat pada tabel PARTS : SELECT CITY FROM PARTSHasil query perintah SQL diatas adalah suatu relasi (tabel), yaitu :Structure Query Language (SQL) 58
  4. 4. Hasil query di atas akan mengambil semua tuples yang terdapat pada header (atribut)CITY, sehingga duplikasi tuple terjadi. Untuk menghindari duplikasi yang terdapat padatuple dapat dilakukan dengan menambahkan DISTINCT setelah SELECT. Jika sintakquery di atas di rubah menjadi : SELECT DISTINCT CITY FROM PARTSmaka hasil query-nya menjadi :Untuk menampilkan semua atribut yang terdapat pada relasi sebagai hasil query, dapatdigunakan simbol asterisk ‘*’. Klausa SELECT dapat juga berisi ekspresi aritmatika,yang meliputi operasi +, -, *, dan /.Misalkan diberikan sintak SQL : SELECT COLOR, WEIGHT * 10 FROM PARTSSehingga akan diperoleh relasi sebagai hasil query sebagai berikut :Structure Query Language (SQL) 59
  5. 5. 6.1.2. Klausa WHEREKlausa WHERE digunakan untuk menentukan predikat atau kriteria yang harus di penuhisuatu relasi sebagai hasil query. Klausa ini bersifat opsional, yaitu dapat menggunakanklausa WHERE atau tidak. Jika tidak menggunakan klausa WHERE, maka query dilakukanuntuk 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 = 20Hasil query perintah SQL diatas adalah :Nilai predikat yang terdapat klausa WHERE, untuk tipe string harus diberikan tanda petiktunggal, 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. 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, tetapiberada 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 berbentuksuatu range nilai tertentu, yaitu dengan menambahkan klausa BETWEEN.Misalkan, untuk menampilkan SUPPLIER yang memiliki STATUS antara 10 sampaidengan 30 :Perintah SQL-nya adalah : SELECT * FROM SUPPLIER WHERE STATUS BETWEEN 20 AND 30Hasil query perintah SQL diatas adalah :Structure Query Language (SQL) 61
  7. 7. Untuk atribut yang bertipe string dapat dilakukan suatu pencarian dengan pola tertentu,yaitu dengan memanfaatkan karakter ‘%’ atau ‘_’ (underscore) dan menambahkan klausaLIKE pada klausa WHERE :  ‘%’ untuk semua substring  ‘_’ untuk semua karakter pada posisi yang sesuai.Misalkan, untuk menampilkan semua tuples SUPPLIER yang kotanya (CITY) di awalidengan 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 FROMKlausa FROM digunakan untuk menentukan tabel yang akan dijadikan sebagai sumberuntuk pencarian data.Dalam melakukan query tidak hanya terbatas pada satu tabel, tetapi sering kalidibutuhkan untuk merelasikan beberapa tabel sekaligus. Hal ini dilakukan, karena atribut-Structure Query Language (SQL) 62
  8. 8. atribut yang diharapkan sebagai hasil query tidak hanya terdapat pada satu tabel, tetapiberada pada beberapa tabel.Misalkan, untuk menampilkan semua SUPPLIER yang melakukan SHIPMENT denganjumlah kuantitasnya lebih besar 300 :Perintah SQL-nya adalah : SELECT * FROM SUPPLIER, SHIPMENT WHERE SUPPLIER.SCODE=SHIPMENT.SCODE AND SHIPMENT.QTY > 300Hasil 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 atasketerhubungan diwakili oleh nilai yang sama pada atribut SCODE yang diwakili olehkedua tabel yang digunakan. Ekspresi SUPPLIER.SCODE adalah menunjukan nilaiSCODE yang berasal dari tabel SUPPLIER, sedangkan SHIPMENT.SCODE adalahmenunjukan 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 SHIPMENTdengan jumlah kuantitasnya lebih besar 300 :Perintah SQL-nya adalah : SELECT SU.SNAME FROM SUPPLIER SU, SHIPMENT SH WHERE SU.SCODE=SH.SCODEStructure Query Language (SQL) 63
  9. 9. AND SH.QTY > 300Hasil query perintah SQL diatas adalah :Header (atribut) pada relasi sebagai hasil query dapat dilakukan perubahan, yaitu denganmenambahkan klausa AS setelah nama atribut yang akan dilakukan perubahan namanya.Misalkan, dari query sebelumnya akan dilakukan perubahan untuk atribut SNAMEmenjadi 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 > 300Hasil query perintah SQL diatas adalah :6.1.4. Pengurutan Hasil QueryPada saat menggunakan ekspresi dasar SQL (SELECT, WHERE, dan FROM), hasil queryditampilkan dengan urutan sesuai dengan urutan kronologis penyimpanan tabel yangdilakukan query. Jika ingin menampilkan hasil query berdasarkan urutan atribut tertentu,maka dapat dilakukan dengan menambahkan klausa ORDER BY. Default yang diberikanklausa ORDER BY adalah urutan secara menial (ASC), tetapi untuk merubah menjadiurutan secara menurun, dapat dilakukan dengan menambahkan klausa DESC setelahnama atribut yang dilakukan pengurutan.Misalkan, untuk melakukan pengurutan secara menurun terhadap SUPPLIERberdasarkan STATUS-nya :Structure Query Language (SQL) 64
  10. 10. Perintah SQL-nya adalah : SELECT * FROM SUPPLIER ORDER BY STATUS DESCHasil query perintah SQL diatas adalah :Klausa ORDER BY dapat juga dikombinasikan dengan klausa WHERE untuk melakukanquery.Misalkan, untuk menampilkan semua nama-nama SUPPLIER yang STATUS-nya samadengan 30 dan hasil query-nya dilakukan pengurutan secara menurun :Perintah SQL-nya adalah : SELECT SNAME FROM SUPPLIER WHERE STATUS = 30 ORDER BY SNAME DESCHasil query perintah SQL diatas adalah :6.2. Fungsi AgregasiDalam melakukan suatu query, terkadang dibutuhkan untuk melakukan perhitunganjumlah tuples, total nilai suatu atribut, nilai atribut terbesar atau terkecil, dan menentukannilai rata-rata suatu atribut.Untuk memenuhi kondisi-kondisi di atas, SQL sebagai bahasa query menyediakanfungsi-fungsi agregasi sebagai berikut.Structure Query Language (SQL) 65
  11. 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 penerapanfungsi 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. 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, untukmenyatakan pengelompokan tuple hasil query.Misalkan, untuk menampilkan banyaknya tuple dan jumlah kuantitas (QTY) untukSHIPMENT yang dikelompokan berdasarkan PARTS (PCODE) dengan urutan secaramenaik:Perintah SQL-nya adalah : SELECT PCODE, COUNT(*), SUM(QTY) FROM SHIPMENT GROUP BY PCODE ORDER BY PCODEHasil query perintah SQL diatas adalah :Structure Query Language (SQL) 67
  13. 13. 6.3. Nilai NULLAtribut-atribut yang terdapat pada suatu tabel belum tentu sudah memiliki nilai (data).Atribut yang belum memiliki nilai, biasanya diisi dengan nilai khusus, yang disebutNULL. Nilai NULL pada suatu query dapat diperlakukan secara khusus, yaitu dapat jugadiperlakukan 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 NULLHasil query perintah SQL diatas adalah : Tidak menampilkan hasil apapun, karena semuaatribut 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 NULLHasil query perintah SQL diatas adalah :Structure Query Language (SQL) 68
  14. 14. Ekspresi SQL di atas akan memiliki hasil yang sama dengan ekspresi SQL berikut ini : SELECT COUNT(SNAME) FROM SUPPLIER6.4. Manipulasi Data (DML)Operasi-operasi manipulasi data terdiri dari penambahan tuple baru, pengubahan nilaiatribut, dan penghapusan tuple pada suatu tabel. SQL juga dilengkapi dengan sejumlahekspresi 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 kesemua atribut dengan urutan atribut sesuai dengan pendefinisian struktur yang dilakukanpada saat awal pembuatan tabel. Tetapi jika urutan atribut berbeda atau atribut yang akandiisikan nilainya tidak pada semua atribut, maka nama-nama atribut yang akan di isinilainya 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. 15. tuple baru yang ditambahkan pada tabel SUPPLIEREkspresi 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-atributtersebut 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 SUPPLIER6.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. 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 SUPPLIERUntuk melakukan perubahan semua nilai atribut CITY pada tabel SUPPLIER, yang di isidengan nilai ‘Purwodadi’, dilakukan dengan perintah SQL : UPDATE SUPPLIER SET CITY = Purwodadi6.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 tupleStructure Query Language (SQL) 71
  17. 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 dihapus dari tabel SUPPLIER.Sedangkan, untuk menghapus semua tuple pada SUPPLIER dapat dilakukan denganperintah SQL : DELETE FROM SUPPLIER6.5. TransaksiSuatu transaksi terdiri dari sekumpulan perintah-perintah query dan/atau operasimanipulasi 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 tidakmemberikan pengaruh terhadap makna kedua perintah transaksi tersebut.Structure Query Language (SQL) 72
  18. 18. 6.6. Data Definition Language (DDL)DDL adalah perintah-perintah untuk mendefinisikan objek-objek basis data, dimana tidakhanya sekumpulan relasi (tabel), tetapi juga tentang informasi setiap tabel, yaitu meliputisebagai 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 dataUntuk 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. 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 suatuindek primer berdasarkan atribut tertentu, yaitu dengan cara menggunakan klausaPRIMARY 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 caramenuliskan 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. 20. PRIMARY KEY (SCODE,SNAME))Keberadaan tabel yang telah dibuat dapat dibatalkan atau di hapus dengan menggunakanperintah SQL : DROP TABLE tt adalah nama tabel yang di hapus. Misalkan tabel SUPPLIER akan dihapus :Perintah SQL-nya adalah : DROP TABLE SUPPLIERStruktur tabel yang telah dibut dapat dilakukan perubahan, tanpa harus menghapus tabeldan kemudian membangunnya kembali dengan definisi struktur yang baru. Perubahanstruktur menjadi lebih praktis, dan juga tidak mengakibatkan hilangnya data yang sudahada pada tabel (jika data sudah ada).Perubahan struktur terdiri dari :Penambahan atributSintak SQL : ALTER TABLE t ADD A Dt adalah nama tabel yang dilakukan perubahan, A adalah nama atribut, dan D adalahtipe data untuk atribut A .Penghapusan atributSintak SQL : ALTER TABLE t DROP At 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 dateDan untuk menghapus atribut DATE_OF_BORN pada tabel SUPPLIER, dilakukandengan perintah SQL : ALTER TABLE SUPPLIER DROP DATE_OF_BORNStructure Query Language (SQL) 75
  21. 21. 6.7. SOAL-SOAL LATIHANDari skema yang diberikan pada gambar 5.9, maka lakukanlah operasi manipulasi datamenggunakan perintah SQL untuk soal-soal latihan berikut ini :1. Menampilkan nama pengarang dan kategori yang identitas kategorinya adalah 12. Menampilkan judul, pengarang dan harga buku yang dipromosikan3. Menampilkan judul, pengarang dan harga buku yang judul bukunya memiliki keyword XML4. Menampilkan judul, pengarang dan harga buku yang pengarang bukunya memiliki keyword JEFF5. Menampilkan nama pelanggan yang melakukan order dengan pembayaran menggunakan Credit Card6. Menampilkan nama customer yang melakukan orders satu judul buku dengan jumlah lebih besar sama dengan 27. Menampilkan nama dan alamat customer yang melakukan orders dengan alamat semarang8. Menghitung banyaknya jumlah judul buku yang memiliki keyword XML9. Menampilkan judul dan pengarang buku yang memiliki kategori JSP10. Menampilkan judul dan pengarang buku yang memiliki kategori JSP yang diurutkan secara menurun berdasarkan pengarang11. Menampilkan nama customer yang tidak pernah melakukan orders12. Menampilkan judul dan harga buku yang memiliki keyword JAVA dan harganya lebih besar sama dengan 30Structure Query Language (SQL) 76

×