Database / Stuctured Query Language
SQL Lanjutan Tujuan: 1. Peserta memahami perintah-perintah Query Tingkat lanjut 2. Peserta mampu melakukan perhitungan dengan menggunakan query 3. Peserta mampu membuat parameter dalam query 4. Peserta mampu membuat program manipulasi data dengan query
ARSys Software Developed/AbdRohim
55
Database / Stuctured Query Language
Database Explorer (SQL Explorer) Delphi telah menyediakan fasilitas dan sarana untuk membangun database yang lebih memadai. Salah satu fasilitas tersebut adalah Database Explorer. Dengan Database Explorer yang akan memudahkan kita dalam mengatur dan mengorganisir objek-objek dalam database. Database Explorer ini sangat mirip dengan Window Explorer dan memang ini dirancang demikian oleh delphinya sendiri. Banyak fasilitas yang bisa kita gunkan untuk database ini, namun pada kesempatan ini akan dibahas bagaimana menjalankan perintah-perintah SQL. Sebenarnya pada modul sebelumnya telah dibuat program untuk menjalankan perintah-perintah SQL namun program tersebut masih sangat sederhana. Memanggil SQL Explorer 1. Jika sekarang berada di Desktop Windows . Klik Menu Start | Programs | Borland delphi 3 | Database Explorer 2. Jika sekarang ada dilingkungan IDE Delphi. Klik menu Database | Explorer. Tampilan pertama akan tampak sbb:
sebagai latihan kita akan menggunakan database demos yang disediakan oleh delphi. Dalam Database demos tersebut terdapat banyak tabel yang saling terkait satu sama lainnya. Selain itu dalam database ini terdapat data-data yang bisa dimanipulasi untuk dijadikan contoh pada praktikum kali ini.
ARSys Software Developed/AbdRohim
56
Database / Stuctured Query Language
Double klik DBDEMOS dan klik page Enter SQL sehingga tampak sbb:
besarkanlah ukuran windownya sehingga ukuran maximize. Cobalah berikut ini (Perhatikan pada gambar dibawah): 1. Tuliskan SELECT * FROM Items 2. Jalankan SQLnya
2
1 Tuliskanlah perintah-perintah SQL sbb dan jalankan dengan tombol amatilah setiap hasil eksekusi dibagian bawah. 1. SELECT OrderNo, ItemNo, PartNo, Qty, Discount FROM Items 2. SELECT DISTINCT * FROM Items 3. SELECT * FROM Items WHERE Qty >=10 4. SELECT OrderNo, ItemNo, PartNo FROM Items WHERE Qty >=10 5. SELECT OrderNo, ItemNo, PartNo FROM Items WHERE Qty >=5 and Qty <=10 6. SELECT * FROM Country 7. SELECT * FROM Country WHERE Name LIKE 'A%' 8. SELECT * FROM Country WHERE Name LIKE '%a' 9. SELECT * FROM Country WHERE Name LIKE '%ua%' 10. SELECT DISTINCT Name, Continent FROM Country 11. SELECT DISTINCT Continent FROM Country 12. SELECT * FROM Country ORDER BY Capital 13. SELECT * FROM Country ORDER BY Capital DESC 14. SELECT * FROM Country ORDER BY Continent, Name 15. SELECT * FROM Country ORDER BY Continent, Name DESC
ARSys Software Developed/AbdRohim
57
Database / Stuctured Query Language
16. 17. 18. 19. 20. 21. 22. 23. 24.
25. 26. 27. 28. 29.
SELECT * FROM Orders WHERE CustNo >1500 ORDER BY CustNo SELECT * FROM Orders WHERE ShipDate > '01/01/1988' ORDER BY CustNo SELECT * FROM Orders WHERE OrderNo >1000 AND OrderNo < 1010 ORDER BY OrderNO SELECT Continent FROM Country GROUP BY Continent SELECT PartNo FROM Items GROUP BY PartNo SELECT * FROM Parts SELECT * FROM Vendors SELECT * FROM Parts a, Vendors b WHERE a.VendorNO=b.VendorNo ORDER BY Description SELECT a.PartNo, a.Description, b.VendorNo, b.VendorName FROM Parts a, Vendors b WHERE a.VendorNO=b.VendorNo ORDER BY Description SELECT CustNo, SUM(AmountPaid) as TotalBayar FROM Orders GROUP BY CustNo SELECT AVG(AmountPaid) as RataBayar FROM Orders SELECT MIN(AmountPaid) as RataBayar FROM Orders SELECT Min(AmountPaid) as RataBayar FROM Orders SELECT CustNo, COUNT(AmountPaid) as Jumlah FROM Orders GROUP BY CustNo
SQL Berparameter Untuk meningkatkan pleksibitas terhadap query delphi menyediakan apa yang disebut dengan query berparameter atau Parameterize Query. Contoh dari query berparamener ini bisa dilihat pada bagian atas no. 7, 8, 9. untuk lebih jelasnya, akan dibuat sebuah program yang akan menerima sebuah masukan yang akan dijadikan sebuah parameter untuk menampilkan data tabelnya. Buatlah program sbb:
ARSys Software Developed/AbdRohim
58
Database / Stuctured Query Language
Lakukan hal hal berikut ini. 1. Bukalah project baru 2. Tempatkan pada form tersebut 1 Query, 1 DataSource, 2 Button, 1 DBGrid, 1 Label, ComboBox, dan 1 BitBtn 3. Simpanlah project tersebut dengan nama Unit= QueryParam, nama Project = Parameter 4. Isikan nilai-nilai pada properti sbb: Komponen Properti Nilai Form1 Caption Query Berparameter Name FmQueryParam Position poScreenCenter Query1 Database DBDEMOS Name qrParam DataSource1 DataSet QrParam Name dsParam DBGrid1 DataSource dsParam Label1 Caption Nama Negara ComboBox1 Name cbNamaNegara Button1 Caption &Filter Name btnFilter Button1 Caption &Default Name btnDefault BitBtn1 Kind bkClose 5.
Tuliskan program ini pada event onCreate pada Form. procedure TfmQueryParam.FormCreate(Sender: TObject); var i : byte; begin cbNamaNegara.Items.Add('Semua'); for i:=0 to 25 do cbNamaNegara.Items.Add( FORMAT('%s%',[CHAR (i +65)])); cbNamaNegara.ItemIndex :=0; end;
6.
Tekan tombol F12 untuk kembali ke tampilan form. Double klik pada button Filter. Tuliskan program berikut ini. procedure TfmQueryParam.btnFilterClick(Sender: TObject); var str : string; begin str := 'SELECT * FROM Country'; if cbNamaNegara.text <> 'Semua' then begin str := str + ' WHERE Name LIKE "%s"'; str := Format (str, [cbNamaNegara.text]); end; qrParam.Close; qrParam.SQL.Clear; qrParam.SQL.Add(str); qrParam.open; end;
ARSys Software Developed/AbdRohim
59
Database / Stuctured Query Language
7.
Tekan tombol F12 untuk kembali ke tampilan form. Double klik pada button Default. Tuliskan program berikut ini. procedure TfmQueryParam.btnDefaultClick(Sender: TObject); begin qrParam.Close; qrParam.SQL.Clear; qrParam.SQL.Add('SELECT * FROM Country'); qrParam.open; end;
8. 9.
Simpan kembali programnya. Jalankanlah programnya.
Memanipulasi Data di SQL Manipulasi data biasanya berhubungan dengan menambah data, menghapus data, dan mengganti data yang udah ada. Perintah perintah di SQL yang berhubungan dengan itu adalah INSERT, DELETE, dan UPDATE. Struktur penulisan perintah ini telah dibahas pada modul sebelumnya. Kali ini akan dibuat program untuk memanipulasi sebuah tabel dengan memampaatkan parameter query. Buatlah program seperti berikut ini.
ARSys Software Developed/AbdRohim
60