Section 9 Quiz Database Programming with SQL Oracle Bahasa Indonesia

section-9-quiz-database-programming-with-sql-oracle-bahasa-indonesia.png

SQL (kependekan dari: Structured Query Language) adalah bahasa standar yang digunakan untuk mengakses sebuah basis data relasional, termasuk Oracle. SQL menyediakan sekumpulan statemen untuk melakukan proses penyimpanan, modifikasi, dan pengambilan data di dalam database.

Section 9

(Jawab semua pertanyaan di bagian ini)

Manakah dari berikut yang merupakan operator SET? (pilih dua)
MINUS, PLUS
UNION ALL, PLUS ALL
UNION, MINUS
UNION ALL, INTERSECT

Ketika menggunakan operator SET, jumlah kolom dan jenis data kolom harus sama dalam semua pernyataan SELECT yang digunakan dalam kueri. Benar atau Salah.
TRUE
FALSE

Ketika menggunakan operator SET, nama kolom yang cocok harus sama dalam semua pernyataan SELECT yang digunakan dalam kueri Benar atau Salah?
TRUE
FALSE

Memeriksa pernyataan berikut:
SELECT department_id, manager_id, job_id, SUM(salary)
FROM employees
GROUP BY ROLLUP(department_id, manager_id)

Data ekstra apa yang akan dihasilkan oleh kueri ini?

Subtotal untuk departement_id, dan total jumlah untuk gaji
Subtotal untuk departement_id, job_id, dan total jumlah untuk gaji
Subtotal untuk departement_id, job_id, manager_id, dan total jumlah untuk gaji
Pernyataan ini akan gagal.

CUBE akan melakukan referensi silang kolom yang tercantum dalam klausa ______ untuk membuat kumpulan grup lebih besar.
WHERE
SELECT
GROUP BY

Anda menggunakan fungsi GROUPING untuk:
Mengidentifikasi nilai baris ekstra yang dibuat oleh operasi ROLLUP atau CUBE
Mengagregat baris menggunakan SUM, MIN, MAX, dan COUNT
Menghasilkan nilai subtotal dan tabulasi

Anda menggunakan fungsi GROUPING untuk ______ baris database dari baris yang ditabulasikan.
COMPUTE
COUNT
DISTINGUISH
CREATE

GROUPING SETS merupakan ekstensi lain untuk klausa GROUP BY dan digunakan untuk menentukan beberapa pengelompokan data, tetapi memberikan satu kumpulan hasil. Benar atau Salah?
TRUE
FALSE

Memeriksa pernyataan berikut:
SELECT department_id, manager_id, job_id, SUM(salary)
FROM employees
GROUP BY GROUPING SETS(.......);

Pilih klausa GROUP BY GROUPING SETS yang benar dari daftar berikut:

