Rabu, 19 November 2008
tugas SQL new
as
select Kode, Judul, Pengarang, Penerbit, Harga, Jumlah
from buku
2 Select Kd [KODE BUKU], Jdl [JUDUL BUKU], Pgr [PENGARANG], Pnb [PENERBIT], Hrg [HARGA BELI], Jml [JUMLAH BUKU]
from View_Buku
3 Insert into View_Buku
Values('44444','Membelah Pusaran Air','Susianah','Biru Langit',25000,12)
4 Update View_Buku
set Hrg = Hrg + ((Hrg * 100)/1000
where Kd = '44444'
5 Create View Insert-Jual
as select * from Jual
Insert into Insert_Jual
values('0000001','03/14/2005','44444',40000,1)
6 Create View V_Lihat_Jaul
as
Select Tgl_Jual, Judul, Hrg_Jual, Jml_Jual,(Hrg_jual * Jml_Jual) [TOTAL HARGA]
from Buku B inner join Jual J
on B.Kode = J.Kd_Buku
where Tgl_Jual = '03/14/2005'
7 Create View V_Total_Beli
as
Select Kd_Dis, count (*) [Jumlah Data],
sum (Hrg_Beli * Jml_Beli) [Total Pembelian]
8 Create View View_Jual
as
Select * from Jual
go
insert into View_Jual
values('0000002','03/25/2005','22222',47500,1)
insert into View_Jual
values('0000003','03/27/2005','22222',47500,5)
insert into View_Jual
values('0000004','03/27/2005','22222',47500,3)
9 Create View View_Rata_Jual
as
Select *
from Jual
where Jml_Jual >= (select avg (Jml_Jual)
from Jual Where Kd_Buku = '22222')
Selasa, 18 November 2008
Tugas SQL
PEMAKAIAN VIEW
View merupakan tabel virtual yang keberadaannya tidak ada di dalam database dimana isinya didefinisikan oleh sebuah query
Beberapa operasi yang dapat dilakukan pada view antara lain Select, Insert, Update dan Delete
Pemakaian view yang ber-index dapat meningkatkan kecepatan kecepatan view yang kompleks. View seperti ini sering dipakai pada Data Warehouse dan sistem pendukung keputusan (Decision Support System).
Manfaat Pemakaian View
Banyak manfaat yang didapatkan dari pemakainan perintah view, antara lain:
Menyederhanakan manipulasi data
Memfokuskan data tertentu
Menyesuaikan data dengan kebutuhan user
Mengirim dan menerima data
Mengkombinasikan data yang terpartisi
Tipe-tipe View
Beberapa tipe view yang dapat anda buat berdasarkan kebutuhan, antara lain:
kumpulan kolom
kumpilan baris
gabungan dari beberapa tabel
informasi Anggregate
Membuat View melalui Query Analyzer
Bentuk penulisan perintah query dalam membuat suatu view sebagai berikut :
Create View nama_view [(kolom1, kolom2, . . .) ]
As
Perintah_query
Buat suatu view dengan nama VIEW_DATA_BARANG yang bertujuan untuk menampilkan data-data dari tabel BARANG yang meliputi field Kode, Nama dan Jumlah
Create View VIEW_DATA_BRG(Vkode, Vnama, VJumlah)
As
Select Kode, Nama, Jumlah
From BARANG
Mengubah View melalui Query Analyzer
Bentuk penulisan perintah query untuk mengubah suatu view sebagai berikut :
Alter View nama_view [(kolom1, kolom2, . . .) ]
As
Perintah_query
Mengubah view yang bernama VIEW_DATA_BARANG dengan menambahkan syarat yaitu data barang yang ditampilkan hanya yang mempunyai kode barang “EL123”
Alter View VIEW_DATA_BRG(VKode, VNama, VJumlah)
As
Select Kode, Nama, Jumlah
From BARANG
Where Kode = ‘EL123’
Menghapus View melalui Query Analyzer
Bentuk penulisan perintah query untuk menghapus suatu view sebagai berikut :
DROP VIEW { view } [ ,...n ]
Menghapus tiga view yang pernah dibuat masing-masing VIEW_1, VIEW_2 dan VIEW_3 secara bersama-sama
Drop View VIEW_1, VIEW_2, VIEW_3
Mengakses Data Dengan View
Perubahan-perubahan yang dapat dilakukan antara lain pada perintah
Select, Insert, Update dan Delete
Untuk perintah Select, data yang diambil atau ditampilkan dapat berasal dari satu tabel maupun banyak tabel. Sedang untuk perintah Insert, Update dan Delete modifikasinya hanya mempengaruhi satu tabel dasar yang diacu oleh view
Terdapat beberapa syarat yang harus dipenuhi untuk mengubah data melalui view, antara lain :
Sebuah view minimal berisi sebuah tabel pada kata kunci From
Kata kunci Select tidak menggunakan field yang diambil dari field lain atau hasil suatu perhitungan
Kata kunci Select tidak menggunakan fungsi Aggregate atau kata kunci GROUP BY, DISTINCT, UNION atau TOP. Fungsi Aggregate dapat digunakan pada subquery yang didefinisikan pada kata kunci From yang menyatakan nilai-nilai yang dihasilkan fungsi Aggregate tidak diubah
Membuat sebuah view dengan nama V_JOIN_BELI yang bertujuan menampilkan data tanggal pembelian, nama supplier, nama barang, harga pembelian dan jumlah pembelian dari tabel barang, pembelian dan supplier khusus untuk barang yang jumlah pembeliannya antara 8 sampai 23
Alter view V_JOIN_ BELI
As
Select tgl_beli, nama_supplier, nama, hrg_beli, jml_beli
From (barang B inner join pembelian P on B.kode = P.kd_barang)
Inner join supplier S on P.kd_sup = S. kode_sup
Where P.jml_beli between 8 and 23
PEMAKAIAN INDEX
Index merupakan salah satu komponen database yang dibuat berdasarkan kolom dalam tabel dan dipakai untuk meningkatkan kecepatan pencarian data
Dengan menggunakan index, data tidak perlu dicari dari awal hingga akhir, melainkan menggunakan menggunakan algoritma pencarian yang paling efisien sehingga waktu proses menjadi sangat cepat
Beberapa hal yang dapat dijadikan landasan untuk membuat index, antara lain :
Kolom atau field pada tabel yang sering dicari
Pembentukan Primary Key dan Foreign Key
Kolom atau field yang sering digunakan oleh perintah Join
Kolom atau field yang diakses secara abjad (tersusun)
Kolom atau field yang sering dicari berdasarkan urutan (range)
Kolom atau field yang sering menjadi predikat pada pemakaian kata kunci Where
Beberapa hal yang disarankan untuk tidak menggunakan Index, antara lain :
Hasil dari proses query melebihi 20% jumlah data (record)
Kolom atau field yang mempunyai nilai valid paling sedikit (misalnya field jenis kelamin, hanya berisi “L” atau “P”)
Ukuran kolom terlalu panjang
MACAM-MACAM INDEX
Index Key
Kekuatan utama dari index key adalah kolom atau field. Kolom merupakan obyek utama yang dapat digunakan untuk membangkitkan index
Terdapat dua jenis index key yang dapat dibuat di SQL Server yaitu :
Simple Index
Simple index merupakan index yang dibentuk hanya dengan satu kolom saja dalam suatu tabel.
Composite Index
index merupakan index yang dibentuk oleh lebih dari satu kolom atau field.
Unique Index
Unique index merupakan index yang hanya berisi satu baris data dari masing-masing index key.
Ununique Index
Bentuk dari ununique index hampir sama dengan unique index, hanya pada non-unique index nilai yang ada pada kolom atau field sebagai pembentuk index boleh sama.
MEMBUAT INDEX MELALUI QUERY ANALYZER
Secara umum bentuk penulisan index dengan menggunakan utilitas Query Analyzer, sebagai berikut :
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX nama_index
ON {table|view } (column [ASC|DESC] [,...n ])
[WITH <> [ ,...n]]
[ON filegroup]
<> :: =
{ PAD_INDEX |
FILLFACTOR = fillfactor |
IGNORE_DUP_KEY |
DROP_EXISTING |
STATISTICS_NORECOMPUTE |
SORT_IN_TEMPDB }
Membuat suatu index dengan nama I_SUP pada tabel SUPPLIER dengan field kunci Kode_Sup. Index yang dibuat adalah index unik dan nonclustered
Create Index I_SUP
ON SUPPLIER(Kode_Sup)
OPTION INDEX
Option index adalah nilai-nilai yang diikutkan pada saat pembuatan suatu index. Nilai-nilai ini sifatnya tidak mutlak untuk digunakan sehingga penggunaannya pada kasus-kasus tertentu.
Option PAD_INDEX
Option PAD_INDEX digunakan untuk menspesifikasikan space untuk membuka pada masing-masing page (node) dalam intermediate level index. PAD INDEX akan bermanfaat jika FILLFACTOR juga dispesifikasikan.
Membuat index dengan nama I_PAD pada tabel SUPPLIER dengan field kunci Kode_Sup
Create UNIQUE Index I_PAD
ON SUPPLIER(Kode_Sup)
With PAD_INDEX
Option FILLFACTOR
Option FILLFACTOR digunakan untuk menspesifikasikan prosentasi yang menggambarkan bagaimana SQL Server seharusnya membuat level halaman untuk masing-masing index.
Membuat sebuah index dengan nama I_FILL pada tabel SUPPLIER dengan field kunci Nama_Sup dan fillfactor 70%.
Create Index I_FILL
ON SUPPLIER(Nama_Sup)
With FILLFACTOR = 70
Option DROP_EXISTING
Option DROP_EXISTING digunakan untuk menspesifikasikan peletakan ulang clustered atau nonclustered index dengan menghapus dan membangunnya kembali.
Membuat index dengan nama I_IGNORE (index I_IGNORE sudah pernah dibuat dengan field kunci Kode_Sup) pada tabel SUPPLIER akan diganti berdasarkan field kunci Nama_Sup.
Create UNIQUE Index I_IGNORE
ON SUPPLIER(Nama_Sup)
With DROP_EXISTING
MENGHAPUS INDEX
Bentuk penulisan perintah query untuk menghapus suatu index sebagai berikut :
DROP INDEX 'table.index | view.index' [ ,...n ]