Menggunakan sintaks SELECT di ADO
Penulis:Eve Cole
Waktu Pembaruan:2009-05-30 19:54:37
ekspresi PILIH
Selanjutnya, mari kita lihat ekspresi SELECT. SELECT digunakan untuk mencari record yang memenuhi kondisi tertentu dalam tabel.
PILIH [kata kunci] { * |.nama tabel.* |. [nama tabel.] nama kolom 1 [AS alias 1] [, [nama tabel.] nama kolom 2 [AS alias 2] [, ...]]}
DARI ekspresi tabel [, ...] [DI tabel eksternal]
[DI MANA... ]
[ KELOMPOK BERDASARKAN... ]
[MEMILIKI...]
[PESAN OLEH... ]
[DENGAN OPSI AKSES PEMILIK]
Kata kunci: dapat digunakan untuk membatasi jumlah record yang dikembalikan, dan dapat diatur ke ALL, DISTINCT, DISTINCTROW, atau TOP. Jika tidak ada predikat yang ditentukan, nilai defaultnya adalah SEMUA.
*: Pilih semua bidang.
Alias: mengganti nama field asli pada tabel.
Ekspresi tabel: satu atau lebih nama tabel yang dipisahkan koma.
Tabel eksternal: Jika tabel tidak ada pada tabel saat ini, nama tabel yang berisi tabel dalam operasi tabel harus ditetapkan.
Mengeksekusi ekspresi SELECT tidak akan mengubah data yang ada di tabel.
Sintaks paling dasar dari ekspresi SELECT adalah:
SELECT * FROM ekspresi tabel
Anda dapat menggunakan tanda bintang (*) untuk memilih semua bidang tabel. Misalnya, contoh berikut memilih semua bidang dalam tabel [Produk]:
PILIH * DARI produk
Jika nama field mengandung spasi atau tanda baca, nama field tersebut harus diapit tanda kurung [ ]. Misalnya:
PILIH [Produk komputer]
Jika nama field dalam klausa FROM berisi beberapa tabel, Anda perlu menambahkan nama tabel dan operator titik (.) sebelum nama field, yaitu nama tabel.nama field. Misalnya, contoh berikut memilih kolom [Harga] pada tabel [Produk] dan kolom [Kuantitas] pada tabel [Pesanan]:
PILIH produk.harga, pesanan.kuantitas
DARI produk, pesanan
DIMANA kode produk = kode pesanan
Saat Anda menggunakan objek Recordset, Recordset tidak mengenali format rs (nama tabel. nama bidang), yaitu, rs ("produk. harga") akan menyebabkan kesalahan, dan Anda harus menggunakan AS untuk menyetel alias bidang tersebut nama. Misalnya:
PILIH produk.hargaAS harga, pesanan.kuantitasAS kuantitas
DARI produk, pesanan
DIMANA kode produk = kode pesanan
Dengan cara ini, Anda dapat menggunakan rs ("harga") dan rs ("kuantitas") untuk membaca data bidangnya.
Sintaks yang terkait dengan ekspresi SELECT:
Kata Kunci: SEMUA/ BERBEDA/ BERBEDA/ ATAS.
WHERE: Temukan catatan data dalam tabel FROM yang memenuhi kondisi tertentu. WHERE dapat menggunakan operator BETWEEN, LIKE, dan IN berikut ini:
Antara...Dan: Tentukan apakah nilai ekspresi berada dalam rentang yang ditentukan.
Seperti: Temukan kata kunci yang cocok.
DALAM ekspresi: jangkauan terbatas.
Ekspresi NOT IN: Menunjukkan bahwa ekspresi tersebut tidak termasuk dalam rentang yang ditentukan.
Klausa ORDER BY: Anda dapat mengatur bidang pengurutan.
Klausa GROUP BY: Membuat statistik pada hasil kueri.
Klausa HAVING: Digunakan dalam ekspresi SELECT untuk memfilter rekaman yang telah menjadi statistik GROUP BY.
Gabungan: Hasil dari beberapa kumpulan kueri dapat digabungkan.
GABUNG: Menggabungkan catatan lapangan dalam dua tabel.
Subkueri: Ekspresi dapat menyertakan ekspresi SELECT.
Pilih...Ke: Membuat tabel yang dihasilkan berdasarkan hasil kueri.
Dengan rincian sebagai berikut:
Kata kunci SEMUA/BERBEDA/BERBEDA/ATAS
Saat menggunakan kueri SELECT, Anda dapat menambahkan kata kunci untuk memilih rekaman yang dikueri. sebagai berikut:
SEMUA: Mengembalikan semua catatan.
DISTINCT: Jika ada rekaman duplikat di bidang yang ditentukan, hanya satu rekaman yang akan dikembalikan, dan rekaman tidak akan diduplikasi.
DISTINCTROW: Tidak ada catatan di bidang yang ditentukan yang akan dikembalikan jika ada duplikat.
TOP: Mengembalikan catatan sebelumnya atau persentase catatan.
Sintaksnya adalah sebagai berikut:
PILIH [SEMUA |. BERBEDA |. BERBEDA |. [ATAS n [PERSEN]]]
DARI meja
ALL mengembalikan semua catatan. Jika tidak ada kata kunci yang ditambahkan, artinya sama dengan menambahkan SEMUA, dan semua catatan akan dikembalikan. Misalnya, dua contoh berikut memiliki hasil eksekusi yang sama, keduanya mengembalikan semua rekaman dari tabel produk:
PILIH SEMUA * DARI produk
Hasil eksekusinya sama dengan:
PILIH * DARI produk
DISTINCT tidak memilih data duplikat di bidang yang ditentukan. Setelah menggunakan DISTINCT, hasil query akan mencantumkan nilai data masing-masing field setelah SELECT DISTINCT. Jika sama maka hanya akan diambil satu record. Dengan kata lain tidak akan terjadi duplikasi data pada field yang ditentukan. Misalnya, ada beberapa produk dengan nama produk yang sama di tabel produk, dan ekspresi SQL DISTINCT hanya akan mengembalikan satu catatan yang bidangnya memiliki data nama produk yang sama:
PILIH nama produk yang BERBEDA DARI produk
Jika Anda tidak menyertakan DISTINCT, contoh kueri di atas akan mengembalikan beberapa catatan yang berisi nama produk yang sama.
Jika beberapa bidang ditentukan setelah klausa SELECT DISTINCT, nilai gabungan semua bidang dalam hasil kueri tidak akan terulang.
DISTINCTROW tidak mengembalikan semua catatan duplikat dari bidang yang ditentukan.
TOP n [PERCENT], mengembalikan catatan sebelumnya atau persentase catatan. Urutan pengurutan dapat ditentukan menggunakan klausa ORDER BY. Misalnya, carilah nama 10 siswa teratas:
PILIH 10 Nama TERATAS
DARI siswa
ORDER BY skor
Jika Anda tidak menyertakan klausa ORDER BY, kueri akan mengembalikan 10 catatan sembarang dari tabel Siswa.
TOP tidak memilih antara nilai yang sama. Jika hasil ke-10 dan ke-11 sama, kueri akan mengembalikan 11 catatan.
Anda dapat menggunakan PERCENT untuk mencatat beberapa persentase pertama, misalnya, untuk mencari nama 10% siswa teratas:
PILIH 10 PERSEN TERATAS Nama
DARI siswa
ORDER BY skor
Mari kita lihat contoh penggunaan perintah SQL ini dalam program ASP.
Anda dapat menggunakan Distinct untuk menemukan catatan unik. Misalnya, program ASP rs7.asp adalah sebagai berikut, [Masukkan Ke Produk (nama kode, nama) Pilih Nama kode yang berbeda, nama Dari produk di mana nama kode = 'C2000'] Menggunakan Distinct dan Sisipkan Ke, nama kode baru adalah catatan C2000:
<%
'Kode yang berbeda, nama hanya menentukan kodenya, apakah namanya sama, hanya menambahkan satu record jika sama
sql = "Masukkan Ke dalam produk (nama kode, nama) Pilih Nama kode yang berbeda, nama Dari produk dengan kode='C2000'"
Setel a = samb1.Jalankan(sql)
Setel rs3 = Server.CreateObject("ADODB.Recordset")
sql = "Pilih * dari produk dengan kode='C2000'"
rs3.Buka sql,sambungan1,1,1,1
%>
<TABEL COLSPAN=8 CELLPADDING=5 BATAS=0>
<TR>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Kode</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Nama</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Harga</FONT></TD>
<TD ALIGN=CENTER BGCOLOR="#800000"><FONT COLOR="#FFFFFF">Jumlah</FONT></TD>
</TR>
<% Lakukan selagi tidak rs3.EOF %>
<TR>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("nama kode")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("name")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("harga")%></TD>
<TD BGCOLOR="f7efde" ALIGN=CENTER><%= rs3("kuantitas")%></TD>
</TR>
<%
rs3.MoveNext
Lingkaran
rs3.Tutup
%>
</TABEL>
DI MANA
WHERE mencari rekaman data yang memenuhi kondisi tertentu dalam tabel FROM. WHERE digunakan dalam ekspresi SELECT, UPDATE, atau DELETE.
Jika klausa WHERE tidak ditentukan dalam kueri SELECT, semua data dalam tabel akan dikembalikan. Jika Anda menanyakan beberapa tabel dalam SELECT tanpa menggunakan klausa WHERE atau klausa JOIN, hasil kueri akan menjadi produk dari data dalam beberapa tabel.
WHERE menetapkan kondisi tertentu, seperti:
FROM product WHERE Category = 'Computer': Menunjukkan pemilihan [Produk] yang [Kategori]nya adalah [Komputer]
DIMANA Harga Antara 1000 Dan 5000: Menunjukkan bahwa harga antara 1000 dan 5000.
Klausa WHERE dapat berisi hingga 40 ekspresi operasional, yang dihubungkan oleh operator logika seperti AND atau OR.
Saat mengatur kondisi tertentu, tambahkan simbol berbeda sebelum dan sesudah sesuai dengan jenis bidang, misalnya:
Teks: Tambahkan tanda kutip tunggal sebelum dan sesudah, misalnya WHERE kategori = 'Komputer'.
Angka: Tidak ada tanda sebelum dan sesudah, seperti WHERE kuantitas > 100.
Tanggal: Tambahkan # tanda sebelum dan sesudah, misalnya tanggal WHERE = #5/15/99#.
WHERE dapat menggunakan operator BETWEEN, LIKE, dan IN berikut ini.