Minggu, 14 September 2008

TUGAS VB II TENTANG SQL

Praktikum Database II Bab 9 : Manipulasi Data
@Tessy Badriyah, SKom. MT.
Halaman - 66

MANIPULASI DATA
Tujuan Pembelajaran :
• Memahami Statement DML (Data Manipulation Language)
• Menyisipkan baris ke dalam table
• Merubah baris dalam table
• Menghapus baris dari table
• Mengontrol transaksi

TEORI DAN PERCOBAAN
A. Data Manipulation Language (DML)
Data Manipulation Language (DML) adalah suatu statement yang dijalankan pada saat kita memerlukan :
• Penambahan baris baru pada table
• Memodifikasi baris yang ada pada table
• Menghapus baris yang ada pada table
DML perintah (statement) SQL digunakan untuk melakukan manipulasi data dalam database, menambahkan (INSERT), mengunah (UPDATE), menghapus (DELETE), mengambil dan mencari data (QUERY).
DML Statement identik dengan operasi INSERT, MODIFY dan DELETE. Istilah transaksi mengandung pengertian kumpulan Statement DML yang membentuk suatu fungsi tertentu.

Menambahkan Baris Baru ke dalam Tabel (INSERT)
Menambahkan baris baru ke dalam table menggunakan perintah INSERT.
INSERT INTO table [(column [, column …] ) ]
VALUES (value [, value…] );
Percobaan 1 :
Menyisipkan baris ke dalam table DEPT.
Praktikum Database II Bab 9 : Manipulasi Data
@Tessy Badriyah, SKom. MT.
Halaman – 67

INSERT dengan nilai NULL
Kolom yang tidak disebutkan dalam perintah INSERT INTO secara otomatis akan diisi dengan nilai NULL.
Percobaan 2 :
Seperti pada contoh berikut kolom loc akan berisi nilai NULL
Percobaan 3:
Kalau tidak disebutkan kolom apa saja yang harus diisi, maka nilai pada VALUES harus mencantumkan semua kolom yang ada pada table sesuai dengan urutannya.

INSERT menggunakan Fungsi dan Nilai terformat
Suatu fungsi bisa digunakan sebagai suatu nilai dalam perintah INSERT.
Percobaan 4:
Contoh berikut ini menyertakan fungsi sysdate ke dalam table EMP Nilai yang dimasukkan ke dalam perintah INSERT bisa menggunakan nilai terformat.
Percobaan 5 :
Contoh berikut ini menggunakan nilai data tanggal yang diformat pada perintah
INSERT.
Praktikum Database II Bab 9 : Manipulasi Data @Tessy Badriyah, SKom. MT.
Halaman – 68
INSERT dengan variable substitusi
Pada perintah INSERT bisa dicantumkan variable substitusi.
Percobaan 5 : Berikut ini akan dicantumkan variable substitusi dari suatu nilai kolom pada baris baru yang akan dimasukkan ke dalam table dengan perintah INSERT.

Pembuatan Script dengan Kustomisasi Prompt
Untuk melakukan kustomisasi, dapat digunakan perintah ACCEPT dan PROMPT.
Percobaan 6 : Sama seperti percobaan 5, dengan penambahan kustomisasi prompt.
Isi dari file coba6.sql :
ACCEPT department_id PROMPT 'Silahkan masukkan nomer department : '
ACCEPT department_name PROMPT 'Silahkan masukkan nama department : '
ACCEPT location PROMPT 'Silahkan masukkan lokasi department : '
INSERT INTO dept(deptno,dname,loc)
VALUES (&department_id,'&department_name','&location');

Mengkopi Baris dari Tabel lain
Perintah INSERT juga bisa digunakan untuk mengkopi baris data yang berasal dari table yang lain.
Praktikum Database II Bab 9 : Manipulasi Data@Tessy Badriyah, SKom. MT.
Halaman - 69
Percobaan 7 : Berikut ini akan ditambahkan baris baru ke dalam table manager yang berasal dari table pegawai yang pekerjaannya = ‘MANAGER’

Perubahan Data dalam Tabel (UPDATE)
Untuk memodifikasi baris data yang ada pada table digunakan perintah UPDATE.
Sintak dari perintah UPDATE :
UPDATE table
SET column = value [, column = value, …]
[WHERE condition];
Percobaan 7 : Ubah nomer department menjadi = 20, untuk pegawai yang memiliki nomer department = 7782;Semua baris pada table akan dimodifikasi jika klausa WHERE tidak disertakan. Hasilnya, jika diperiksa :
………
Praktikum Database II Bab 9 : Manipulasi Data
@Tessy Badriyah, SKom. MT.
Halaman – 70

