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 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
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 LIKE 'A%' 8. SELECT * FROM Country WHERE LIKE '%a' 9. SELECT * FROM Country WHERE LIKE '%ua%' 10. SELECT DISTINCT, 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, 15. SELECT * FROM Country ORDER BY Continent, DESC ARSys Software Developed/AbdRohim 57
16. SELECT * FROM Orders WHERE CustNo >1500 ORDER BY CustNo 17. SELECT * FROM Orders WHERE ShipDate > '01/01/1988' ORDER BY CustNo 18. SELECT * FROM Orders WHERE OrderNo >1000 AND OrderNo < 1010 ORDER BY OrderNO 19. SELECT Continent FROM Country GROUP BY Continent 20. SELECT PartNo FROM Items GROUP BY PartNo 21. SELECT * FROM Parts 22. SELECT * FROM Vendors 23. SELECT * FROM Parts a, Vendors b WHERE a.vendorno=b.vendorno ORDER BY Description 24. SELECT a.partno, a.description, b.vendorno, b.vendor FROM Parts a, Vendors b WHERE a.vendorno=b.vendorno ORDER BY Description 25. SELECT CustNo, SUM(AmountPaid) as TotalBayar FROM Orders GROUP BY CustNo 26. SELECT AVG(AmountPaid) as RataBayar FROM Orders 27. SELECT MIN(AmountPaid) as RataBayar FROM Orders 28. SELECT Min(AmountPaid) as RataBayar FROM Orders 29. 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
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 Position Query Berparameter FmQueryParam poscreencenter Query1 Database DBDEMOS qrparam DataSource1 DataSet QrParam dsparam DBGrid1 DataSource dsparam Label1 Caption Nama Negara ComboBox1 cbnamanegara Button1 Caption &Filter btnfilter Button1 Caption &Default btndefault BitBtn1 Kind bkclose 5. Tuliskan program ini pada event oncreate pada Form. procedure TfmQueryParam.FormCreate(Sender: TObject); var i : byte; cbnamanegara.items.add('semua'); for i:=0 to 25 do cbnamanegara.items.add( FORMAT('%s%',[CHAR (i +65)])); cbnamanegara.itemindex :=0; 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; str := 'SELECT * FROM Country'; if cbnamanegara.text <> 'Semua' then str := str + ' WHERE LIKE "%s"'; str := Format (str, [cbnamanegara.text]); qrparam.close; qrparam.sql.clear; qrparam.sql.add(str); qrparam.open; ARSys Software Developed/AbdRohim 59
7. Tekan tombol F12 untuk kembali ke tampilan form. Double klik pada button Default. Tuliskan program berikut ini. procedure TfmQueryParam.btnDefaultClick(Sender: TObject); qrparam.close; qrparam.sql.clear; qrparam.sql.add('select * FROM Country'); qrparam.open; 8. Simpan kembali programnya. 9. 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