GROUP BY GROUPING SETS ((department_id, manager_id), (department_id, SUM(salary), (manager_id, job_id))
GROUP BY GROUPING SETS (department_id, salary), (department_id, job_id), (department_id, manager_id)
GROUP BY GROUPING SETS ((department_id, manager_id), (department_id, job_id), (manager_id, job_id))
GROUP BY GROUPING SETS (department_id, AVG(salary)), (department_id, job_id), (department_id, manager_id)

Evaluasi pernyataan SELECT ini:
SELECT COUNT(employee_id), department_id
FROM employees
GROUP BY department_id;

Anda hanya ingin menyertakan karyawan yang mendapat lebih dari 15000.
Klausa mana yang harus Anda sertakan dalam pernyataan SELECT?

WHERE salary > 15000
HAVING SUM(salary) > 15000
WHERE SUM(salary) > 15000
HAVING salary > 15000

Tabel PRODUCTS berisi kolom berikut:
PROD_ID NUMBER(4)
PROD_NAME VARCHAR(20)
PROD_CAT VARCHAR2(15)
PROD_PRICE NUMBER(5)
PROD_QTY NUMBER(4)

Anda harus mengidentifikasi harga produk minimum dalam setiap kategori produk.
Pernyataan mana yang bisa Anda gunakan untuk menyelesaikan tugas ini?

SELECT prod_price, MIN (prod_cat)
FROM products
GROUP BY prod_cat;
SELECT prod_cat, MIN (prod_price)
FROM products
GROUP BY prod_cat;
SELECT prod_cat, MIN (prod_price)
FROM products
GROUP BY prod_price;
SELECT MIN (prod_price), prod_cat
FROM products
GROUP BY MIN (prod_price), prod_cat;

fungsi group dapat di-nesting hingga kedalaman berapa?
fungsi group tidak dapat di-nesting.
Tiga
Empat
Dua

Manakah dari pernyataan SQL berikut yang mungkin menampilkan jumlah orang dengan nama belakang yang sama:
SELECT first_name, last_name, COUNT(employee_id)
FROM EMPLOYEES
GROUP BY last_name;
SELECT employee_id, COUNT(last_name)
FROM EMPLOYEES
GROUP BY last_name;
SELECT last_name, COUNT(last_name)
FROM EMPLOYEES
GROUP BY last_name;
SELECT employee_id, DISTINCT(last_name)
FROM EMPLOYEES
GROUP BY last_name;

Evaluasi pernyataan SELECT ini:
SELECT MAX(salary), department_id
FROM employees
GROUP BY department_id;

Nilai mana yang ditampilkan?

Gaji tertinggi di setiap departemen
Karyawan dengan gaji tertinggi untuk setiap departemen
Gaji tertinggi untuk semua karyawan
Karyawan dengan gaji tertinggi

Tabel MANUFACTURER berisi kolom berikut:
MANUFACTURER_ID NUMBER
MANUFACTURER_NAME VARCHAR2(30)
TYPE VARCHAR2(25)
LOCATION_ID NUMBER

Anda perlu menampilkan nomor jenis unik produsen di setiap lokasi. Pernyataan SELECT mana yang sebaiknya Anda gunakan?

SELECT location_id, COUNT(DISTINCT type)
FROM manufacturer
GROUP BY type;
SELECT location_id, COUNT(DISTINCT type)
FROM manufacturer;
SELECT location_id, COUNT(type)
FROM manufacturer
GROUP BY location_id;
SELECT location_id, COUNT(DISTINCT type)
FROM manufacturer
GROUP BY location_id;

Operator ___________ menghasilkan semua baris dari kedua tabel, setelah meniadakan duplikat.
INTERSECT
UNION
MINUS
UNION ALL

Jika Anda ingin mencakup subtotal dan jumlah total untuk semua kolom yang disebutkan dalam klausa GROUP BY, mana dari ekstensi berikut yang sebaiknya Anda gunakan ke klausa GROUP BY?
GROUP BY ALL COLUMNS
CUBE
HAVING
ROLLUP

Memeriksa pernyataan berikut:
SELECT department_id, manager_id, job_id, SUM(salary)
FROM employees
GROUP BY GROUPING SETS((department_id, manager_id), (department_id, job_id))

Data apa yang akan dihasilkan oleh kueri ini?

Jumlah gaji untuk (department_id, job_id) dan (department_id, manager_id)
Jumlah gaji untuk (department_id, job_id, manager_id)
Subtotal untuk (job_id, manager_id)
Pernyataan ini akan gagal.

Tabel PRODUCTS berisi kolom berikut:
PRODUCT_ID NUMBER(9) PK
CATEGORY_ID VARCHAR2(10)
LOCATION_ID NUMBER(9)
DESCRIPTION VARCHAR2(30)
COST NUMBER(7,2)
PRICE NUMBER(7,2)
QUANTITY NUMBER

Anda menampilkan total tambahan biaya untuk setiap kategori produk berdasarkan lokasi.
Anda harus memasukkan produk dengan harga kurang dari $25,00.
Tambahan biaya untuks etiap item setara dengan nilai kuantitas dikalikan nilai biaya.
Pernyataan SQL mana yang akan menampilkan hasil yang diinginkan?

SELECT SUM(cost * quantity) TOTAL, location_id
FROM products
WHERE price < 25.00
GROUP BY location_id;
SELECT SUM(cost * quantity) TOTAL
FROM products
WHERE price < 25.00;
SELECT category_id, SUM(cost * quantity) TOTAL,location_id
FROM products
WHERE price > 25.00
GROUP BY category_id, location_id;
SELECT category_id, SUM(cost * quantity) TOTAL, location_id
FROM products
WHERE price < 25.00
GROUP BY category_id, location_id;

Manakah pernyataan tentang fungsi group yang benar?
Kueri yang meliputi fungsi group dalam daftar SELECT harus menyertakan klausa GROUP BY.
fungsi group mengabaikan nilai null.
Fungsi kelompok dapat digunakan dalam klausa WHERE.
fungsi group hanya dapat digunakan dalam daftar SELECT.

Tabel PLAYERS berisi kolom berikut:
PLAYER_ID NUMBER PK
PLAYER_NAME VARCHAR2 (30)
TEAM_ID NUMBER
HIRE_DATE DATE
SALARY NUMBER (8,2)

Klausa mana yang mewakili penggunaan fungsi agregat yang valid? (Pilih tiga.)

WHERE hire_date > AVG(hire_date)
HAVING MAX(salary) > 10000
GROUP BY MAX(salary)
ORDER BY AVG(salary)
SELECT AVG(NVL(salary, 0))

Evaluasi pernyataan ini:
SELECT department_id, AVG(salary)
FROM employees
WHERE job_id <> 69879
GROUP BY job_id, department_id
HAVING AVG(salary) > 35000
ORDER BY department_id;

Klausa mana yang membatasi hasil? Pilih dua.

HAVING AVG(salary) > 35000
GROUP BY job_id, department_id
WHERE job_id <> 69879
SELECT department_id, AVG(salary)

Tabel PAYMENT berisi kolom berikut:
PAYMENT_ID NUMBER(9) PK
PAYMENT_DATE DATE
CUSTOMER_ID NUMBER(9)

Pernyataan SELECT mana yang dapat Anda gunakan untuk menampilkan berapa kali setiap pembayaran pelanggan dilakukan antara 1 Januari 2003 hingga 30 Juni 2003?

SELECT COUNT(payment_id)
FROM payment
WHERE payment_date BETWEEN '01-Jan-2003' AND '30-Jun-2003';
SELECT customer_id, COUNT(payment_id)
FROM payment
WHERE payment_date BETWEEN '01-Jan-2003' AND '30-Jun-2003';
SELECT customer_id, COUNT(payment_id)
FROM payment
WHERE payment_date BETWEEN '01-Jan-2003' AND '30-Jun-2003'
GROUP BY customer_id;
SELECT COUNT(payment_id)
FROM payment
WHERE payment_date BETWEEN '01-Jan-2003' AND '30-Jun-2003'
GROUP BY customer_id;

Apa yang akan dilakukan oleh Pernyataan SQL berikut?
SELECT job_id, COUNT(*)
FROM employees
GROUP BY job_id;

Menampilkan semua pekerjaan dengan jumlah karyawan yang sama dengan pekerjaan
Menampilkan setiap id pekerjaan dan jumlah orang yang ditetapkan untuk id pekerjaan tersebut
Menampilkan semua karyawan dan mengelompokkan mereka menurut pekerjaan
Menampilkan hanya nomor job_ids

Tabel EMPLOYEES berisi kolom berikut:
ID_NUMBER NUMBER Primary Key
NAME VARCHAR2 (30)
DEPARTMENT_ID NUMBER
SALARY NUMBER (7,2)
HIRE_DATE DATE

Evaluasi pernyataan SQL ini:

SELECT id_number, name, department_id, SUM(salary)
FROM employees
WHERE salary > 25000
GROUP BY department_id, id_number, name
ORDER BY hire_date;

Mengapa pernyataan ini akan menyebabkan kesalahan?

Kolom HIRE_DATE TIDAK disertakan dalam klausa GROUP BY.
Klausa HAVING hilang.
Klausa WHERE berisi kesalahan sintaks.
Kolom SALARY TIDAK disertakan dalam klausa GROUP BY.

Pernyataan manakah mengenai klausa GROUP BY yang benar?
Untuk mengecualikan baris sebelum membaginya ke dalam grup menggunakan klausa GROUP BY, Anda harus menggunakan klausa WHERE.
Anda harus menggunakan klausa HAVING dengan klausa GROUP BY.
Secara default, baris tidak diurutkan ketika klausa GROUP BY digunakan.
Anda dapat menggunakan alias kolom di klausa GROUP BY.

CUBE dapat diterapkan ke semua fungsi agregat termasuk AVG, SUM, MIN, MAX, dan COUNT. Benar atau Salah?
TRUE
FALSE

Anda menggunakan ROLLUP untuk:
menghasilkan nilai subtotal
menghasilkan satu rangkaian hasil
melakukan tabulasi silang nilai

Untuk mengendalikan urutan baris yang dihasilkan menggunakan operator SET, klausa ORDER BY _______ dan ditempatkan dalam pernyataan SELECT ________ kueri.
ONCE; LAST
IN ALL; LAST
TWICE; FIRST
ONCE; FIRST

Perbedaan antara UNION dan UNION ALL adalah
UNION adalah sinonim dari UNION ALL.
UNION ALL lebih seperti NATURAL JOIN.
Tidak ada bedanya; Anda mendapatkan hasil yang sama persis dari keduanya.
UNION akan menghapus duplikat; UNION ALL menghasilkan semua baris dari semua kueri, termasuk duplikat.

Evaluasi pernyataan SELECT ini:
SELECT MIN(hire_date), department_id
FROM employees
GROUP BY department_id;

Nilai mana yang ditampilkan?

Tanggal perekrutan paling awal di setiap departemen
Tanggal perekrutan dalam tabel EMPLOYEES yang berisi NULL
Tanggal perekrutan terbaru dalam tabel EMPLOYEES
Tanggal perekrutan paling awal dalam tabel EMPLOYEES

Tabel EMPLOYEES berisi kolom berikut:
EMPLOYEE_ID NUMBER(10) PRIMARY KEY
LAST_NAME VARCHAR2(20)
FIRST_NAME VARCHAR2(20)
DEPARTMENT VARCHAR2(20)
HIRE_DATE DATE
SALARY NUMBER(10)

Anda ingin membuat laporan yang meliputi setiap nama belakang karyawan, nomor identifikasi karyawan, tanggal perekrutan, dan gaji. Laporan hanya boleh meliputi karyawan yang telah bekerja di perusahaan selama lebih dari satu tahun dan memiliki gaji melebihi $40.000.
Manakah dari pernyataan SELECT berikut yang akan menyelesaikan tugas ini?

SELECT employee_id, last_name, salary
FROM employees
WHERE salary > 40000
AND hire_date =
   (SELECT hire_date
    FROM employees
    WHERE (sysdate-hire_date) / 365 > 1);
SELECT employee_id, last_name, hire_date, salary
FROM employees
WHERE salary > 40000 AND hire_date =
    (SELECT hire_date
    FROM employees
    WHERE (sysdate-hire_date) / 365 > 1);
SELECT employee_id, last_name, hire_date, salary
FROM employees
WHERE salary > 40000
AND (sysdate-hire_date) / 365 > 1;
SELECT employee_id, last_name, salary
FROM employees
WHERE salary > 40000
AND hire_date IN (sysdate-hire_date) / 365 > 1);