UPDATE dengan multiple column subquery
Perintah UPDATE bisa menggunakan multiple column subquery.
Percobaan 8 : Ubah nilai dari kolom pekerjaan dan nomer department dari pegawai dengan nomer pegawai ‘7698’ sehingga nilainya sama dengan jenis pekerjaan dan nomer department yang dimiliki oleh pegawai bernomer ‘7499’

UPDATE berdasarkan table yang lain
UPDATE berdasarkan table yang lain artinya perubahan pada sebuah table dimana kondisi perubahannya ditentukan berdasarkan nilai yang terdapat pada table yang lain. Percobaan 9 : Ubah data nomer department yang dimiliki oleh pegawai dengan pekerjaan yang sama dengan pegawai bernomor ‘7788’ , data nomer department tersebut harus diubah menjadi data yang sama dengan nomer department yang dimiliki oleh pegawai bernomor ‘7788’;

Kesalahan pada UPDATE
Salah satu kesalahan pada perintah UPDATE, misal jika kita berusaha untuk merubah data sedangkan data tersebut terikat pada integrity constraint (merupakan suatu key).
Praktikum Database II Bab 9 : Manipulasi Data
@Tessy Badriyah, SKom. MT.
Halaman - 71
Percobaan 10 : Ubah data pegawai dengan nomer department 10 menjadi data dengan nomer department 55. terjadi kesalahan dikarenakan nomer department ‘55’ tidak terdapat dalam table pegawai. Query berikut ini baru bisa dijalankan tanpa ada kesalahan :

Menghapus baris dari table (DELETE)
Baris data yang ada pada table dapat dihapus dengan menggunakan perintah DELETE.
Percobaan 11 : Menghapus data pegawai yang mempunyai nama department = ‘DEVELOPMENT’
Percobaan 12 : Hapus data semua pegawai yang tanggal mulai bekerjanya
setelah tanggal 1 Januari 1997 Jika klausa WHERE ditiadakan, maka semua baris dalam table akan dihapus.
Percobaan 13 : Menghapus semua baris yang ada pada table pegawai. Praktikum Database II Bab 9 : Manipulasi Data
@Tessy Badriyah, SKom. MT.
Halaman – 72

DELETE berdasarkan table yang lain
Subquery dapat digunakan dalam statement DELETE untuk menghapus baris pada suatu table berdasarkan data yang ada di table yang lain.
Percobaan 14 : Menghapus data pada table pegawai, untuk pegawai yang bekerja pada department ‘SALES’
Kesalahan pada DELETE
Jika baris data yang dihapus pada table berkaitan dengan integrity constraint, maka akan terjadi kesalahan.
Percobaan 15 : Misal akan dihapus data pada table department yang memiliki nomer department ‘10’. Jika nomer department 10 ini mempunyai data yang berkaitan dengan data yang ada di table pegawai (ada pegawai yang bekerja di department 10), maka akan muncul pesan kesalahan, seperti pada query berikut :
Select
Perintah:
Select {* field1 [, field2[, …]]} prom namatabel [where kondisi]


View
Perintah:
Create view namaview
As expresi query
Transaksi Database
Jika DML berkaitan dengan manipulasi data pada table, maka DDL (Data Definition Language) berkaitan dengan pendefinisian table, sedangkan DCL (Data Control Language) berkaitan kontrol transaksi. DDL dan DCL secara otomatis akan di-commit (dilakukan perubahan secara permanen) pada akhir dari transaksi.

Statement COMMIT dan ROLLBACK
Ada 2 statement DCL yang penting yaitu COMMIT dan ROLLBACK, selain dari itu ada SAVEPOINT. Perintah COMMIT menandai perubahan secara permanent Praktikum Database II Bab 9 : Manipulasi Data
@Tessy Badriyah, SKom. MT.
Halaman - 73
pada data. Sedangkan ROLLBACK mengembalikan keadaan sesuai dengan titik (keadaan) yang ditandai dengan SAVEPOINT, atau jika ROLLBACK tidak diberi parameter maka keadaan akan dikembalikan pada titik perubahan yang terakhir.

