Tinjau Pertanyaan
7.1 Apa kepanjangan dari DDL? Buat daftar pernyataan SQL DDL.
MENJAWAB:
• BUAT TABEL
• MENGUBAH TABEL
• DROP TABEL
• POTONG TABEL
7.2 Apa kepanjangan dari DML? Buat daftar pernyataan SQL DML.
MENJAWAB:
• MENYISIPKAN
• MEMPERBARUI
• MENGHAPUS
• MENGGABUNGKAN
Kata kunci IDENTITY digunakan untuk mengubah nama kolom, dan digunakan untuk menentukan
kunci pengganti. Parameter angka pertama setelah IDENTITY menentukan nilai awal
untuk kunci pengganti, dan angka kedua menentukan nilai kenaikan untuk masing-masing
catatan tambahan. Ini kolom bernama RelationID dan dimodifikasi oleh IDENTITY (4000,
5) akan menjadi kunci pengganti bernama RelationID dengan nilai awal 4000 (untuk yang pertama
rekam dalam relasi), dan dengan nilai berikut yang ditambah 5: 4000, 4005, 4010,
dll.
Machine Translated by Google
MENJAWAB:
Ketika penugasan mereferensikan Angka-angka dalam buku, mis. Gambar 7-35, Anda perlu melihat
Untuk kumpulan Pertanyaan Tinjauan ini, kami akan membuat dan menggunakan database dengan kumpulan tabel yang akan
memungkinkan kita untuk membandingkan variasi dalam pernyataan SQL CREATE TABLE dan SQL INSERT. Itu
tujuan dari pertanyaan-pertanyaan ini adalah untuk mengilustrasikan situasi yang berbeda yang membutuhkan penggunaan khusus dari berbagai
Basis data akan diberi nama CH07_RQ_TABLES dan akan berisi enam tabel berikut:
EmailAddress adalah kolom teks yang berisi alamat email, dan karena itu bukan pengganti
kunci. CustomerID adalah kunci pengganti yang dimulai dari 1 dan bertambah 1. SaleID adalah pengganti
Karakteristik kolom untuk tabel ini ditunjukkan pada Gambar 7-35 (CUSTOMER_01), 7-
(OBRAL_02).
Data untuk tabel ini ditunjukkan pada Gambar 7-39 (CUSTOMER_01), 7-40
7.4 Jika Anda menggunakan Microsoft SQL Server, Oracle Database, atau MySQL, buat folder di
folder Dokumen Anda untuk menyimpan dan menyimpan skrip *.sql yang berisi pernyataan SQL
Folder Schemas di folder MySQL Workbench Anda. Jika Anda menggunakan Microsoft
Menjawab:
S09_Assignment_ToCreateRQ_TABLES_DBinSSMS.
Machine Translated by Google
7.6 Jika Anda menggunakan Microsoft SQL Server, Oracle Database, atau MySQL, buat dan simpan file
untuk Meninjau Pertanyaan 7.7–7.40. Gunakan komentar skrip SQL (/* dan */ simbol) untuk menulis
jawaban Anda atas Pertanyaan Tinjauan yang memerlukan jawaban tertulis sebagai komentar. Jika Anda
menjalankan Microsoft Access 2016, buat dan simpan file teks Microsoft Notepad bernama
Pertanyaan 7.7–7.40. Setelah Anda menjalankan setiap pernyataan SQL di Microsoft Access 2016, salin
MENJAWAB:
Setiap skrip SQL Pertanyaan Tinjauan perlu disimpan dalam file bernama,
Anda harus membuat folder Proyek saat Anda membuat Cape_Codd Database
Petunjuk tentang cara mendokumentasikan beberapa skrip SQL dalam file yang sama, tersedia di
Tautan.
7.7 Tulis dan jalankan pernyataan SQL CREATE TABLE untuk membuat tabel CUSTOMER_01.
MENJAWAB:
7.8 Tulis dan jalankan pernyataan SQL CREATE TABLE untuk membuat tabel CUSTOMER_02.
MENJAWAB:
Machine Translated by Google
7.9 Apakah ada perbedaan yang signifikan antara CUSTOMER_01 dan CUSTOMER_02
MENJAWAB:
7.10 Tulis dan jalankan pernyataan SQL CREATE TABLE untuk membuat tabel CUSTOMER_03.
MENJAWAB:
7.11 Apakah ada perbedaan yang signifikan antara CUSTOMER_02 dan CUSTOMER_03
MENJAWAB:
7.12 Tulis dan jalankan pernyataan SQL CREATE TABLE untuk membuat tabel CUSTOMER_04.
MENJAWAB:
Machine Translated by Google
7.13 Apakah ada perbedaan yang signifikan antara CUSTOMER_03 dan CUSTOMER_04
MENJAWAB:
7.14 Tulis dan jalankan pernyataan SQL CREATE TABLE untuk membuat tabel SALE_01. Catatan
bahwa kunci asing adalah EmailAddress, yang mereferensikan CUSTOMER_01. Alamat email.
Dalam database ini, catatan CUSTOMER_01 dan SALE_01 tidak pernah dihapus, jadi akan ada
tidak ada tindakan integritas referensial ON DELETE. Namun, Anda harus memutuskan caranya
MENJAWAB:
7.15 Dalam Pertanyaan Tinjauan 7.14, bagaimana Anda menerapkan integritas referensial ON UPDATE
tindakan? Mengapa?
MENJAWAB:
Kunci utama PELANGGAN_01 bukan kunci pengganti, dan dapat berubah. Setiap perubahan
7.16 Apakah ada perbedaan yang signifikan antara tabel CUSTOMER_01 dan SALE_01?
MENJAWAB:
SALE_01 memiliki kunci utama pengganti dan SALE_01 memiliki kunci asing.
7.17 Bisakah kita membuat tabel SALE_01 sebelum membuat tabel CUSTOMER_01? Jika
MENJAWAB:
Tidak, karena kami membutuhkan kunci utama EmailAddress di CUSTOMER_01 untuk membuat
7.18 Tulis dan jalankan pernyataan SQL CREATE TABLE untuk membuat tabel SALE_02. Catatan
database ini, catatan PELANGGAN_04 dan SALE_02 tidak pernah dihapus, jadi akan ada
tidak ada tindakan integritas referensial ON DELETE. Namun, Anda harus memutuskan caranya
MENJAWAB:
7.19 Dalam Pertanyaan Tinjauan 7.18, bagaimana Anda menerapkan integritas referensial ON UPDATE
tindakan? Mengapa?
MENJAWAB:
Machine Translated by Google
7.20 Apakah ada perbedaan yang signifikan antara tabel SALE_01 dan SALE_02? Jika begitu,
Apakah mereka?
MENJAWAB:
Mereka ditautkan ke tabel yang berbeda. Satu menggunakan CASCADE dan yang lainnya menggunakan NO ACTION.
7.21 Bisakah kita membuat tabel SALE_02 sebelum membuat tabel CUSTOMER_04? Jika
MENJAWAB:
Tidak, karena kami memerlukan kunci utama CustomerID di CUSTOMER_04 untuk membuat
7.22 Tulis dan jalankan satu set pernyataan SQL INSERT untuk mengisi tabel CUSTOMER_01.
MENJAWAB:
7.23 Tulis dan jalankan satu set pernyataan SQL INSERT untuk mengisi tabel CUSTOMER_02.
MENJAWAB:
Machine Translated by Google
7.24 Apakah ada perbedaan yang signifikan antara kumpulan pernyataan SQL INSERT yang digunakan
untuk mengisi tabel CUSTOMER_01 dan CUSTOMER_02? Jika demikian, apakah mereka?
MENJAWAB:
7.25 Tulis dan jalankan pernyataan SQL INSERT untuk mengisi tabel CUSTOMER_03. Gunakan
perintah INSERT massal dan data dalam tabel CUSTOMER_01 PETUNJUK: Di Oracle
Basis data ini membutuhkan penggunaan kueri bersarang di klausa FROM, yang tidak tercakup di dalamnya
MENJAWAB:
Machine Translated by Google
7.26 Apakah ada perbedaan yang signifikan antara kumpulan pernyataan SQL INSERT yang digunakan
untuk mengisi tabel CUSTOMER_02 dan CUSTOMER_03? Jika demikian, apakah mereka?
7.27 Tulis dan jalankan satu set pernyataan SQL INSERT untuk mengisi baris 1 sampai 3 di dalam
tabel PELANGGAN_04. Perhatikan bahwa pertanyaan ini melibatkan kunci pengganti yang tidak berurutan
nilai-nilai dan didasarkan pada teknik untuk Microsoft SQL Server 2017 di Bab 10A, untuk
Oracle Database di Bab 10B, atau untuk MySQL 5.7 di Bab 10C, tergantung pada
Menjawab:
MASUKKAN KE PELANGGAN_04
(ID Pelanggan, Alamat Email, Nama Belakang, Nama Depan) NILAI (17,
MASUKKAN KE PELANGGAN_04
(ID Pelanggan, Alamat Email, Nama Belakang, Nama Depan) NILAI (23,
MASUKKAN KE PELANGGAN_04
Machine Translated by Google
(ID Pelanggan, Alamat Email, Nama Belakang, Nama Depan) NILAI (46,
PILIH*DARI PELANGGAN_04
7.28 Apakah ada perbedaan yang signifikan antara kumpulan pernyataan SQL INSERT yang digunakan
7.29 Tulis dan jalankan satu set pernyataan SQL INSERT untuk mengisi baris 4 sampai 6 dalam
tabel PELANGGAN_04. Perhatikan bahwa pertanyaan ini melibatkan nilai kunci pengganti berurutan
dan didasarkan pada teknik untuk Microsoft SQL Server 2017 di Bab 10A, untuk Oracle
Database di Bab 10B, atau untuk MySQL 5.7 di Bab 10C, tergantung yang mana
Menjawab:
MASUKKAN KE PELANGGAN_04
'Griffith', 'John');
MASUKKAN KE PELANGGAN_04
'Tierney', 'Doris');
MASUKKAN KE PELANGGAN_04
PILIH*DARI PELANGGAN_04
7.30 Apakah ada perbedaan yang signifikan antara kumpulan pernyataan SQL INSERT yang digunakan
7.31 Tulis dan jalankan sekumpulan pernyataan SQL INSERT untuk mengisi tabel SALE_01.
Menjawab:
GUNAKAN CH07_RQ_TABLES
MASUKKAN KE SALE_01
'Robert.Shire@Somewhere.com', '234.00');
MASUKKAN KE SALE_01
'Chris.Bamcroft@Somewhere.com', '56.50');
MASUKKAN KE SALE_01
'Robert.Shire@Somewhere.com', '123.00');
MASUKKAN KE SALE_01
'Katherine.Goodyear@Somewhere.com', '34.25');
PILIH*DARI SALE_01
7.32 Apakah ada perbedaan yang signifikan antara kumpulan pernyataan SQL INSERT yang digunakan
untuk mengisi tabel CUSTOMER_01 dan tabel SALE_01? Jika demikian, apakah mereka?
7.33 Bisakah kita mengisi tabel SALE_01 sebelum mengisi tabel CUSTOMER_01
7.34 Tulis dan jalankan sekumpulan pernyataan SQL INSERT untuk mengisi tabel SALE_02.
Jawaban: SAYA TIDAK BISA MENDAPATKAN INFORMASI INI UNTUK DIJALANKAN. TIDAK BISA MENEMUKAN
MASALAH.
7.35 Apakah ada perbedaan yang signifikan antara kumpulan pernyataan SQL INSERT yang digunakan
untuk mengisi tabel SALE_01 dan tabel SALE_02? Jika demikian, apakah mereka?
Jawaban: Saya akan mengatakan tidak karena kami perlu membuat CustomerID terlebih dahulu.
Machine Translated by Google
7.36 Bisakah kita mengisi tabel SALE_02 sebelum mengisi tabel CUSTOMER_04
Jawaban: Saya akan mengatakan tidak karena kami perlu membuat CustomerID terlebih dahulu.
7.37 Tulis dan jalankan pernyataan SQL INSERT untuk menyisipkan record berikut ke dalam
Tabel SALE_02: Apa hasil dari menjalankan pernyataan ini? Mengapa hasil ini terjadi?
7.38 Tulis pernyataan SQL untuk membuat tampilan bernama Customer01DataView berdasarkan
Customer LastName, dan FirstName sebagai CustomerFirstName. Jalankan pernyataan ini untuk membuat
tampilan, lalu uji tampilan dengan menulis dan menjalankan SQL SELECT yang sesuai
penyataan.
Menjawab:
DARI PELANGGAN_01;
7.39 Tulis pernyataan SQL untuk membuat tampilan bernama Customer04DataView berdasarkan
tabel PELANGGAN_04. Dalam tampilan, sertakan nilai ID Pelanggan, Nama Belakang sebagai
Jalankan pernyataan ini untuk membuat tampilan, lalu uji tampilan dengan menulis dan menjalankan
Menjawab:
DARI PELANGGAN_04;
7.40 Tulis pernyataan SQL untuk membuat tampilan bernama CustomerSalesView berdasarkan
tabel CUSTOMER_04 dan SALE_02. Dalam tampilan ini, sertakan nilai ID Pelanggan,
SaleID, DateOfSale, dan SaleAmount dalam urutan itu. Jalankan pernyataan ini untuk membuat tampilan,
lalu uji tampilan dengan menulis dan menjalankan pernyataan SQL SELECT yang sesuai.
Machine Translated by Google
Menjawab:
Menjawab:
);
7.42 Tulis pernyataan CREATE TABLE untuk tabel EMPLOYEE. Email diperlukan dan
kunci alternatif, dan nilai default Departemen adalah Sumber Daya Manusia. Riam
Menjawab:
);
7.43 Tulis pernyataan CREATE TABLE untuk tabel PROJECT. Nilai default untuk Max
Jam adalah 100. Pembaruan kaskade tetapi bukan penghapusan dari DEPARTEMEN ke PROYEK
Menjawab:
);
7.44 Tulis pernyataan CREATE TABLE untuk tabel ASSIGNMENT. Kaskade saja
penghapusan dari PROYEK menjadi PENUGASAN; jangan mengalirkan penghapusan atau pembaruan
Menjawab:
Nomor pekerja),
PROYEK (ProjectID)
);
7.45 Ubah jawaban Anda ke Pertanyaan Tinjauan 7.43 untuk memasukkan batasan bahwa StartDate menjadi
sebelum TanggalAkhir.
Menjawab:
7.46 Tulis pernyataan SQL alternatif yang mengubah jawaban Anda untuk Pertanyaan Tinjauan 7.44 menjadi
Menjawab:
7.47 Tulis pernyataan ALTER untuk menambahkan kolom Kode Area ke KARYAWAN. Asumsikan bahwa
Menjawab:
7.48 Tulis pernyataan ALTER untuk menghapus kolom Kode Area dari EMPLOYEE.
Menjawab:
7.49 Tulis pernyataan ALTER untuk menjadikan OfficePhone sebagai kunci alternatif di EMPLOYEE.
Menjawab:
7.50 Tulis pernyataan ALTER untuk menghilangkan batasan bahwa OfficePhone adalah kunci alternatif
KARYAWAN.
Menjawab:
7.51 Tulis pernyataan INSERT untuk menambahkan data yang ditunjukkan pada Gambar 1-29 ke DEPARTMENT
meja. Jalankan pernyataan ini untuk mengisi tabel DEPARTMENT. (Petunjuk: Tulis dan uji
skrip SQL, lalu jalankan skrip. Simpan skrip sebagai WP-Insert DEPARTMENT
Jawaban :
300', '360-285-8100');
285-8200');
'360-285-8300');
'360-285-8400');
'BLDG01-180', '360-285-8500');
'360-287-8600');
'360-287-8700');
'360-287-8800');
7.52 Tulis pernyataan INSERT untuk menambahkan data yang ditunjukkan pada Gambar 1-31 ke tabel EMPLOYEE.
Jalankan pernyataan ini untuk mengisi tabel EMPLOYEE. (Petunjuk: Tulis dan uji SQL
skrip, lalu jalankan skrip. Simpan skrip sebagai WP-Insert-EMPLOYEE-Data. sql untuk
Jawaban :
Machine Translated by Google
8110', 'Mary.Jacobs@WPC.com');
8120', 'Rosalie.Jackson@WPC.com');
'Richard.Bandalone@WPC.com');
'Tom.Caruthers@WPC.com');
'Heather.Jones@WPC.com');
'Mary.Abernathy@WPC.com');
8510', 'George.Smith@WPC.com');
'Tom.Jackson@WPC.com');
'George.Jones@WPC.com');
'Ken.Mumoto@WPC.com');
'Rick.Brown@WPC.com');
7.53 Tulis pernyataan INSERT untuk menambahkan data yang ditunjukkan pada Gambar 2-44 ke tabel PROJECT.
Jalankan pernyataan ini untuk mengisi tabel PROJECT. (Petunjuk: Tulis dan uji skrip SQL,
dan kemudian jalankan skrip. Simpan skrip sebagai WP-Insert-PROJECT-Data.sql untuk penggunaan di masa mendatang.)
Jawaban :
MEI-15', '15-JUN-15');
'05-JUL-15', '25-JUL-15');
Machine Translated by Google
'10-AUG-11', '15-OCT-11');
AUG-15', '15-SEP-15');
7.54 Tulis pernyataan INSERT untuk menambahkan data yang ditunjukkan pada Gambar 2-46 ke ASSIGNMENT
meja. Jalankan pernyataan ini untuk mengisi tabel ASSIGNMENT. (Petunjuk: Tulis dan uji
Jawaban :
7.55 Mengapa tabel diisi dalam urutan yang ditunjukkan pada Pertanyaan Tinjauan 7.51 sampai
7,54?
Jawaban :
PERBARUI KARYAWAN
7.56 Asumsikan Anda memiliki tabel bernama NEW_EMPLOYEE yang memiliki kolom
Department, Email, FirstName, dan LastName, dalam urutan itu. Tulis pernyataan INSERT
untuk menambahkan semua baris dari tabel NEW_EMPLOYEE ke EMPLOYEE. Jangan mencoba
Jawaban :
PERBARUI KARYAWAN
Jawaban :
PERBARUI KARYAWAN
DIMANA NomorPegawai = 5;
PERBARUI KARYAWAN
DIMANA NomorPegawai = 5;
PERBARUI KARYAWAN
DIMANA NomorPegawai = 5;
7.60 Gabungkan jawaban Anda untuk Pertanyaan Tinjauan 7.58 dan 7.59 menjadi satu pernyataan SQL. Berlari
pernyataan ini.
Jawaban :
PERBARUI KARYAWAN
Machine Translated by Google
DIMANA NomorPegawai = 5;
7.61 Tulis pernyataan UPDATE untuk menyetel HoursWorked ke 60 untuk setiap baris
Jawaban :
TUGAS PEMBARUAN
7.62 Asumsikan bahwa Anda memiliki tabel bernama NEW_EMAIL, yang memiliki nilai baru untuk Email
Tulis pernyataan MERGE untuk mengubah nilai Email di EMPLOYEE menjadi yang ada di
7.63 Tulis satu pernyataan DELETE yang akan menghapus semua data untuk proyek '2018 Q3 Production
Jawaban :
7.64 Tulis pernyataan DELETE yang akan menghapus baris untuk karyawan dengan nama belakang
'Smith'. Jangan jalankan pernyataan ini. Apa yang terjadi jika salah satu dari karyawan ini masuk
PENUGASAN?
Jawaban :
7.65 Apa itu tampilan SQL? Tujuan apa yang disajikan oleh tampilan?
Jawaban :
1. Sederhanakan kueri kompleks: Tampilan dapat digunakan untuk merangkum kueri kompleks yang
bergabung dengan beberapa tabel atau melakukan operasi kompleks lainnya. Dengan membuat tampilan, kita
dapat menyederhanakan kueri dan membuatnya lebih mudah untuk dipahami dan dipelihara.
Machine Translated by Google
2. Sediakan lapisan keamanan: Tampilan dapat digunakan untuk menyediakan lapisan tambahan
keamanan dengan membatasi kolom atau baris yang dapat dilihat oleh pengguna atau peran tertentu.
Dengan membuat tampilan yang hanya menyertakan data yang diperlukan, kami dapat mencegah pengguna
3. Sembunyikan kompleksitas: Tampilan dapat digunakan untuk menyembunyikan kompleksitas yang mendasarinya
skema basis data dari pengguna. Dengan mendefinisikan alias untuk tabel atau kolom, kita bisa
4. Tingkatkan kinerja: Tampilan dapat digunakan untuk meningkatkan kinerja dengan pra
menghitung kueri atau agregasi yang kompleks. Dengan membuat tampilan yang menghitung
hasil kueri yang kompleks, kita dapat menghindari kebutuhan untuk menjalankan kueri itu setiap saat
7.66 Apa batasan pernyataan SELECT yang digunakan dalam tampilan SQL?
Jawaban :
1. Dalam SQL, ada beberapa batasan pada pernyataan SELECT yang dapat digunakan dalam tampilan:
2. Tidak ada klausa ORDER BY: Tampilan tidak dapat menyertakan klausa ORDER BY. Jika perlu
mengurutkan data dalam tampilan, Anda dapat menggunakan klausa ORDER BY dalam pernyataan SELECT itu
menanyakan pandangan.
3. Tidak ada klausa LIMIT: Tampilan tidak dapat menyertakan klausa LIMIT. Jika Anda perlu untuk membatasi
jumlah baris yang dikembalikan oleh tampilan, Anda dapat menggunakan klausa LIMIT dalam pernyataan SELECT
4. Tidak ada fungsi agregat dengan GROUP BY: Jika tampilan menyertakan fungsi agregat seperti itu
sebagai SUM atau COUNT, itu tidak dapat menyertakan klausa GROUP BY. Sebagai gantinya, Anda dapat menggunakan a
Pernyataan SELECT yang menanyakan tampilan dan menyertakan klausa GROUP BY.
5. Tidak ada subkueri dalam pernyataan SELECT: Tampilan tidak dapat menyertakan subkueri dalam
pernyataan PILIH. Jika Anda perlu menyertakan subkueri dalam tampilan, Anda dapat membuat
pisahkan tampilan untuk subkueri, lalu sertakan tampilan tersebut di tampilan utama.
Machine Translated by Google
6. Tidak ada tampilan referensi sendiri: Tampilan tidak dapat mereferensikan dirinya sendiri atau tampilan lain yang mereferensikan
dia. Ini dikenal sebagai "referensi melingkar" dan dapat menyebabkan kesalahan dalam database.
7.67 Tulis pernyataan SQL untuk membuat tampilan bernama EmployeePhoneView yang menunjukkan
pernyataan untuk membuat tampilan, lalu menguji tampilan dengan menulis dan menjalankan yang sesuai
Jawaban :
Buat Tampilan
Phone AS EmployeePhone
Tampilan Kueri
DARI KARYAWAN;
PILIH *
DARI EmployeePhoneView
7.68 Tulis pernyataan SQL untuk membuat tampilan bernama FinanceEmployeePhoneView yang ditampilkan
pegawai yang bekerja di bagian keuangan. Jalankan pernyataan ini untuk membuat tampilan,
lalu uji tampilan dengan menulis dan menjalankan pernyataan SQL SELECT yang sesuai.
Jawaban :
Phone AS EmployeePhone
DARI KARYAWAN
PILIH *
DARI FinanceEmployeePhoneView
7.69 Tulis pernyataan SQL untuk membuat tampilan bernama CombinedNameEmployeePhone View
KARYAWAN.OfficePhone sebagai
Telepon Karyawan Tetapi itu menggabungkan
EmployeeName yang menampilkan nama depan nama karyawan terlebih dahulu. Jalankan pernyataan ini ke
buat tampilan, lalu uji tampilan dengan menulis dan menjalankan SQL yang sesuai
pernyataan PILIH.
Jawaban :
Phone AS EmployeePhone
DARI KARYAWAN;
PILIH *
DARI CombinedNameEmployeePhoneView
ORDER BY EmployeeName;
7.70 Tulis pernyataan SQL untuk membuat tampilan bernama EmployeeProjectAssignmentView itu
PROJECT.ProjectName sebagai NamaProyek. Jalankan pernyataan ini untuk membuat tampilan, lalu
uji tampilan dengan menulis dan menjalankan pernyataan SQL SELECT yang sesuai.
Jawaban :
PILIH *
DARI EmployeeProjectAssignmentView
7.71 Tulis pernyataan SQL untuk membuat tampilan bernama Department Employee Project
sebagai NamaProyek. Jalankan pernyataan ini untuk membuat tampilan, lalu uji tampilan dengan menulis
Jawaban :
DEPARTMENT.DepartmentName, DEPARTMENT.DepartmentPhone,
PROYEK.NamaProyek
DARI KARYAWAN
DEPARTMENT.DepartmentID
7.72 Tulis pernyataan SQL untuk membuat tampilan bernama ProjectHoursToDateView yang ditampilkan
ProjectHoursWorkedToDate. Jalankan pernyataan ini untuk membuat tampilan, lalu uji tampilan
Jawaban :
ProjectMaxHours, SUM(ASSIGNMENT.HoursWorked) as
ProjectHoursWorkedToDate
DARI PROYEK
Machine Translated by Google
7.73 Jelaskan bagaimana tampilan digunakan untuk menyediakan alias untuk tabel. Mengapa ini berguna?
view digunakan untuk menyediakan alias untuk tabel dengan membuat tabel virtual berdasarkan data
dari satu atau lebih tabel fisik. Tampilan dapat dianggap sebagai "tabel virtual" itu
tidak benar-benar menyimpan data apa pun, tetapi menyediakan cara mudah untuk meminta data dari
Saat kami membuat tampilan, kami dapat menentukan kolom mana dari tabel yang mendasarinya
disertakan dalam tampilan, dan kita juga dapat menentukan alias untuk tabel dan kolom, yang mana
dapat membuat kueri yang dihasilkan lebih mudah dibaca dan dipahami.
Ini berguna karena memungkinkan kita untuk menyederhanakan kueri kompleks dengan mengabstraksikan
struktur tabel yang mendasari dan menyediakan antarmuka yang lebih ramah pengguna untuk kueri
data. Dengan mendefinisikan alias untuk tabel dan kolom, kita dapat membuat lebih banyak kueri SQL
dapat dibaca dan dipelihara, yang dapat menghemat waktu dan mengurangi kesalahan dalam jangka panjang.
Selain itu, tampilan dapat digunakan untuk membatasi akses ke data sensitif dengan menyembunyikan data tertentu
7.74 Jelaskan bagaimana tampilan dapat digunakan untuk meningkatkan keamanan data.
Jawaban :
1. Menyembunyikan informasi sensitif: Dengan membuat tampilan yang hanya menyertakan yang diperlukan
kolom dan baris data, kami dapat mencegah pengguna yang tidak sah mengakses sensitif
informasi. Misalnya, kita dapat membuat tampilan yang mengecualikan informasi gaji untuk
karyawan, lalu memberikan akses ke tampilan tersebut kepada pengguna yang tidak perlu melihat data tersebut.
2. Membatasi akses: Tampilan dapat digunakan untuk membatasi akses ke data berdasarkan peran pengguna atau
izin. Misalnya, kami dapat membuat tampilan yang hanya menyertakan data untuk tertentu
departemen atau wilayah, lalu memberikan akses ke tampilan tersebut kepada pengguna yang diizinkan
3. Menerapkan keamanan tingkat baris: Tampilan dapat digunakan untuk menerapkan keamanan tingkat baris
dengan memfilter data berdasarkan kriteria khusus pengguna. Misalnya, kita bisa membuat tampilan
Machine Translated by Google
yang hanya menampilkan data untuk pengguna yang saat ini masuk, lalu memberikan akses ke tampilan tersebut
kepada pengguna. Ini akan mencegah pengguna lain melihat data milik itu
pengguna.
4. Mengurangi resiko serangan injeksi SQL: Dengan menggunakan tampilan, kita dapat memastikan bahwa pengguna
hanya memiliki akses ke data yang diizinkan untuk diakses, yang dapat mengurangi
risiko serangan injeksi SQL. Ini karena tampilan dapat digunakan untuk membatasi jenis dan
jumlah data yang dapat diakses, yang dapat membatasi potensi kerusakan yang dapat terjadi
7.75 Jelaskan bagaimana tampilan dapat digunakan untuk menyediakan fungsionalitas pemicu tambahan.
Jawaban :
Tampilan dapat digunakan untuk menyediakan fungsionalitas pemicu tambahan dengan mengizinkan kami untuk menentukan
memicu pada tampilan itu sendiri, bukan pada tabel yang mendasarinya. Ini dapat berguna di
situasi di mana kita perlu menegakkan aturan bisnis yang kompleks atau logika validasi itu
tidak dapat dengan mudah diekspresikan menggunakan pemicu sederhana pada tabel yang mendasarinya.
Misalnya, kita memiliki tampilan yang menggabungkan data dari beberapa tabel, dan kita
ingin menerapkan batasan yang mencegah rekaman apa pun dengan saldo negatif
dimasukkan atau diperbarui. Kita dapat menentukan pemicu "alih-alih" pada tampilan yang berfungsi
pemeriksaan validasi yang diperlukan dan memperbarui tabel yang mendasarinya jika datanya valid. Ini
pemicu akan dieksekusi setiap kali pengguna mencoba memasukkan atau memperbarui data dalam tampilan,
dan akan mencegah data yang tidak valid ditulis ke tabel yang mendasarinya.
Demikian pula, kami dapat menggunakan pemicu pada tampilan untuk menerapkan jenis bisnis kompleks lainnya
aturan, seperti validasi data, audit, atau transformasi data. Dengan mendefinisikan pemicu aktif
tampilan, kita dapat merangkum logika bisnis dan aturan validasi dalam tampilan itu sendiri,
yang dapat menyederhanakan desain tabel yang mendasarinya dan mengurangi kompleksitas
logika aplikasi.
Jawab : contoh view yang bisa diupdate dengan jelas, misalnya di sql view
karena data dalam SQL VIEW asalkan Anda memiliki hak istimewa yang tepat untuk
Jawab : Tampilan yang melibatkan fungsi agregasi seperti SUM atau AVG
contoh tampilan yang tidak dapat diperbarui. Sebagai contoh, perhatikan tampilan berikut
definisi:
DARI Penjualan
Tampilan ini menghitung jumlah total setiap produk yang terjual dengan menjumlahkan jumlah
nilai dalam tabel Penjualan. Karena ini melibatkan fungsi agregasi, memperbarui file
Tampilan SalesSummary akan membutuhkan pembaruan tabel Penjualan yang mendasarinya, padahal tidak
layak atau diinginkan. Oleh karena itu, tampilan SalesSummary tidak dapat diperbarui.
7.78 Rangkum gagasan umum untuk menentukan apakah suatu tampilan dapat diperbarui.
Jawab :
Gagasan umum untuk menentukan apakah suatu tampilan dapat diperbarui adalah untuk memeriksa apakah tampilan tersebut
memenuhi kriteria tertentu yang ditentukan oleh sistem manajemen basis data. Kriteria ini
biasanya meliputi:
Jika tampilan memenuhi semua kriteria ini, tampilan dianggap dapat diperbarui dan dapat digunakan
memodifikasi data yang mendasarinya dalam tabel. Namun, jika tampilan gagal memenuhi semua ini
kriteria, itu dianggap tidak dapat diperbarui dan berupaya mengubah data melalui tampilan
7.79 Jika tampilan tidak memiliki item yang diperlukan, tindakan apa pada tampilan yang pasti tidak diperbolehkan?
Machine Translated by Google
Jawab : Jika suatu tampilan tidak memiliki item yang diperlukan, maka tindakan apa pun yang bergantung pada item tersebut
barang yang hilang tidak boleh dibiarkan. Misalnya, jika tampilan tidak memiliki bidang wajib
dalam formulir, maka pengiriman formulir tidak boleh sampai bidang yang wajib diisi
diisi. Demikian pula, jika tampilan tidak memiliki data yang diperlukan dalam kueri basis data, maka
melakukan tindakan apa pun yang bergantung pada data itu tidak boleh diizinkan sampai diperlukan
data tersedia.
Secara umum, setiap tindakan yang akan mengakibatkan kesalahan atau menghasilkan hasil yang salah karena
item wajib yang hilang tidak boleh ditampilkan. Penting untuk memastikan itu
semua item yang diperlukan ada sebelum mengizinkan tindakan apa pun yang bergantung padanya.
Jawab :
tujuan yang berbeda dan memiliki paradigma yang berbeda, yang dapat menyebabkan suatu paradigma
ketidakcocokan.
SQL adalah bahasa deklaratif yang digunakan untuk mengambil dan memanipulasi data dari a
basis data relasional. Ini dirancang untuk digunakan dengan set data dan dioptimalkan untuk
kueri yang beroperasi pada kumpulan data yang besar. Permintaan SQL biasanya melibatkan pemilihan,
menggabungkan, memfilter, dan menggabungkan data, dan mesin SQL mencari cara untuk mengeksekusi
Di sisi lain, bahasa pemrograman seperti Java, Python, dan C++ dirancang
untuk membuat aplikasi perangkat lunak dan melakukan berbagai tugas di luar data
manipulasi. Mereka prosedural atau berorientasi objek dan beroperasi pada data individual
Salah satu perbedaan utama antara SQL dan bahasa pemrograman adalah bahwa SQL adalah
berbasis set, sedangkan bahasa pemrograman biasanya imperatif atau berorientasi objek. Di dalam
SQL, Anda menentukan data apa yang ingin Anda ambil, dan mesin SQL mencari tahu caranya
untuk mengambilnya. Dalam bahasa pemrograman, Anda menentukan langkah-langkah yang dilakukan komputer
Perbedaan lainnya adalah SQL dioptimalkan untuk mengakses dan memanipulasi data di a
tugas komputasi. SQL sering digunakan bersamaan dengan bahasa pemrograman untuk
Machine Translated by Google
mengambil dan memanipulasi data dalam suatu aplikasi, tetapi kedua bahasa tersebut memiliki perbedaan
dari tujuan dan paradigma desain mereka yang berbeda. Sedangkan kedua bahasa tersebut digunakan untuk menyelesaikan
masalah dunia nyata, mereka beroperasi pada tingkat abstraksi yang berbeda dan dioptimalkan
7.81 Bagaimana ketidaksesuaian jawaban Anda terhadap Pertanyaan Ulasan 7.80 dikoreksi?
Jawab : SQL Cara mengoreksi ketidaksesuaian pada jawaban 7.80 adalah dengan memberikan yang sama
tujuan untuk bahasa pemrograman dan SQL sehingga keduanya beroperasi pada level yang sama
7.82 Jelaskan komponen SQL/PSM dari standar SQL. Apa itu PL/SQL dan
Jawab :
SQL/PSM (SQL Persistent Stored Modules) adalah komponen standar SQL yang
menambahkan konstruksi pemrograman prosedural ke SQL. Hal ini memungkinkan penciptaan disimpan
prosedur dan fungsi yang dapat dipanggil dari dalam pernyataan SQL.
PL/SQL dan T-SQL keduanya ekstensi ke SQL yang menyediakan pemrograman prosedural
kemampuan. PL/SQL adalah bahasa prosedural yang digunakan oleh Oracle, sedangkan T-SQL digunakan
oleh Microsoft SQL Server. Kedua bahasa memungkinkan pembuatan prosedur tersimpan,
MySQL memiliki ekstensi sendiri ke SQL yang disebut MySQL Stored Procedures and Functions,
yang menyediakan kemampuan pemrograman prosedural yang serupa dengan PL/SQL dan T-SQL. Dia
memungkinkan pembuatan prosedur dan fungsi tersimpan menggunakan bahasa yang mirip dengan
PL/SQL Oracle. MySQL juga mendukung trigger dan event yang dapat digunakan untuk mengeksekusi
Jawab : User-defined function (UDF) adalah fungsi yang dibuat oleh pengguna atau
aplikasi. Ini memungkinkan pengguna untuk menentukan fungsi mereka sendiri yang dapat melakukan tugas tertentu
Intinya, fungsi yang ditentukan pengguna mengambil parameter input, melakukan serangkaian operasi
atau perhitungan, lalu mengembalikan nilai atau hasil. Itu bisa dipanggil dari dalam yang lain
bagian dari program atau aplikasi, memungkinkan fungsionalitas untuk digunakan kembali beberapa kali
7.84 Membuat dan menguji fungsi yang ditentukan pengguna bernama FirstNameFirst yang menggabungkan dua
parameter bernama FirstName dan LastName menjadi nilai gabungan bernama Full
Beri nama dan tampilkan, secara berurutan, Nama Depan, spasi, dan Nama Belakang (PETUNJUK: Steve
Jawab :
7.85 Membuat dan menguji sebuah tampilan bernama EmployeeDepartmentDataView yang berisi
nama karyawan digabungkan dengan fungsi yang ditentukan pengguna FirstNameFirst dalam sebuah bidang
Jalankan pernyataan ini untuk membuat tampilan, lalu uji tampilan dengan menulis dan menjalankan
Jawab :
-- Membuat tampilan
PILIH
Machine Translated by Google
FirstNameFirst(EMPLOYEE.FirstName, EMPLOYEE.LastName) AS
Nama karyawan,
KARYAWAN.Departemen,
DEPARTEMEN.NomorKantor,
DEPARTEMEN.Telepon Departemen,
DARI
KARYAWAN
DEPARTMENT.DepartmentID;
Jawab :
Pemicu dapat merujuk ke hal yang berbeda tergantung pada konteksnya, tetapi secara umum, artinya
Dalam konteks pemrograman dan basis data, pemicu adalah jenis penyimpanan khusus
prosedur yang secara otomatis dijalankan sebagai respons terhadap peristiwa atau tindakan tertentu, seperti
Jawab : Dalam konteks database relasional, pemicu adalah tipe penyimpanan khusus
prosedur yang dijalankan secara otomatis sebagai tanggapan atas peristiwa atau perubahan tertentu itu
Pemicu dikaitkan dengan tabel atau tampilan tertentu dan dipicu oleh peristiwa tertentu
seperti operasi INSERT, UPDATE, atau DELETE pada tabel atau tampilan tersebut. Ketika
pemicu dipicu, itu mengeksekusi satu set instruksi atau prosedur yang ditentukan oleh
pemrogram.
Misalnya, pemicu dapat diatur untuk memperbarui tabel secara otomatis saat ada rekaman
dimasukkan ke dalam tabel lain. Atau, pemicu dapat digunakan untuk mencegah tindakan tertentu
dari yang dilakukan pada tabel atau tampilan, seperti menghapus catatan yang ditandai sebagai
"kritis."
Machine Translated by Google
Secara keseluruhan, hubungan antara pemicu dan tabel atau tampilan adalah pemicunya
terkait dengan tabel atau tampilan tertentu dan dipicu oleh peristiwa tertentu yang terjadi pada
tabel atau tampilan itu. Pemicu kemudian mengeksekusi satu set instruksi atau prosedur
Jawab :
basis data.
5. Pemicu Server: Pemicu ini diaktifkan saat peristiwa server terjadi, misalnya
6. Pemicu Basis Data: Pemicu ini diaktifkan saat peristiwa basis data terjadi,
7.89 Jelaskan secara umum bagaimana nilai baru dan lama tersedia untuk pemicu?
Jawab : Secara umum, trigger adalah tipe khusus dari stored procedure dalam database
sistem manajemen yang dijalankan secara otomatis sebagai respons terhadap peristiwa tertentu, seperti
Saat pemicu diaktifkan, pemicu dapat mengakses nilai lama dan baru dari data yang dipicu
acara. Nilai lama mengacu pada data sebelum acara, sedangkan nilai baru merujuk
Cara nilai lama dan baru disediakan untuk pemicu bergantung pada spesifiknya
sistem manajemen basis data yang digunakan. Namun, di sebagian besar sistem, lama dan baru
Misalnya, di MySQL, nilai lama dan baru tersedia untuk memicu melalui
kata kunci "LAMA" dan "BARU", masing-masing. Kata kunci ini dapat digunakan untuk
kolom referensi di baris yang terpengaruh sebelum dan sesudah acara. Dalam Microsoft SQL
Server, nilai lama dan baru dapat diakses menggunakan tabel "dihapus" dan "dimasukkan",
masing-masing, yang berisi baris yang terpengaruh sebelum dan sesudah acara.
Secara umum, ketersediaan nilai lama dan baru memungkinkan pemicu bekerja kompleks
tindakan berdasarkan perubahan data yang memicu peristiwa tersebut. Misalnya, pemicu bisa
perbarui tabel lain berdasarkan nilai baru, atau catat perubahan untuk tujuan audit
Jawab :
Pemicu adalah objek database yang secara otomatis dieksekusi sebagai respons terhadap spesifik
peristiwa atau perubahan yang terjadi dalam database. Berikut adalah empat penggunaan umum untuk pemicu di a
basis data:
1. Menegakkan aturan bisnis: Pemicu dapat digunakan untuk menegakkan aturan bisnis tertentu
atau kendala pada database. Misalnya, pemicu dapat diatur untuk memeriksanya
nilai yang dimasukkan ke dalam bidang tertentu memenuhi kriteria tertentu, seperti memastikannya
2. Menjaga integritas data: Pemicu juga dapat digunakan untuk menjaga integritas data
dalam database dengan memastikan bahwa data diperbarui atau dihapus secara konsisten dan
merekam dalam satu tabel ketika catatan terkait di tabel lain diperbarui.
3. Audit dan pencatatan: Pemicu dapat digunakan untuk mengaudit dan mencatat perubahan yang dilakukan pada a
basis data. Misalnya, pemicu dapat diatur untuk mencatat setiap kali catatan dibuat
4. Replikasi data: Pemicu juga dapat digunakan untuk mereplikasi data antar database.
Misalnya, pemicu dapat diatur untuk menyalin data secara otomatis dari salah satunya
Machine Translated by Google
database ke database lain setiap kali peristiwa tertentu terjadi, seperti ketika a
7.91 Asumsikan bahwa View Ridge Gallery akan mengizinkan sebuah baris untuk dihapus dari WORK jika
karya tidak pernah dijual. Jelaskan secara umum bagaimana menggunakan pemicu untuk mencapainya
Jawab :
Untuk menggunakan pemicu untuk menyelesaikan penghapusan baris dari tabel WORK di Tampilan
Basis data Galeri Ridge, kita dapat membuat pemicu "SETELAH DELETE" di atas meja. Ini
pemicu akan dijalankan secara otomatis setelah satu baris dihapus dari tabel.
Dalam kode pemicu, kita dapat menyertakan transaksi yang memeriksa apakah yang dihapus berfungsi
pernah dijual. Kita dapat melakukannya dengan menanyakan tabel PENJUALAN untuk melihat apakah ada
setiap catatan penjualan yang mereferensikan pekerjaan yang dihapus. Jika tidak ada catatan penjualan, maka
pemicu dapat memungkinkan penghapusan untuk melanjutkan. Namun, jika ada catatan penjualan, maka
pemicu dapat memutar kembali penghapusan dan memunculkan pesan kesalahan yang menunjukkan bahwa pekerjaan
Berikut ini beberapa contoh kode yang menunjukkan cara membuat pemicu yang berhasil
ini:
MULAI
KALAU TIDAK
BERAKHIR JIKA;
Machine Translated by Google
AKHIR;
7.92 Asumsikan bahwa Wedgewood Pacific Corporation akan mengizinkan sebuah baris untuk dihapus
KARYAWAN jika karyawan tidak memiliki tugas proyek. Jelaskan secara umum
bagaimana menggunakan pemicu untuk menyelesaikan penghapusan tersebut. (PETUNJUK: Periksa tugas.)
Jawab :
bahwa karyawan tersebut tidak memiliki tugas proyek, Anda dapat menggunakan pemicu berikut ini
jalan:
1. Buat trigger baru pada tabel EMPLOYEE yang diaktifkan sebelum DELETE
operasi.
dihapus memiliki tugas proyek apa pun. Anda dapat melakukan ini dengan memeriksa apakah ada baris
di tabel ASSIGNMENT yang memiliki ID karyawan yang sama dengan karyawan tersebut
dihapus.
3. Jika karyawan yang dihapus tidak memiliki tugas proyek, izinkan DELETE
operasi berjalan seperti biasa. Jika karyawan yang dihapus memiliki tugas proyek,
4. Uji trigger dengan mencoba menghapus satu baris dari tabel EMPLOYEE yang telah ada
tugas proyek dan memverifikasi bahwa kesalahan dimunculkan. Kemudian, coba hapus satu baris dari
tabel EMPLOYEE yang tidak memiliki tugas proyek dan verifikasi penghapusan
Dengan menggunakan pemicu ini, Anda dapat memastikan bahwa karyawan dengan tugas proyek tidak
secara tidak sengaja terhapus dari tabel EMPLOYEE, sementara masih mengizinkan penghapusan
7.93 Apa itu prosedur tersimpan? Bagaimana mereka berbeda dari pemicu?
Jawab :
Prosedur tersimpan adalah blok kode yang telah ditulis sebelumnya yang dapat disimpan dan dieksekusi pada a
server basis data. Mereka biasanya digunakan untuk merangkum logika kompleks atau sering
melakukan operasi basis data, yang dapat dipanggil dari berbagai aplikasi atau
skrip.
Di sisi lain, pemicu adalah jenis objek basis data yang dijalankan secara otomatis
sebagai respons terhadap peristiwa tertentu, seperti operasi penyisipan, pembaruan, atau penghapusan pada tabel.
Machine Translated by Google
Pemicu dikaitkan dengan tabel tertentu dan dieksekusi kapan pun ditentukan
Perbedaan utama antara prosedur tersimpan dan pemicu adalah prosedur tersimpan
dieksekusi secara eksplisit dengan memanggilnya dari aplikasi atau skrip, sedangkan pemicu
dieksekusi secara implisit sebagai respons terhadap peristiwa tertentu. Prosedur tersimpan juga lebih banyak
fleksibel dalam hal logika yang dapat dikandungnya, sedangkan pemicu biasanya terbatas pada
Singkatnya, prosedur dan pemicu tersimpan adalah objek database penting yang bisa
digunakan untuk meningkatkan kinerja dan fungsionalitas aplikasi basis data, tetapi mereka
melayani tujuan yang berbeda dan dieksekusi dengan cara yang berbeda.
Jawab :
Prosedur tersimpan dan pemicu keduanya adalah objek basis data yang dapat digunakan untuk mengeksekusi
kode dalam menanggapi peristiwa atau kondisi tertentu dalam sistem basis data. Namun, ada
Prosedur tersimpan:
• Prosedur tersimpan adalah blok kode yang telah dikompilasi dan dapat digunakan kembali yang dapat dipanggil oleh
• Biasanya digunakan untuk mengenkapsulasi SQL yang kompleks atau yang sering dieksekusi
• Prosedur tersimpan dapat dijalankan sesuai permintaan oleh aplikasi atau pengguna, atau bisa
• Mereka dapat dibuat dan dimodifikasi menggunakan perintah SQL, dan dapat menyertakan
Pemicu:
• Pemicu adalah tipe khusus dari stored procedure yang dijalankan secara otomatis
sebagai tanggapan atas peristiwa atau perubahan tertentu pada data dalam tabel basis data.
• Mereka dapat digunakan untuk menegakkan aturan bisnis atau kendala integritas data, audit
mengubah data, atau melakukan tindakan otomatis lainnya berdasarkan perubahan data.
• Pemicu diasosiasikan dengan tabel dan kejadian tertentu (seperti insert, update,
• Mereka tidak dapat dijalankan pada permintaan seperti prosedur tersimpan, dan hanya
Singkatnya, prosedur tersimpan adalah blok kode mandiri yang dapat dipanggil sesuai permintaan
atau dijadwalkan untuk dijalankan, sedangkan trigger adalah objek database yang dieksekusi secara otomatis
Jawab :
Prosedur tersimpan adalah fitur canggih dari sistem manajemen basis data yang memungkinkan
pengembang untuk menulis dan menyimpan kumpulan kode yang dapat dijalankan berulang kali. Beberapa dari
mengurangi lalu lintas jaringan dan menyediakan kode yang telah dikompilasi yang dapat dieksekusi
dengan cepat.
2) Peningkatan Keamanan: Prosedur tersimpan dapat membantu melindungi database Anda dari SQL
serangan injeksi dengan membatasi jumlah data yang dapat diakses oleh pengguna.
mereka dapat dengan mudah dipelihara dan diperbarui tanpa mengubah dasarnya
kode aplikasi.
4) Penggunaan Kembali Kode yang Lebih Baik: Prosedur tersimpan dapat digunakan oleh banyak aplikasi
atau skrip, yang berarti pengembang dapat menghemat waktu dengan menggunakan kembali kode yang telah ada
sudah ditulis.
5) Kontrol Transaksi: Prosedur tersimpan dapat membantu memastikan integritas data dengan
menyediakan kontrol transaksi, yang berarti bahwa beberapa tindakan dapat dikelompokkan
Secara keseluruhan, prosedur tersimpan menyediakan alat yang ampuh bagi pengembang untuk meningkatkan basis data
kinerja, meningkatkan keamanan, menyederhanakan pemeliharaan, dan meningkatkan penggunaan kembali kode.