Evaluasi pernyataan SELECT ini:
SELECT COUNT(emp_id), mgr_id, dept_id
FROM employees
WHERE status = 'I'
GROUP BY dept_id
HAVING salary > 30000
ORDER BY 2;

Mengapa pernyataan ini menghasilkan kesalahan sintaks?

Kueri tunggal tidak dapat berisi klausa WHERE dan klausa HAVING.
Klausa HAVING harus menentukan fungsi agregat.
Klausa ORDER BY harus menentukan nama kolom dalam tabel EMPLOYEE.
MGR_ID harus disertakan dalam klausa GROUP BY.

Apa penjelasan terbaik mengapa pernyataan SQL ini TIDAK akan dijalankan?
SELECT department_id "Department", AVG (salary)"Average"
FROM employees
GROUP BY Department;

Klausa GROUP BY harus memiliki sesuatu ke GROUP.
Id departemen tidak dicantumkan di tabel departemen.
Anda tidak dapat menggunakan alias kolom dalam klausa GROUP BY.
Gaji tidak dapat dirata-ratakan karena tidak semua angka akan dibagi secara merata.

Evaluasi pernyataan SELECT ini:
SELECT SUM(salary), department_id, manager_id
FROM employees
GROUP BY department_id, manager_id;

Mana pernyataan SELECT yang memungkinkan Anda membatasi baris yang dihasilkan, berdasarkan fungsi group?