Pemrosesan Transaksi secara Implisit
Transaksi akan diproses secara implicit atau dilakukan operasi COMMIT
secara otomatis, untuk keadaan berikut :
• Setelah Statement DDL diberikan
• Setelah Statement DCL diberikan
• Proses exit secara normal dari SQL*PLUS.
Sedangkan perintah ROLLBACK secara otomatis akan dijalankan jika terjadi
kondisi yang abnormal atau terjadi system failure.
6. Periksa perubahan yang dibuat pada soal no 4 dan 5.
7. Delete pegawai dengan nama ‘Betty Dancs’, kemudian periksa hasilnya :
8. Simpan semua perubahan (DML) dengan memberikan perintah COMMIT;
9. Beri tanda SAVEPOINT sini;
10. Setelah itu hapus semua data dalam table MY_EMPLOYEE
11. Periksa hasilnya dengan me-list semua isi tabel
12. Batalkan penghapusan dengan memberikan perintah ROLLBACK sini;
13. Periksa hasilnya dengan me-list semua isi table. Maka data pada table akan
terlihat kembali.

B. Data definition language (DDL)
Merupakan kelompok data yang digunakan untuk melakukan pendefinisian database dan pendefinisian table. Dengan kelompok perintah dalam DDL ini maka kita dapat membuat table, mengubah strukturnya, menghapus table, membuat undex untuk table, dll yang bermuara pada pembnetukan struktur database.
DDL digunakan untuk membuat struktur database, mulai dari mendefinisikan database tabel-tabel dan indexnya, view, dan perintah-perintah yang berkenaan dengan maintenance dari struktur database itu sendiri.
Membuat database:
Perintah:
Cerate database namadatabase;

Membuat table
Perintah:
Create table namatabel (field1 typedata1[,field2 tipedata2 [, …]);

Menambah field baru pada tabel
Perintah:
Alter table namatabel
ADD fieldbaru tipenya;

Mengubah lebar field tabel
Perintah:
Alter table namatabel
Modify fieldnya titenya panjangbaru;
Menghapus table
Perintah:
Drop table namatabel;

Menghapus database
Perintah:
Drop database namadatabase;

Membuat index
Perintah:
Create index namaindex
On namatabel (namacolom1[, namacolom2] namacolom3..]])

Menghapus index
Perintah:
Drop index namaindex
On namatabel;


CREATE
CREATE digunakan untuk membuat basis data maupun objek-objek basis data. SQL yang umum digunakan adalah:
CREATE DATABASE nama_basis_data
CREATE DATABASE membuat sebuah basis data baru.
CREATE TABLE nama_tabel
CREATE TABLE membuat tabel baru pada basis data yang sedang aktif. Secara umum, perintah ini memiliki bentuk
CREATE TABLE [nama_tabel]
(
nama_field1 tipe_data [constraints][,
nama_field2 tipe_data,
...]
)
atau
CREATE TABLE [nama_tabel]
(
nama_field1 tipe_data [,
nama_field2 tipe_data,
...]
[CONSTRAINT nama_field constraints]
)
dengan:
nama_field adalah nama kolom (field) yang akan dibuat. Beberapa sistem manajemen basis data mengizinkan penggunaan spasi dan karakter nonhuruf pada nama kolom.
tipe_data tergantung implementasi sistem manajemen basis data. Misalnya, pada MySQL, tipe data dapat berupa VARCHAR, TEXT, BLOB, ENUM, dan sebagainya.
constraints adalah batasan-batasan yang diberikan untuk tiap kolom. Ini juga tergantung implementasi sistem manajemen basis data, misalnya NOT NULL, UNIQUE, dan sebagainya. Ini dapat digunakan untuk mendefinisikan kunci primer (primary key) dan kunci asing (foreign key).
Satu tabel boleh tidak memiliki kunci primer sama sekali, namun sangat disarankan mendefinisikan paling tidak satu kolom sebagai kunci primer.
Contoh:
CREATE TABLE user
(
username VARCHAR(30) CONSTRAINT PRIMARY KEY,
passwd VARCHAR(20) NOT NULL,
tanggal_lahir DATETIME
);
akan membuat tabel user seperti berikut:
username
passwd
tanggal_lahir

ALTER
Syntax ALTER DATABASE
ALTER DATABASE database_name
{ ADD FILE <> [ ,...n ]
ADD LOG FILE <> [ ,...n ]
REMOVE FILE logical_file_name
MODIFY FILE <>
MODIFY NAME = new_dbname }

