Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Setiap kali Anda menulis kueri pengambilan, Anda mengartikulasikan kolom apa yang Anda inginkan, baris apa yang Anda inginkan, dan di mana prosesor kueri harus menemukan data asli. Biasanya, data asli ini terdiri dari tabel atau beberapa tabel yang digabungkan. Tetapi data asli dapat berasal dari sumber selain tabel. Bahkan, dapat berasal dari tampilan, kueri, sinonim, atau fungsi yang ditentukan pengguna yang mengembalikan tabel.
Menggunakan tampilan sebagai pengganti tabel
Anda dapat memilih baris dari tampilan. Misalnya, database menyertakan tampilan yang disebut "Buku Mahal", di mana setiap baris menjelaskan judul yang harganya melebihi 19,99. Definisi tampilan mungkin terlihat seperti ini:
SELECT *
FROM titles
WHERE price > 19.99;
Anda dapat memilih buku psikologi yang mahal hanya dengan memilih buku psikologi dari tampilan Buku Mahal. SQL yang dihasilkan mungkin terlihat seperti ini:
SELECT *
FROM ExpensiveBooks
WHERE type = 'psychology';
Demikian pula, tampilan dapat berpartisipasi dalam JOIN operasi. Misalnya, Anda dapat menemukan penjualan buku mahal hanya dengan menggabungkan tabel penjualan ke view ExpensiveBooks. SQL yang dihasilkan mungkin terlihat seperti ini:
SELECT *
FROM sales
INNER JOIN ExpensiveBooks
ON sales.title_id = ExpensiveBooks.title_id;
Untuk informasi selengkapnya tentang menambahkan tampilan ke kueri, lihat Menambahkan tabel ke kueri (Alat Visual Database).
Menggunakan kueri sebagai pengganti tabel
Anda bisa memilih baris dari kueri. Misalnya, Anda telah menulis kueri yang mengambil judul dan pengidentifikasi buku yang ditulis bersama - buku dengan lebih dari satu penulis. SQL mungkin terlihat seperti ini:
SELECT titles.title_id,
title,
type
FROM titleauthor
INNER JOIN titles
ON titleauthor.title_id = titles.title_id
GROUP BY titles.title_id, title, type
HAVING COUNT(*) > 1;
Anda kemudian dapat menulis kueri lain yang dibangun di atas hasil ini. Misalnya, Anda dapat menulis kueri yang mengambil buku-buku psikologi yang ditulis bersama. Untuk menulis kueri baru ini, Anda bisa menggunakan kueri yang sudah ada sebagai sumber data kueri baru. SQL yang dihasilkan mungkin terlihat seperti ini:
SELECT title
FROM (SELECT titles.title_id,
title,
type
FROM titleauthor
INNER JOIN titles
ON titleauthor.title_id = titles.title_id
GROUP BY titles.title_id, title, type
HAVING COUNT(*) > 1) AS co_authored_books
WHERE type = 'psychology';
Teks yang ditekankan menunjukkan kueri yang sudah ada yang digunakan sebagai sumber data kueri baru. Kueri baru menggunakan alias ("co_authored_books") untuk kueri yang sudah ada. Untuk informasi selengkapnya tentang alias, lihat Membuat alias tabel (Alat Visual Database) dan Membuat alias kolom (Alat Visual Database).
Demikian pula, kueri dapat berpartisipasi dalam JOIN operasi. Misalnya, Anda dapat menemukan penjualan buku mahal hasil penulisan bersama hanya dengan mengaitkan tampilan ExpensiveBooks dengan kueri yang menampilkan buku-buku hasil penulisan bersama. SQL yang dihasilkan mungkin terlihat seperti ini:
SELECT
ExpensiveBooks.title
FROM
ExpensiveBooks
INNER JOIN
(
SELECT
titles.title_id,
title,
type
FROM
titleauthor
INNER JOIN
titles
ON titleauthor.title_id
= titles.title_id
GROUP BY
titles.title_id,
title,
type
HAVING COUNT(*) > 1
)
Untuk informasi selengkapnya tentang menambahkan kueri ke kueri, lihat Menambahkan tabel ke kueri (Alat Visual Database).
Menggunakan fungsi yang ditentukan pengguna sebagai pengganti tabel
Anda dapat membuat fungsi yang ditentukan pengguna yang mengembalikan tabel. Fungsi tersebut berguna untuk melakukan logika kompleks atau prosedural.
Misalnya, tabel karyawan berisi kolom tambahan, employee.manager_emp_id, dan bahwa kunci asing ada dari manager_emp_id ke employee.emp_id. Dalam setiap baris tabel karyawan, manager_emp_id kolom menunjukkan bos karyawan. Lebih tepatnya, itu menunjukkan bos emp_idkaryawan. Anda dapat membuat fungsi yang ditentukan pengguna yang mengembalikan tabel yang berisi satu baris untuk setiap karyawan yang bekerja dalam hierarki organisasi manajer tingkat tinggi tertentu. Anda mungkin memanggil fungsi fn_GetWholeTeam, dan merancangnya untuk mengambil variabel input - emp_id manajer yang timnya ingin Anda ambil.
Anda bisa menulis kueri yang menggunakan fungsi fn_GetWholeTeam sebagai sumber data. SQL yang dihasilkan mungkin terlihat seperti ini:
SELECT *
FROM fn_GetWholeTeam('VPA30890F');
VPA30890F
emp_id adalah manajer yang organisasinya ingin Anda ambil. Untuk informasi selengkapnya tentang menambahkan fungsi yang ditentukan pengguna ke kueri, lihat Menambahkan tabel ke kueri (Alat Visual Database). Untuk deskripsi lengkap fungsi yang ditentukan pengguna, lihat Fungsi yang ditentukan pengguna.