Anda di halaman 1dari 10

PENUGASAN PENGOLAHAN BASISDATA

PERTEMUAN PRAKTIKUM KE-11

Bambang Dwi Sudrajat Kuncorojati


22.01.4928

PROGRAM STUDI D3 TEKNIK INFORMATIKA, FAKULTAS ILMU KOMPUTER


UNIVERSITAS AMIKOM YOGYAKARTA
2023-2024
Database Programming with SQL
____________________________________________________________
1. Buat tabel bernama rep_email menggunakan pernyataan berikut:
CREATE TABLE rep_email (
id NUMBER(6, 0) CONSTRAINT rel_id_pk PRIMARY KEY,
first_name VARCHAR2(20),
last_name VARCHAR2(25),
email_address VARCHAR2(25)
)

Isi table rep_email dengan menjalankan queri atau mengambil data pada tabel employees
yang hanya job_id ada “REP” tersebut. Pada perintah where UPPER (job_id) LIKE
‘%REP%’;
Hasil insertnya:

Jika dijalankan “select * from rep_email”

Jawab:
INSERT INTO rep_email(
id, first_name, last_name, email_address
)
SELECT
employee_id,
first_name,
last_name,
email
FROM
oehr_employees
WHERE
job_id LIKE '%REP%';

SELECT
*
FROM
rep_email;
Output:

Melakukan penginputan data ke dalam tabel rep_email dengan menyalin data dari tabel
employees dan memiliki job_id yang mengandung kata ”REP”. Kemudian perintah
selanjutnya digunakan untuk melihat data yang telah diinputkan ke dalam tabel rep_email.

2. Jalankan perintah queri berikut ini:


INSERT INTO sales_reps(id, name, salary, commission_pct)
SELECT
employee_id,
last_name,
salary,
commission_pct
FROM
oehr_employees
WHERE
job_id LIKE '%REP%';

a. Buatlah tabel sales_reps yang struktur tabel mengambil dari struktur tabel employees.
Dengan menggunakan describe tampilkan struktur tabel sales_reps.
b. Jalankan perintah queri diatas, tampilkan dan analisa hasil querinya.

Jawab:
a. Membuat tabel sales_reps
CREATE TABLE sales_reps AS (
SELECT
employee_id AS id,
last_name AS name,
salary,
commission_pct
FROM
oehr_employees
WHERE
0 = 1
);
DESCRIBE sales_reps;

Output:

Membuat tabel sales_reps dengan menyalin struktur tabel employees dan menambahkan
queri where 0=1 untuk menyalin struktur tabelnya saja tanpa menyalin data yang ada pada
tabel employees. Kemudian menggunakan describe untuk melihat struktur tabel
sales_reps sehingga dapat dikonfirmasi apakah struktur tabel benar-benar sudah sama
seperti tabel employees.
b. Jalankan perintah queri diatas, tampilkan hasilnya dan analisa hasil querinya.
INSERT INTO sales_reps(id, name, salary, commission_pct)
SELECT
employee_id,
last_name,
salary,
commission_pct
FROM
oehr_employees
WHERE
job_id LIKE '%REP%';

SELECT
*
FROM
sales_reps;

Output:

Perintah diatas digunakan untuk melakukan penginputan data tabel sales_reps dengan
menyalin data dari employees tetapi yang disalin hanya yang memiliki kata ”REP” dalam
job_id mereka. Kemudian output kedua diatas menunjukan data yang memiliki kata “REP”
dalam job_id mereka.
3. Pada chapter DP_12_2_id pada halaman 31 dan 32, Anda diminta menjelaskan setiap
kesimpulan dengan menggunakan contoh perintah queri.

Jawab:
SELECT * FROM sales_reps WHERE id = 150;

UPDATE sales_reps
SET salary = 15000
WHERE id = 150;

SELECT * FROM sales_reps WHERE id = 150;

Output:

Perintah sql queri bait pertama digunakan untuk mengubah data yang ada pada tabel.
Dengan menggunakan perintah UPDATE kemudian memasukkan column dan value yang
akan diubah dan ditambah WHERE data yang akan diubah. Output 1 dan 3 adalah contoh
sebelum dan sesudah diupdate.

DELETE FROM sales_reps


WHERE id = 150;

SELECT * FROM sales_reps WHERE id = 150;


Perintah sql selanjutnya (kedua) digunakan untuk menghapus data pada tabel, sebagai
contoh pada perintah diatas bait kedua, saya mencoba untuk menghapus data tabel
sales_reps yang memiliki id 150. Kemudian saat saya lakukan perintah select untuk id
150, data tidak ditemukan karena sudah saya hapus menggunakan perintah queri tadi.

SELECT * FROM sales_reps WHERE id = 160;

UPDATE sales_reps
SET salary = (SELECT salary FROM oehr_employees WHERE
employee_id = 120)
WHERE id = 160;

SELECT * FROM sales_reps WHERE id = 160;


Perintah queri ketiga adalah perintah update data tabel sama seperti perintah queri
pertama. Perbedaannya adalah perintah queri ketiga ini meggunakan subqueri sebagai
value data yang akan diubah. Tetapi subqueri tidak hanya bsa digunakan pada value data
yang akan diubah, melainkan dapat digunakan untuk mengisi value klausa where. Output
pertama dan ketiga diatas adalah contoh sebelum dan sesudah diubah.

DELETE FROM sales_reps


WHERE salary = (SELECT salary FROM oehr_employees WHERE
employee_id = 120)
AND id = 160;

SELECT * FROM sales_reps WHERE id = 160;

Perintah queri selanjutnya adalah perintah queri yang sama juga seperti perintah queri
kedua namun memiliki sedikit perbedaan, yaitu queri ini menggunakan subquery untuk
klausa WHERE-nya. Disini saya menambahkan AND karena salary yang bernilai sama
seperti employee_id 120 lebih dari satu.
Untuk point ke 4 ”Membuat dan menjalankan queri yang menggunakan subkueri yang
saling berhubungan untuk memperbarui dan menghapus dari tabel. Pada dasarnya sama
seperti pada perintah queri point ke 3. Jadi saya akan langsung lompat ke point 5 saja.

UPDATE sales_reps
SET name = (SELECT last_name FROM oehr_employees WHERE
employee_id = 999)
WHERE id = 151;

Perintah queri diatas mengembalikan error, karena struktur tabel sales_reps column name
tidak nullable, sedangkan value yang kita berikan adalah null, sehingga muncul lah error
tersebut. Ini adalah contoh pelanggaran constraint intefritas. Jadi kita harus selalu
menyesuaikan queri kita dengan struktur tabel yang akan kita kelola.

SELECT e.employee_id, e.salary, d.department_name


FROM employees e JOIN departments d USING (department_id)
WHERE job_id = 'ST_CLERK' AND location_id = 1500
FOR UPDATE
ORDER BY e.employee_id;
Perintah queri FOR UPDATE digunakan untuk mengunci baris yang sesuai dengan
kondisi yang diberikan. Setelah itu dapat menggunakan perintah COMMIT atau
ROLLBACK. Jika kedua perintah tersebut tidak dilakukan, maka baris tersebut akan
ditangguhkan (tidak bisa diapa-apakan). Biasanya perintah ini digunakan pada proses
TRANSAKSI. Saat pembayaran sudah dikonfirmasi maka akan melakukan perintah
COMMIT, jika tidak maka akan melakukan perintah ROLLBACK.

Anda mungkin juga menyukai