Data Manipulation Languange (DML) Perintah INSERT dan DELETE MI2143 – Dasar SQL Semester Ganjil / Tahun Ajaran 2015-2016 Data Manipulation Languange (DML) Perintah INSERT dan DELETE Materi selanjutnya yang akan disampaikan pada presentasi mata kuliah Dasar SQL adalah Data Manipulation Language Selamat mengikuti Disusun oleh: Ir. Ely Rosely, M.B.S. – ely.rosely@tass.telkomuniversity.ac.id Hanya dipergunakan untuk kepentingan pengajaran di Lingkungan Universitas Telkom
Tujuan Pembelajaran 1. Siswa menguasai perintah-perintah untuk menambahkan baris data ke dalam sebuah tabel menggunakan perintah DML 2. Siswa menguasai perintah-perintah untuk menghapus baris data di dalam sebuah tabel 3. Siswa menguasai perintah-perintah untuk mengubah baris data dalam sebuah tabel Tujuan Pembelajaran dari materi ini adalah 1. Siswa menguasai perintah-perintah untuk menambahkan baris data ke dalam sebuah tabel menggunakan perintah DML. 2. Siswa menguasai perintah-perintah untuk menghapus baris data di dalam sebuah tabel menggunakan perintah DML. 3. Siswa menguasai perintah-perintah untuk mengubah baris data dalam sebuah tabel menggunakan perintah DML.
Data Manipulation Language (DML) • Perintah DML diigunakan untuk: – menambah baris data ke dalam tabel – mengubah baris data yang ada dalam tabel – menghapus data-data dari tabel Data manipulation language (DML) adalah bagian utama pada SQL. Bila kita ingin menambahkan, mengubah, atau menghapus data dalam basis data Maka kita harus menggunakan DML.
Menambah Baris Data ke Tabel Baris baru Produk Masukkan baris baru ke tabel Produk Bila kita ingin menambahkan satu baris data ke dalam suatu tabel, maka kita harus menggunakan suatu perintah untuk menambahkan baris data tersebut sehingga tersimpan dalam tabel. Contoh dalam slide, data yang berisi kd produk P-008, nmproduk minyak goreng, satuan botol 1000ml, harga 25000, dan stok 26 berhasil dimasukkan ke dalam tabel produk. Bagaimana caranya? Kita akan pelajari pada slide selanjutnya.
Sintaks Perintah INSERT • Menambah baris data baru ke tabel dengan menggunakan perintah INSERT. INSERT INTO table [(column [, column...])] VALUES (value [, value...]); • Dengan sintaks ini, hanya satu baris data yang dimasukkan ke tabel dalam sekali eksekusi Kita dapat menambahkan data ke dalam suatu tabel dengan menggunakan perintah INSERT. Sintaks Pada slide: Table adalah nama tabel, column adalah nama kolom pada tabel yang akan ditambahkan datanya, value adalah nilai untuk kolom yang bersesuaian urutannya. • Dengan sintaks ini, hanya satu baris data yang dimasukkan ke tabel dalam sekali eksekusi
Memasukkan Baris Data Baru • Insert baris data baru termasuk nilai untuk setiap kolomnya. • Urutan nilai sama dengan urutan kolom secara default dalam tabel. • Dalam klausa INSERT, penulisan urutan kolom bersifat opsional. INSERT INTO produk(kdproduk, nmproduk, satuan, harga, stok) VALUES (‘P-008’, ‘Minyak goreng’, ‘botol 1000ml’, 25000, 26); 1 row created Kita dapat meng-insert-kan data dengan menyebutkan nama-nama kolom beserta nilainya. Urutan nilai harus sama dengan urutan kolomnya. Dalam klausa INSERT, penulisan urutan kolom bersifat opsional. Bila kita tidak menyebutkan nama-nama kolomnya, maka kita harus tahu urutan kolom pada tabel, karena urutan nilai harus sama dengan urutan kolom pada tabel Agar tidak salah dalam mengurutkan nilainya, sangat disarankan untuk menuliskan nama kolom dalam klausa INSERT. Gunakan tanda kutip tunggal untuk nilai karakter dan date, sedangkan untuk tipe number tidak perlu menggunakan tanda kutip tunggal. • Gunakan tanda kutip tunggal untuk nilai karakter dan date.
INSERT dengan nilai NULL • Metoda Implisit: menghilangkan kolom dari deretan nama kolom. INSERT INTO produk(kdproduk, nmproduk ) VALUES (‘P-008’, ‘Minyak goreng’); 1 row created • Metoda Eksplisit: Tuliskan keyword NULL dalam klausa VALUES VALUES clause. Ada 2 Metoda untuk meng-insert-kan nilai NULL Secara implisit, hilangkan nama kolom dari urutan kolomnya seperti diperlihatkan pada sintaks yang pertama. Secara eksplisit tulis keyword NULL pada urutan nilainya atau klausa VALUES Pastikan kolom yang diberi nilai NULL adalah kolom yang bersifat null, dapat dilihat dengan perintah DESCRIBE pada SQL*Plus. DBMS akan memvalidasi semua tipe data, batasan data, dan data integrity constraint. Setiap kolom yang tidak disebutkan dalam klausa INSERT, maka akan diberi nilai NULL. Error yang umum terjadi adalah: • Nilai untuk kolom yang NOT NULL tidak dituliskan. • Nilai duplikat melanggar constraint unik. • constraint Foreign key tidak terpenuhi atau dilanggar. • constraint CHECK tidak terpenuhi atau dilanggar. • Tipe Data tidak sesuai dengan kolomnya. • Nilai terlalu panjang, sehingga tidak bisa masuk ke dalam kolomnya. INSERT INTO produk VALUES (‘P-008’, ‘Minyak goreng’, NULL, NULL, NULL); 1 row created
INSERT dengan Nilai Special Fungsi SYSDATE menyimpan tanggal dan waktu pada saat Sintaks SQL dieksekusi INSERT INTO penjualan(kdjual, tgljual , kdpetugas) VALUES (‘T-001’, SYSDATE , ‘K-001’); 1 row created Kita dapat menggunakan fungsi untuk memasukkan nilai spesial ke dalam tabel. Contoh pada slide adalah penyimpanan data penjualan, dimana tanggal pada saat perintah INSERT dieksekusi disimpan dalam kolom tgljual dengan menggunakan fungsi SYSDATE. Fungsi SYSDATE menyediakan tanggal hari ini yang bisa digunakan pada sintaks SQL
INSERT dengan Nilai Special Date Penambahan data penjualan. INSERT INTO penjualan VALUES (‘T-002’, TO_DATE(‘DEC 22, 2013‘, 'MON DD, YYYY'), ‘K-002’); 1 row created Verifikasi Hasil Penambahan Bila kita meng-insert-kan nilai date dengan format yang berbeda dengan format defaultnya, maka kita harus menggunakan fungsi TO_DATE. Contoh pada slide, karena format date yang akan di insertkan ‘MON DD, YYYY’, berbeda dengan format defaultnya yaitu DD-MON-YY, maka fungsi TO_DATE harus digunakan dalam klausa VALUES ini. Untuk memverifikasi hasil INSERT dapat digunakan perintah SELECT. KDJUAL TGLJUAL KDPETUGAS T-002 22-DEC-13 K-002
Menghapus Data dari Tabel Produk Hapus data dari tabel produk DML mempunyai kemampuan untuk menghapus data dari tabel. Contoh pada slide memperlihatkan bagaimana satu baris data yang berisi informasi data pewangi lantai dihapus dari tabel produk. Bagaimana hal ini dapat dilakukan? Kita lihat pada slide selanjutnya..
Perintah DELETE Kita dapat menghapus data dari tabel dengan menggunakan perintah DELETE DELETE [FROM] table [WHERE condition]; Kita dapat menghapus satu atau lebih baris data dari tabel dengan menggunakan perintah DELETE. Pada sintaks: table adalah nama tabel condition mengidentifikasi baris data yang akan di hapus dimana dalam condition ini terdapat terdapat nama kolom, ekspresi, nilai konstan, subquery, atau operator pembanding seperti =, <, >, dll. Jika tidak ada baris data yang di hapus maka akan keluar pesan “0 rows deleted”
DELETE Baris Data dari Tabel Baris data dihapus jika menggunakan klausa WHERE DELETE FROM Produk WHERE nmproduk = ‘Pewangi lantai'; 1 row deleted. Semua data dalam tabel akan terhapus bila klausa WHERE dihilangkan. Bila kita ingin menghapus baris data tertentu dari tabel, kita bisa menggunakan klausa WHERE. Contoh pada slide: perintah DELETE yang pertama menghapus data produk dengan nama pewangi lantai. Perhatikan pada klausa WHERE nya dimana kondisinya adalah nmproduk=‘Pewangi lantai’. Hasilnya: satu data terhapus.. Perintah DELETE yang ke dua tidak menggunakan klausa WHERE sehingga semua data akan terhapus dari tabel. Hasilnya 9 data terhapus.. DELETE FROM Produk; 9 rows deleted.
Merubah Data dalam Tabel Produk Ubah data di tabel produk Data dalam suatu tabel dapat diubah nilainya. Perubahan bisa dilakukan terhadap satu kolom atau lebih. Contoh pada slide, data satuan dari minyak goreng dirubah, yang asalnya botol 1000ml dirubah menjadi plastik 1000ml. Bagaimana hal ini bisa dilakukan? Kita pelajari pada slide selanjutnya.
Sintaks Perintah UPDATE • Merubah data yang ada di tabel dengan menggunakan perintah UPDATE. UPDATE table SET column = value [, column = value, ...] [WHERE condition]; • Dapat merubah lebih dari satu baris data Kita dapat merubah nilai data dengan menggunakan perintah UPDATE. Perhatikan sintaks pada slide: - table adalah nama tabel - column adalah nama kolom yang akan dirubah nilainya. - value adalah nilai baru dari kolom - condition mengidentifikasi baris data yang akan diubah nilainya, bisa berupa nama kolom, ekspresi, konstanta, subquery, atau operator pembanding. Harap diperhatikan, gunakan primary key untuk mengidentifikasi satu baris data. Bila menggunakan kolom yang lain bisa saja ada yang bernilai sama sehingga data yang ter update lebih dari satu baris.
Merubah Data dalam Tabel • Satu baris data atau beberapa baris data akan berubah bila menggunakan klausa WHERE UPDATE produk SET satuan='plastik 1000ml' WHERE kdproduk='P-008'; 1 row updated • Semua baris data dalam tabel akan berubah bila klausa WHERE dihilangkan. Bila merubah data dengan menggunakan kolom primary key, maka data yang ter update hanya satu baris karena tidak akan ada data yang bernilai sama pada kolom primary key. Contoh pada perintah UPDATE yang pertama menggunakan kolom PRIMARY KEY sehingga data yang terupdate hanya 1 baris. Dapat dilihat pada pesannya yaitu one row updated Pada perintah update yang kedua tidak menggunakan klausa WHERE sehingga semua baris data akan ter update dalam tabel produk tersebut. Karena dalam produk terdapat 9 baris data, maka pesan yg keluar adalah nine rows updated UPDATE produk SET satuan='plastik 1000ml'; 9 rows updated
Merubah Beberapa Kolom dalam Tabel • Bila merubah data untuk beberapa kolom maka bisa digunakan tanda koma (,) diantara kolom-kolom yang akan dirubah. UPDATE produk SET satuan='plastik 1000ml‘, stok=50 WHERE kdproduk='P-008'; 1 row updated Perintah UPDATE dapat merubah nilai dari beberapa kolom. Bila merubah data untuk beberapa kolom maka bisa digunakan operator AND diantara kolom-kolom yang akan dirubah. Contoh pada slide data produk dengan kdproduk P-008 akan dirubah nilai satuannya menjadi plastik 1000ml dan nilai stoknya menjadi 50.
Reference N. Greenberg. Oracle Database 10g: SQL Fundamental 1 – Volume 1 Student Guide. California: Oracle Publisher 2004. Bila ingin mempelajari materi ini secara detail silahkan membaca buku yang tertera pada slide ini. Terima kasih.