1.
Pengertian
Query dan database
a.
Database adalah
kumpulan informasi
yang disimpan di dalam komputer secara sistematik sehingga dapat
diperiksa menggunakan suatu programkomputer untuk
memperoleh informasi dari basis data tersebut.
b.
Database adalah representasi kumpulan
fakta yang saling berhubungan
disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redudansi)
yang tidak perlu, untuk memenuhi berbagai kebutuhan.
c.
Database merupakan sekumpulan informasi
yang saling berkaitan padasuatu subjek tertentu pada tujuan tertentu pula.
d.
Database adalah susunan record data operasional lengkap dari suatuorganisasi atau perusahaan, yang diorganisir dan disimpan secaraterintegrasi dengan menggunakan metode tertentu dalam komputer sehingga
mampu memenuhi informasi yang optimal yang dibutuhkan oleh para pengguna
Query adalah semacam kemampuan untuk menampilkan suatu data dari
database dimana mengambil dari table-tabel yang ada di database, namun tabel
tersebut tidak semua ditampilkan sesuai dengan yang kita inginkan. data apa
yang ingin kita tampilkan.
misal : data peminjam dengan buku yang dipinjam, maka nanti akan mengambil data dari table peminjam dan tabel buku.
misal : data peminjam dengan buku yang dipinjam, maka nanti akan mengambil data dari table peminjam dan tabel buku.
Query adalah suatu extracting data dari suatu database dan
menampilkannya untuk “pengolahan” lebih lanjut.
Query adalah pertanyaan
atau permintaan informasi tertentu dari sebuah basisdata yang ditulis dalam
format tertentu.
Query adalah perintah-perintah untuk mengakses data pada sistem
basis data
2.
SQL
statement
Dasar SQL
Perintah perintah dalam SQL terbagi dalam 2 kelompok besar :
• Data Manipulation Language
• Data Definition Language
************************************************************************************
Menampilkan Data dengan Statement SELECT
Syntax paling dasar untuk mengambil data dari database adalah sebagai berikut :
SELECT [nama colomn] FROM [nama table]
Untuk menampilkan semua kolom dari suatu table, digunakan tanda asterik (*), daripada menyebutkan nama kolomnya satu per satu. Tuliskan statement berikut :
Perintah perintah dalam SQL terbagi dalam 2 kelompok besar :
• Data Manipulation Language
• Data Definition Language
************************************************************************************
Menampilkan Data dengan Statement SELECT
Syntax paling dasar untuk mengambil data dari database adalah sebagai berikut :
SELECT [nama colomn] FROM [nama table]
Untuk menampilkan semua kolom dari suatu table, digunakan tanda asterik (*), daripada menyebutkan nama kolomnya satu per satu. Tuliskan statement berikut :
SELECT * FROM [nama table]
************************************************************************************
Filter Data dengan WHERE
Perintah SELECT dan FROM diatas hanya membatasi jumlah kolom yang ditampilkan saja, sedangkan jumlah baris yang dihasilkan tidak dibatasi. Anda sering memerlukan hanya baris atau data yang memenuhi kriteria tertentu saja yang ditampilkan.
Klausa WHERE digunakan untuk menentukan kriteria RECORD yang ditampilkan. Syntax umumnya adalah sebagai berikut :
SELECT [nama columns] FROM [nama tables] WHERE [Conditions]
contoh :
SELECT * FROM tbDataMahasiswa WHERE Nama='AGUS'
maka akan dihasilkan record semua kolom yang memiliki Nama AGUS
pada WHERE dapat diberi fungsi logika yaitu AND (dan) dan OR (atau)
SELECT [nama colomn] FROM [nama tables] WHERE [condition1] AND [condition2]
SELECT [nama colomn] FROM [nama tables] WHERE [condition1] OR [condition2]
************************************************************************************
Sortir Data dengan ORDER BY
ORDER BY digunakan untuk mengurutkan hasil pencarian data. Secara default data yang ditampilkan disortir berdasarkan urutan masuknya data ke dalam tabel. Dengan menggunakan ORDER BY anda dapat mengurutkan berdasarkan kolom tertentu yang anda kehendaki.
Bila anda perhatikan perintah SQL diatas maka data yang dihasilkan telah diurutkan berdasarkan kolom CustomerID. Anda dapat merubahnya dengan mengurutkan berdasarkan kolom ContactName dengan perintah berikut :
SELECT NIM, NAMA, ALAMAT
FROM tbDataMahasiswa
ORDER BY NIM
************************************************************************************
Cari yang Mirip dengan LIKE
Apabila WHERE memfilter data berdasarkan kriteria tertentu yang sudah pasti, maka LIKE digunakan untuk memberikan kriteria yang tidak memiliki kepastian.
Misalkan anda ingin mencari nama produk yang dimulai dengan huruf c maka digunakan perintah berikut :
SELECT ProductID, ProductName
from Products
WHERE ProductName LIKE 'c%'
************************************************************************************
Filter Data dengan WHERE
Perintah SELECT dan FROM diatas hanya membatasi jumlah kolom yang ditampilkan saja, sedangkan jumlah baris yang dihasilkan tidak dibatasi. Anda sering memerlukan hanya baris atau data yang memenuhi kriteria tertentu saja yang ditampilkan.
Klausa WHERE digunakan untuk menentukan kriteria RECORD yang ditampilkan. Syntax umumnya adalah sebagai berikut :
SELECT [nama columns] FROM [nama tables] WHERE [Conditions]
contoh :
SELECT * FROM tbDataMahasiswa WHERE Nama='AGUS'
maka akan dihasilkan record semua kolom yang memiliki Nama AGUS
pada WHERE dapat diberi fungsi logika yaitu AND (dan) dan OR (atau)
SELECT [nama colomn] FROM [nama tables] WHERE [condition1] AND [condition2]
SELECT [nama colomn] FROM [nama tables] WHERE [condition1] OR [condition2]
************************************************************************************
Sortir Data dengan ORDER BY
ORDER BY digunakan untuk mengurutkan hasil pencarian data. Secara default data yang ditampilkan disortir berdasarkan urutan masuknya data ke dalam tabel. Dengan menggunakan ORDER BY anda dapat mengurutkan berdasarkan kolom tertentu yang anda kehendaki.
Bila anda perhatikan perintah SQL diatas maka data yang dihasilkan telah diurutkan berdasarkan kolom CustomerID. Anda dapat merubahnya dengan mengurutkan berdasarkan kolom ContactName dengan perintah berikut :
SELECT NIM, NAMA, ALAMAT
FROM tbDataMahasiswa
ORDER BY NIM
************************************************************************************
Cari yang Mirip dengan LIKE
Apabila WHERE memfilter data berdasarkan kriteria tertentu yang sudah pasti, maka LIKE digunakan untuk memberikan kriteria yang tidak memiliki kepastian.
Misalkan anda ingin mencari nama produk yang dimulai dengan huruf c maka digunakan perintah berikut :
SELECT ProductID, ProductName
from Products
WHERE ProductName LIKE 'c%'
Perhatikan tanda % setelah huruf c tersebut, yang dapat diartikan
sebagai : semua yang dimulai dengan c.
************************************************************************************
Klausa GROUP BY
Fungsi agregat yang telah dijelaskan sebelumnya hanya menampilkan satu baris hasil. Sering dibutuhkan untuk menampilkan rangkuman hasil perhitungan beberapa kelompok data dalam satu kali tampilan.
Misalnya anda ingin menghitung rata-rata dan jumlah produk yang terjual untuk setiap jenis produk. Untuk melakukan ini digunakan klausa GROUP BY yang berfungsi mengelompokkan data yang memiliki kriteria sama. Dengan demikian dapat dihasilkan suatu rangkuman hasil perhitungan untuk tiap kategori data. Tuliskan kode program berikut :
SELECT ProductID, SUM(Quantity)as Jumlah
from [Order Details]
GROUP BY ProductID
Perintah tersebut akan menghitung jumlah produk yang terjual untuk setiap ProductID dan mengelompokkan
hasilnya berdasarkan ProductID tersebut.
************************************************************************************
Statement INSERT
Untuk mengisikan data ke dalam suatu tabel digunakan perntah INSERT yang memiliki syntax umum sebagai berkut :
INSERT table (column list)
VALUES (value list)
Misalnya untuk mengisikan data customer baru dituliskan perintah berikut :
INSERT Customers (CustomerID, CompanyName, ContactName)
VALUES ('MJTR', 'Majuterus', 'Lisha')
Perintah tersebut mengisikan data di tabel Customers untuk tiga kolom yaitu CustomerID, CompanyName dan ContactName. Sedangkan kolom lain yang tidak diisi maka terisi dengan nilai default sesuai dengan desain tabelnya. Apabila desain tabelnya tidak mengijinkan nilai NULL maka anda harus mengisikan nilainya dalam perintah INSERT tersebut.
************************************************************************************
Statement DELETE
Statement DELETE merupakan kebalikan perintah INSERT. Perintah ini menghapus data yang terdapat di suatu tabel. Data dihapus per record atau per baris berdasarkan kriteria tertentu.
Penentuan kriteria record mana yang akan dihapus bisa dilakukan dengan menggunakan klausa WHERE. Misalkan anda ingin menghapus data semua customer yang berada di negara France.
Syntax umum statement ini adalah sebagai berikut :
DELETE FROM table_name
WHERE Condition
************************************************************************************
Klausa GROUP BY
Fungsi agregat yang telah dijelaskan sebelumnya hanya menampilkan satu baris hasil. Sering dibutuhkan untuk menampilkan rangkuman hasil perhitungan beberapa kelompok data dalam satu kali tampilan.
Misalnya anda ingin menghitung rata-rata dan jumlah produk yang terjual untuk setiap jenis produk. Untuk melakukan ini digunakan klausa GROUP BY yang berfungsi mengelompokkan data yang memiliki kriteria sama. Dengan demikian dapat dihasilkan suatu rangkuman hasil perhitungan untuk tiap kategori data. Tuliskan kode program berikut :
SELECT ProductID, SUM(Quantity)as Jumlah
from [Order Details]
GROUP BY ProductID
Perintah tersebut akan menghitung jumlah produk yang terjual untuk setiap ProductID dan mengelompokkan
hasilnya berdasarkan ProductID tersebut.
************************************************************************************
Statement INSERT
Untuk mengisikan data ke dalam suatu tabel digunakan perntah INSERT yang memiliki syntax umum sebagai berkut :
INSERT table (column list)
VALUES (value list)
Misalnya untuk mengisikan data customer baru dituliskan perintah berikut :
INSERT Customers (CustomerID, CompanyName, ContactName)
VALUES ('MJTR', 'Majuterus', 'Lisha')
Perintah tersebut mengisikan data di tabel Customers untuk tiga kolom yaitu CustomerID, CompanyName dan ContactName. Sedangkan kolom lain yang tidak diisi maka terisi dengan nilai default sesuai dengan desain tabelnya. Apabila desain tabelnya tidak mengijinkan nilai NULL maka anda harus mengisikan nilainya dalam perintah INSERT tersebut.
************************************************************************************
Statement DELETE
Statement DELETE merupakan kebalikan perintah INSERT. Perintah ini menghapus data yang terdapat di suatu tabel. Data dihapus per record atau per baris berdasarkan kriteria tertentu.
Penentuan kriteria record mana yang akan dihapus bisa dilakukan dengan menggunakan klausa WHERE. Misalkan anda ingin menghapus data semua customer yang berada di negara France.
Syntax umum statement ini adalah sebagai berikut :
DELETE FROM table_name
WHERE Condition
Untuk menghapus data
customer yang berasal dari Mexico di tabel Customers maka perintahnya adalah :
DELETE FROM Customers
where Country= 'Mexico'
Atau anda bisa juga menghapus data berdasarkan CustomerID yang merupakan primary key di tabel tersebut.
DELETE FROM Customers
where CustomerID= ‘ALFKI’
Selain menggunakan WHERE, dapat juga digabungkan dengan operator LIKE dan BETWEEN untuk membuat kriteria yang lebih fleksible. Misalnya sebagai berikut :
DELETE FROM Orders
************************************************************************************
Statement UPDATE
Apabila anda ingin mengedit atau merubah suatu data tanpa menghapusnya maka digunakan perintah UPDATE . Perintah ini juga menggunakan kondisi tertentu dengan klausa WHERE sebagaimana perintah DELETE. Syntax umum statement UPDATE adalah sebagai berikut :
UPDATE table_name
SET Column1 = Value1, Column2 = Value2, …..
WHERE condition
Perintah ini melakukan perubahan pada kolom tertentu sebagaimana yang disebutkan dalam perintah SET. Perubahan dilakukan terhadap record yang memenuhi kriteria di klausa WHERE.
Misalkan anda ingin menaikkan harga produk sebesar 10% untuk semua barang yang memiliki CategoryID = 2, maka digunakan perintah berikut :
UPDATE Products
SET UnitPrice = UnitPrice * 1.1
WHERE CategoryID = 2
Harga barang terdapat di kolom UnitPrice sehingga kolom tersebut dikalikan dengan 1.1. Perintah tersebut akan menaikkan harga semua barang yang terdapat di tabel Products sesuai dengan kriteria CategoryID. Selain menggunakan kriteria WHERE perintah ini juga dapat digabungkan dengan operator LIKE dan BETWEEN sebagaiman statement DELETE diatas.
Contoh berikut menggambarkan penggunaan beberapa kriteria untuk mengupdate suatu data :
UPDATE Customers
SET Country = 'Indonesia',
ContactName = 'Lisha'
DELETE FROM Customers
where Country= 'Mexico'
Atau anda bisa juga menghapus data berdasarkan CustomerID yang merupakan primary key di tabel tersebut.
DELETE FROM Customers
where CustomerID= ‘ALFKI’
Selain menggunakan WHERE, dapat juga digabungkan dengan operator LIKE dan BETWEEN untuk membuat kriteria yang lebih fleksible. Misalnya sebagai berikut :
DELETE FROM Orders
************************************************************************************
Statement UPDATE
Apabila anda ingin mengedit atau merubah suatu data tanpa menghapusnya maka digunakan perintah UPDATE . Perintah ini juga menggunakan kondisi tertentu dengan klausa WHERE sebagaimana perintah DELETE. Syntax umum statement UPDATE adalah sebagai berikut :
UPDATE table_name
SET Column1 = Value1, Column2 = Value2, …..
WHERE condition
Perintah ini melakukan perubahan pada kolom tertentu sebagaimana yang disebutkan dalam perintah SET. Perubahan dilakukan terhadap record yang memenuhi kriteria di klausa WHERE.
Misalkan anda ingin menaikkan harga produk sebesar 10% untuk semua barang yang memiliki CategoryID = 2, maka digunakan perintah berikut :
UPDATE Products
SET UnitPrice = UnitPrice * 1.1
WHERE CategoryID = 2
Harga barang terdapat di kolom UnitPrice sehingga kolom tersebut dikalikan dengan 1.1. Perintah tersebut akan menaikkan harga semua barang yang terdapat di tabel Products sesuai dengan kriteria CategoryID. Selain menggunakan kriteria WHERE perintah ini juga dapat digabungkan dengan operator LIKE dan BETWEEN sebagaiman statement DELETE diatas.
Contoh berikut menggambarkan penggunaan beberapa kriteria untuk mengupdate suatu data :
UPDATE Customers
SET Country = 'Indonesia',
ContactName = 'Lisha'
3.
SQL
Dinamik
Meskipun statis SQL bekerja dengan baik dalam banyak situasi
, ada kelas aplikasi di mana akses data tidak dapat ditentukan di muka.
Misalnya, spreadsheet memungkinkan pengguna untuk memasukkan query , yang
spreadsheet kemudian mengirimkan ke DBMS untuk mengambil data . Isi dari query
ini jelas tidak dapat diketahui programmer ketika program spreadsheet yang
tertulis .
Untuk mengatasi masalah ini , spreadsheet menggunakan bentuk
embedded SQL yang disebut SQL dinamis . Tidak seperti pernyataan SQL statis,
yang sulit -kode dalam program ini , pernyataan SQL dinamis dapat dibangun pada
waktu berjalan dan ditempatkan dalam variable host tali. Mereka kemudian
dikirim ke DBMS untuk diproses . Karena DBMS harus menghasilkan rencana akses
pada saat run waktu untuk pernyataan SQL dinamis , dinamis SQL umumnya lebih
lambat dari statis SQL . Ketika sebuah program yang berisi pernyataan SQL
dinamis dikompilasi , dinamis pernyataan SQL tidak dilucuti dari program ini ,
seperti pada SQL statis . Sebaliknya , mereka digantikan oleh panggilan fungsi
yang melewati pernyataan ke DBMS , pernyataan SQL statis dalam program yang
sama diperlakukan secara normal .
Cara paling sederhana untuk mengeksekusi pernyataan SQL
dinamis dengan Execute pernyataan SEGERA . Pernyataan ini melewati pernyataan
SQL ke DBMS untuk kompilasi dan eksekusi .
Salah satu kelemahan dari Jalankan SEGERA pernyataan adalah
bahwa DBMS harus melalui masing-masing dari lima langkah pengolahan pernyataan
SQL setiap kali pernyataan dijalankan . Overhead yang terlibat dalam proses ini
dapat menjadi signifikan jika banyak laporan dijalankan secara dinamis , dan
itu adalah sia-sia jika laporan keuangan tersebut adalah sama . Untuk mengatasi
situasi ini , SQL dinamis menawarkan bentuk dioptimalkan eksekusi disebut
eksekusi disiapkan , yang menggunakan langkah-langkah berikut :
Program ini membangun sebuah pernyataan SQL dalam buffer ,
seperti halnya untuk Execute pernyataan SEGERA . Alih-alih variabel host ,
tanda tanya ( ? ) Dapat digantikan untuk konstan di mana saja dalam teks
pernyataan untuk menunjukkan bahwa nilai konstanta akan diberikan kemudian.
Tanda tersebut disebut sebagai penanda parameter .
Program ini melewati pernyataan SQL ke DBMS dengan pernyataan
SIAPKAN , yang meminta agar mengurai DBMS , memvalidasi , dan mengoptimalkan
pernyataan dan menghasilkan rencana eksekusi untuk itu . Program ini kemudian
menggunakan Jalankan pernyataan ( bukan Jalankan pernyataan SEGERA ) untuk
mengeksekusi pernyataan SIAPKAN di lain waktu . Melewati nilai parameter untuk
pernyataan melalui struktur data khusus yang disebut Data di Area SQL atau
SQLDA .
Program ini dapat menggunakan EXECUTE pernyataan berulang kali
, memasok nilai parameter yang berbeda setiap kali pernyataan dinamis
dijalankan .
Disiapkan eksekusi masih tidak sama dengan SQL statis. Dalam
SQL statis , empat langkah pertama pengolahan pernyataan SQL berlangsung pada
waktu kompilasi . Dalam eksekusi disiapkan , langkah-langkah ini masih
berlangsung pada waktu berjalan , tetapi mereka dilakukan hanya sekali ,
pelaksanaan rencana berlangsung hanya bila EXECUTE yang disebut . Hal ini
membantu menghilangkan beberapa kelemahan kinerja yang melekat dalam arsitektur
SQL dinamis . Ilustrasi berikut menunjukkan perbedaan antara statis SQL , SQL
dinamis dengan eksekusi langsung , dan SQL dinamis dengan eksekusi disiapkan