Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

SQL (Structure Query Language)

Presentasi serupa


Presentasi berjudul: "SQL (Structure Query Language)"— Transcript presentasi:

1 SQL (Structure Query Language)
SQL (Structure Query Language) Materi 10 – Data Manipulation Language

2 INSERT UPDATE DELETE Today! : Tujuan Pembelajaran
Menentukan subquery-subquery Menjelaskan tipe- tipe dari persoalan- persoalan yang bisa dipecahkan subquery Daftar tipe-tipe dari subquery Menulis subquery- subquery single-row dan multiple-row

3 Petunjuk mengerjakan Soal Latihan
Buat user baru dengan nama kelompok masing2 (bebas). User baru yang telah dibuat, memiliki tabel sama seperti tabel yang dimiliki oleh HR. Beri hak akses setara DBA Syntax copy tabel : Create table copy_emp AS (select * from empoyees);

4 INSERT Satu Baris Data Nillai Khusus, NULL & Date Menyalin Data

5 Dasar Teori Insert Pernyataan INSERT digunakan untuk menambahkan baris baru ke dalam tabel. Pernyataan tsb, membutuhkan 3 nilai : Nama tabel Nama-nama kolom dalam tabel untuk diisi Nilai-nilai yang sesuai untuk setiap kolom

6 Menyalin Data dengan Subquery
INSERT INSERT Klausa “Values” NULL Date Menyalin Data dengan Subquery

7 INSERT – Klausa values INSERT INTO nama_tabel(field ke-1, ….. field ke-n) VALUES(nilai_field_ke-1, …. nilai_field_ke-n); INSERT INTO departments (department_id, department_name, manager_id, location_id) VALUES (70, ‘Public Relations’, 100, 1700); Untuk kolom yang bertipe karakter (string) dan tanggal, perlu diberi tanda petik tunggal (‘ ‘). Nilai atau data yang akan dimasukkan, ditulis dengan urutan yang sama dengan urutan nama kolom yang dicantumkan. inner query menentukan penghasilan dari pegawai bernama Abel. Outer query mengambil hasil dari inner query dan menggunakan hasil ini untuk menampilkan semua pegawai yang berpenghasilan lebih dari jumlah tersebut.

8 INSERT – Klausa values Cara lain dalam penggunaan perintah Insert adalah memasukkan nilai atau data dalam tabel secara implisit tanpa menuliskan nama kolomnya. Cara ini mengharuskan untuk menuliskan setiap nilai sesuai dengan urutan kolom yang dibuat (urutan kolom dapat dilihat menggunakan perintah DESCRIBE). INSERT INTO departments VALUES (70, ‘Public Relations’, 100, 1700);

9 NILAI NULL Penggunaan perintah Insert secara implisit akan memasukkan nilai Null ke dalam kolom yang telah didefinisikan null secara otomatis. Jika menggunakan perintah insert dengan menampilkan nama kolom yang akan diisi, tuliskan kata NULL dalam klausa values. Untuk menentukan string yg kosong atau tanggal yg hilang, gunakan tanda kuti tunggal (single quotation) – tanpa ada spasi diantaranya.

10 Tabel copy_f_staffs Perhatikan :
Panjang (Length) data untuk character dan tanggal (dates), Jumlah digit (Precision) Jumlah digit ke kanan desimal (Scale) The OVERTIME_RATE column allows numbers with a Precision of 5 and a Scale of 2. The maximum value allowed in this column is

11 NILAI NULL ~ ERROR Kolom SALARY didefinisikan sbg kolom NOT NULL.

12 NILAI KHUSUS Nilai khusus seperti SYSDATE dan USER dapat dimasukkan menggunakan klausa Values pada perintah Insert. SYSDATE masuk pada kolom dengan tipe data DATE dan TIME. Format default : DD-MON-RR . Time : 00:00:00 USER memasukkan nama username session saat ini.