Syntax ALTER TABLE
l ALTER TABLE table_name
{ [ ALTER COLUMN column_name
{ new_data_type [ ( precision [ , scale ] ) ]
[ NULL NOT NULL ] ]
ADD
{ [ <> ]
column_name AS computed_column_expression } [ ,...n ]
DROP
{ [ CONSTRAINT ] constraint_name
COLUMN column } [ ,...n ] }

Contoh ALTER TABLE
l ALTER TABLE [Order Detail]
ADD Discount Real NOT NULL DEFAULT 0
l ALTER TABLE [Order Detail]
ADD CONSTRAINT PK_Order_Detail PRIMARY KEY (OrderID, ProductID)
l ALTER TABLE [Order Detail]
ADD CONSTRAINT FK_Order_Detail_OrderID FOREIGN KEY (OrderID) REFERENCES Orders (OrderID) ON UPDATE CASCADE ON DELETE CASCADE
l ALTER TABLE [Order Detail]
ADD CONSTRAINT FK_Order_Detail_ProductID FOREIGN KEY (ProductID) REFERENCES Products (ProductID) ON UPDATE CASCADE ON DELETE CASCADE

Syntax ALTER DATABASE (Lanjutan) & DROP DATABASE
l Filespec ::=
( NAME = logical_file_name
[ , NEWNAME = new_logical_name ]
[ , FILENAME = 'os_file_name' ]
[ , SIZE = size ]
[ , MAXSIZE = { max_size UNLIMITED } ]
[ , FILEGROWTH = growth_increment ] )
l DROP DATABASE database_name [ ,...n ]
Contoh CREATE DATABASE
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = ‘C:\SQL Server Data\SaleDat.mdf',
SIZE = 8,
MAXSIZE = Unlimited,
FILEGROWTH = 2 )
LOG ON
( NAME = 'Sales_log',
FILENAME = ‘C:\SQL Server Data\SaleLog.ldf',
SIZE = 5,
MAXSIZE = 50,
FILEGROWTH = 1 )
Contoh ALTER DATABASE & DROP DATABASE
ALTER DATABASE Test1
ADD FILE
(
NAME = Test1dat2,
FILENAME = ‘C:\SQL Server Data\t1dat2.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
DROP DATABASE Test1

Komponen SQL (Lanjutan)
l Data Manipulation Language (DML)
Bahasa yang memungkinkan pengguna untuk mengajukan query dan untuk menyisipkan, menghapus, dan memodifikasi baris
l Data Control Language (DCL)
Bahasa untuk mengatur atau administrasi kewenangan akses data dan mengatur pemberlakuan hasil modifikasi data.




C. Data Control Language (DCL)
Merupakan perintah untuk melakukan pendefinisian pemakai yang boleh mengakses database, dan apa saja privilegennya.
DCL terdiri atas sekelompk data SQL untuk memberikan hak otorisasi mengakses database, mengalokasikan spase, pendefinisian space dan pengauditan penggunaan database.
Beberapa perintah ini merupakn fungsi dari DBA (Database administrator), perintah SQL DCL:
Commint, ROLLBACK, grant REVOKE.
Secara umum dcl merupakan bahasa yang digunaklan untuk melakukan pemakaian yang dapat melakukan akses dan manipulasi database, terutama perintah grant dan revoke.
Perintah commint dab rollback merupakan kelengkapan fasilitas dalam pembuatan aplikasi yang memungkinlan suatu transaksi yang terjadi untuk dapan segera disimpan atau dibatalkan transaksinya.

Fungsi agregat
merupakan fungsi yang disediakan SQL untuk melakukan ringkasan (summary) data, bykan menampilakan data baris perbaris seperti halnya pada perintah SQL: select.
Berikut adalah fungsi agregat:
- sum ()
- avg ()
- max ()
- min ()
- count ()

1. SUM
Sum merupakan fungsi agregat yang digunakan untuk melakukan penjumlahan isi field yang bertipe numeric yang namanya disebutkan namafield yang dijadikan parameter pada fungsi sum.



2. AVG
Fungsi ini digunakan untuk mendapatkan nilai rata-rata suatu field yang bertipe numeric yang namanya disebutkan sebagai parameter pada fungsi avg.

3. max
fungsi ini digunakan untuk mendapatkan nilai terbesar atau maximum dari field bertipe numeric yang nama fieldnya dijadikan parameter pada fungsi min

4. min
fungsi ini digunakan untuk mendapatkan nilai terkecil atau minimum dari field bertipe numeric yang nama fieldnya dijadikan parameter pada fungsi min

5. count
fungsi count digukan untuk mengetahui jumlah record dari suatu table. Jumlah record yang ditampilkan adalah jumlah record berdasarkan perintah select, apabila perintah select tidak disertai dengan kondisi, maka hasil count akan berupa seluruh record dari table yang diacu pada perintah select tersebut.

Dikutip dari:
Penerbit Informatika Bandung
Judul:MySQL

1 komentar:

tessy mengatakan...

You may not use materials from my website for tutorials, or in a published work. If you wish to do this, email me first, it is highly likely I will grant you permission.
Tessy Badriyah
(tessy@eepis-its.edu, http://lecturer.eepis-its.edu/~tessy).