WHERE salary > 100000
HAVING SUM(salary) > 100000
WHERE SUM(salary) > 100000
HAVING salary > 100000

Apakah pernyataan berikut benar?
SELECT first_name, last_name, salary, department_id, COUNT(employee_id)
FROM employees
WHERE department_id = 50
GROUP BY last_name, first_name, department_id;

Ya, karena Oracle akan memperbaiki kesalahan apa pun dalam pernyataan itu sendiri
Tidak, karena Anda tidak dapat memiliki klausa WHERE saat menggunakan fungsi group.
Ya
Tidak, karena pernyataan tidak memiliki gaji dalam klausa GROUP BY

Baca pernyataan SELECT berikut. Pilih kolom atau beberapa kolom yang harus disertakan dalam klausa GROUP BY.
SELECT COUNT(last_name), grade, gender
FROM STUDENTS
GROUP_BY ?????;

last_name
last_name, gender
grade, gender
last_name, grade

INTERSECT akan memberi Anda baris umum yang terdapat pada kedua kueri tersebut. (Benar atau Salah?)
TRUE
FALSE

Anda ingin menulis laporan yang menghasilkan rata-rata gaji semua karyawan di perusahaan, diurutkan berdasarkan departemen.
Tabel EMPLOYEES berisi kolom berikut:
EMPLOYEES:
EMP_ID NUMBER(10) PRIMARY KEY
LNAME VARCHAR2(20)
FNAME VARCHAR2(20)
DEPT VARCHAR2(20)
HIRE_DATE DATE
SALARY NUMBER(10)