13 NILAI KHUSUS ~ ARITMATIKA
Fungsi dan ekspresi hitung juga bisa digunakan dalam klausa VALUES. Contoh dibawah, perhatikan sysdate dan penghitungannya.

14 NILAI KHUSUS ~ DATE TO_CHAR berfungsi untuk mengkonversi tanggal untuk character. Reminds you :

15 NILAI KHUSUS ~ DATE (contd)
Demikian pula, jika INSERT dengan non default format utk tanggal, gunakan TO_DATE. Menyisipkan waktu (jam)

16 Menyalin Data dengan Subquery
Bagaimana ketika harus memasukkan 100 baris data.. Apakah hrs mengeksekusi 100 perintah? Dengan menggunakan SUBQUERY, dapat menyalin 100 atau bahkan 1000 baris. (Subquery dalam INSERT) Tidak perlu klausa VALUES saat menggunakan subquery untuk menyalin baris.

17 (contd) Menyalin Data dengan Subquery
Contoh : Tabel baru SALES_REPS diisi dengan data salinan dari tabel EMPLOYEES. Klausa WHERE, memilih karyawan yang memiliki job_id ‘%REP%’

18 (contd) Menyalin Data dengan Subquery
Jumlah kolom dan tipe data dalam klausa INSERT, harus sesuai dengan jumlah kolom dan tipe data dalam subquery. Subquery tidak menggunakan tanda kurung di klausa WHERE dan SELECT. Untku menyalin semua data (baris dan kolom). Menggunakan syntax :

19 UPDATE Single Row Subquery Multiple Row Subquery Klausa HAVING

20 Teori UPDATE "There is nothing permanent except change.“
Updating, Inserting, Deleting, dan Managing Data adalah Pekerjaan (DBA) Database Administrator. Anda menjadi DBA dari skema Anda sendiri dan belajar mengelola database Anda. Wouldn't it be a wonderful world if, once you got something done, it never needed to be changed or redone? Your bed would stay made, your clothes would stay clean, and you'd always be getting passing grades. Unfortunately in databases, as in life, "There is nothing permanent except change."

21 Teori UPDATE (contd) Perintah Update digunakan untuk mengubah data tertentu berdasarkan kondisi yang diberikan pada klausa WHERE. Perintah Update membutuhkan empat nilai: Nama tabel Nama kolom yang nilainya akan diubah Nilai baru untuk setiap kolom yang diubah Kondisi yang mengidentifikasikan baris mana yang akan di modifikasi. Wouldn't it be a wonderful world if, once you got something done, it never needed to be changed or redone? Your bed would stay made, your clothes would stay clean, and you'd always be getting passing grades. Unfortunately in databases, as in life, "There is nothing permanent except change."

22 Teori UPDATE (contd) Sintaks perintah UPDATE : UPDATE nama_tabel
SET nama_field = data_baru WHERE kondisi_update; UPDATE employees SET department_id = 70 WHERE employee_id = 113; 1 row updated

23 UPDATE ~ Klausa where Jika klausa WHERE dihilangkan, maka semua baris pada tabel tersebut diubah. Mengubah beberapa kolom dan/beberapa baris dalam satu perintah UPDATE. UPDATE employees SET department_id = 70 22 rows updated

24 UPDATE ~ Subquery Menggunakan single-row subquery untuk memberikan nilai baru pada kolom yang diperbarui. Merubah gaji pegawai (id = 12) supaya memiliki gaji yang sama dengan pegawai lain (id = 9). UPDATE copy_f_staffs SET salary = (SELECT salary FROM copy_f_staffs WHERE id = 9) WHERE id = 12;

25 UPDATE ~ Berdasarkan tabel lain
Subquery dapat mengambil informasi dari satu tabel yang kemudian digunakan untuk memperbarui tabel lain. Merubah gaji pegawai (id = 12) supaya memiliki gaji yang sama dengan pegawai lain (id = 9). UPDATE copy_f_staffs SET salary = (SELECT salary FROM f_staffs WHERE id = 9) WHERE id = 9;

26 DELETE