Mana pernyataan SELECT yang akan menghasilkan informasi yang Anda butuhkan?

SELECT dept, AVG(salary)
FROM employees
zROUP BY dept;
SELECT AVG (salary)
FROM employees
BY dept;
SELECT AVG salary
FROM employees
BY dept;
SELECT salary(AVG), dept
FROM employees
GROUP BY dept;

Apakah pernyataan berikut benar?
SELECT department_id, AVG(salary)
FROM employees;

Tidak, karena klausa department_id GROUP BY dibutuhkan
Ya, karena klausa SELECT dapat berisi kolom individu dan fungsi group
Ya
Tidak, karena fungsi AVG tidak dapat digunakan pada kolom gaji

MINUS akan memberi Anda baris dari kueri pertama yang tidak ada dalam kueri kedua. (Benar atau Salah?)
TRUE
FALSE

Tabel PLAYERS dan TEAMS berisi kolom berikut:
PLAYERS
PLAYER_ID NUMBER NOT NULL, PRIMARY KEY
LAST_NAME VARCHAR2 (30) NOT NULL
FIRST_NAME VARCHAR2 (25) NOT NULL
TEAM_ID NUMBER
POSITION VARCHAR2 (25)

TEAMS
TEAM_ID NUMBER NOT NULL, PRIMARY KEY
TEAM_NAME VARCHAR2 (25)

Anda harus membuat laporan yang mencantumkan nama setiap tim dengan lebih dari tiga kiper.
Pernyataan SELECT mana yang akan memberikan hasil yang diinginkan?

SELECT t.team_name, COUNT(p.player_id)
FROM players p
JOIN teams t ON (p.team_id = t.team_id)
WHERE UPPER(p.position) = 'GOAL KEEPER'
GROUP BY t.team_name
HAVING COUNT(p.player_id) > 3;
SELECT t.team_name, COUNT(p.player_id)
FROM players
JOIN teams t ON (p.team_id = t.team_id)
WHERE UPPER(p.position) = 'GOAL KEEPER'
HAVING COUNT(p.player_id) > 3;
SELECT t.team_name, COUNT(p.player_id)
FROM players p, teams t
ON (p.team_id = t.team_id)
WHERE UPPER(p.position) = 'GOAL KEEPER'
GROUP BY t.team_name
HAVING COUNT(p.player_id) > 3;
SELECT t.team_name, COUNT(p.player_id)
FROM players p, teams t
ON (p.team_id = t.team_id)
WHERE UPPER(p.position) = 'GOAL KEEPER'
GROUP BY t.team_name;

Bagaimana Anda mengubah permintaan berikut untuk mencantumkan hanya karyawan dengan dua atau lebih karyawan memiliki nama belakang yang sama?
SELECT last_name, COUNT(employee_id)
FROM EMPLOYEES
GROUP BY last_name;

SELECT last_name, COUNT(last_name)
FROM EMPLOYEES
GROUP BY last_name
HAVING COUNT(last_name) > 1;
SELECT last_name, COUNT(last_name)
FROM EMPLOYEES
GROUP BY last_name
EXISTS COUNT(last_name) > 1;
SELECT employee_id, DISTINCT(last_name)
FROM EMPLOYEES
GROUP BY last_name
HAVING last_name > 1;
SELECT last_name, COUNT(employee_id)
FROM EMPLOYEES
WHERE COUNT(*) > 1
GROUP BY last_name

Itulah artikel Section 9 Quiz Database Programming with SQL Oracle Bahasa Indonesia kali ini, semoga bermanfaat.

Posting Komentar untuk "Section 9 Quiz Database Programming with SQL Oracle Bahasa Indonesia"