27 Teori DELETE Perintah Delete digunakan untuk menghapus baris berdasarkan kondisi tertentu. Perintah Delete memerlukan dua nilai: Nama tabel Kondisi yang mengidentifikasi baris yang akan dihapus Syntax delete : DELETE FROM nama_tabel [ WHERE kondisi_hapus ]; DELETE FROM departments WHERE department_name = ‘Finance’;

28 DELETE ~ Subquery Untuk menghapus data atau baris berdasarkan tabel lain, digunakan subquery dalam perintah delete. Contoh : Menghapus baris dari tabel Employees untuk semua pegawai yang bekerja pada departemen Shipping. DELETE FROM employees WHERE department_id = (SELECT department_id FROM departments WHERE department_name = ‘Shipping’);

29 ~ Exercise ~ Menghapus baris dari semua pegawai yang bekerja untuk manajer yang mengelola lebih dari 2 departemen. Mana query yang akan error? Jelaskan UPDATE employees SET department_id = 15 WHERE employee_id = 100; DELETE FROM departments WHERE department_id = 10; UPDATE employees SET department_id = 10 WHERE department_id = 20;

30 MERGE

31 Teori MERGE Untuk menangani operasi manipulas data yang berukuran sangat besar, Oracle menyediakan perintah Merge. Merge menyelesaikan dua tugas yaitu : INSERT UPDATE Jika ada value yang hilang, baris baru akan di-insert-kan Jika value ada tapi perlu dirubah, MERGE akan memperbaruinya. Satu kesalahan umum pada subquery terjadi ketika lebih dari satu baris dikembalikan untuk suatu single-row subquery. Pada pernyataan SQL dalam slide, subquery berisi suatu klausa GROUP BY, yang berakibat subquery itu akan mengembalikan banyak baris, satu dari setiap kelompok yang ditemukannya. Dalam kasus ini, hasil dari subquery adalah 4400, 6000, 2500, 4200, 7000, 17000, dan Outer query mengambil hasil-hasil itu dan menggunakannya pada klausa WHERE. Klausa WHERE berisi suatu operator samadengan ( = ), suatu operator pembanding single-row yang dikira hanya satu nilai. Operator = tidak menerima lebih dari satu nilai dari subquery dan oleh karena itu menghasilkan kesalahan. Untuk memperbaiki kesalahan ini, rubah operator = menjadi IN.

32 Teori MERGE MERGE INTO destination-table USING source-table ON matching-condition WHEN MATCHED THEN UPDATE SET …… WHEN NOT MATCHED THEN INSERT VALUES (……); Nilai yang dibaca dari source-table dan dibandingkan dengan nilai pada destination-table menggunakan kondisi yang cocok. Jika nilai yang cocok ada pada destination-table, nilai dari source- table digunakan untuk memperbarui kolom yang cocok dengan destination-table. Jika tidak ada baris yang cocok, nilai dari source-table digunakan untuk memasukkan data baru pada destination-table.

33 Teori MERGE Contoh penggunaan MERGE :
Menggunakan tabel Employees (dengan alias e) sebagai source- table untuk memasukkan dan memperbarui baris data pada tabel Copy_Emp (dengan alias c). MERGE INTO copy_emp c USING employees e ON (c.employee_id = e.employee_id) WHEN MATCHED THEN UPDATE SET c.last_name = e.last_name, c.department_id = e.department_id WHEN NOT MATCHED THEN INSERT VALUES (e.employee_id, e.last_name, e.department_id);

34 Teori MERGE Pegawai dengan employee_id 100 dan 103 memilliki nilai yang cocok dengan tabel Copy_emp, sehingga nilai yang cocok tersebut diperbarui. Pegawai dengan employee_id 142 tidak memiliki nilai yang cocok dengan tabel Copy_emp, sehingga nilai tersebut dimasukkan pada tabel Copy_emp.

35 Next : Pengumpulan Tugas


Download ppt "SQL (Structure Query Language)"

Presentasi serupa


Iklan oleh Google