Ada begitu banyak jenis produk SQL yang mungkin Anda tinggalkan begitu saja dan memulainya tanpa mengurus sisanya. Namun jika Anda ingin menggunakan ASP dan SQL secara bersamaan, Anda mungkin akan pusing.
MySQL, SQL Server, dan mSQL semuanya merupakan alat SQL yang sangat baik, namun sayangnya, Anda tidak dapat menggunakannya untuk membuat pernyataan SQL praktis di lingkungan ASP. Namun, Anda dapat menggunakan pengetahuan Access Anda sendiri dan keterampilan Access yang sesuai, ditambah dengan tip dan trik kami, saya yakin Anda akan berhasil menambahkan SQL ke halaman web ASP Anda.
1. Pernyataan PILIHDalam dunia SQL, operasi paling dasar adalah pernyataan SELECT. Saat menggunakan SQL langsung di bawah alat database, banyak orang akan familiar dengan operasi berikut:
PILIH apa
DARI yang manaMeja
kriteria DIMANA
Mengeksekusi pernyataan di atas akan membuat kueri yang menyimpan hasilnya.
Pada file halaman ASP, Anda juga dapat menggunakan sintaks umum di atas, tetapi situasinya sedikit berbeda. Saat memprogram dalam ASP, konten pernyataan SELECT harus ditetapkan ke variabel sebagai string:
SQL = "PILIH apa DARI kriteria WHERE Tabel mana"
Oke, sekarang setelah Anda memahami cara SQL "berbicara" di bawah ASP, Anda bisa mengikuti metode yang sama. Selama metode tersebut memenuhi kebutuhan Anda, mode kueri SQL tradisional dan kueri bersyarat dapat digunakan.
Misalnya, Anda memiliki tabel data di database Anda bernama Produk, dan sekarang Anda ingin mengambil semua catatan dalam tabel ini. Kemudian Anda menulis kode berikut:
SQL = "PILIH * DARI Produk"
Kode di atas - fungsi dari pernyataan SQL adalah untuk mengambil semua data dalam tabel - setelah eksekusi, semua catatan dalam tabel data akan dipilih. Namun, jika Anda hanya ingin mengambil kolom tertentu dari tabel, seperti p_name. Maka Anda tidak bisa menggunakan karakter wildcard *. Anda harus mengetikkan nama kolom tertentu. Kodenya adalah sebagai berikut:
SQL ="PILIH nama_p DARI Produk"
Setelah menjalankan query di atas, semua isi kolom p_name pada tabel Produk akan dipilih.
2. Gunakan klausa WHERE untuk mengatur kondisi kueriTerkadang mengambil semua catatan database mungkin hanya memenuhi kebutuhan Anda, namun dalam kebanyakan kasus kami biasanya hanya perlu mengambil sebagian dari catatan tersebut. Bagaimana kita merancang kueri dalam kasus ini? Tentu perlu sedikit pemikiran lebih, apalagi artikel ini sengaja tidak ingin Anda menggunakan recordset jelek itu.
Misalnya, jika Anda hanya berencana untuk mengambil catatan p_name, dan nama catatan ini harus dimulai dengan huruf w, maka Anda akan menggunakan klausa WHERE berikut:
SQL ="PILIH p_name DARI Produk DIMANA p_name SEPERTI 'W%'"
Kata kunci WHERE diikuti dengan kondisi yang digunakan untuk memfilter data. Dengan bantuan kondisi tersebut, hanya data yang memenuhi kriteria tertentu yang akan dikueri. Pada contoh di atas, hasil query hanya akan mendapatkan record p_name yang namanya dimulai dengan w.
Pada contoh di atas, arti dari simbol persen (%) adalah memerintahkan query untuk mengembalikan semua entri record yang dimulai dengan huruf w dan diikuti oleh data apa pun atau bahkan tanpa data. Oleh karena itu, saat menjalankan kueri di atas, barat dan willow akan dipilih dari tabel Produk dan disimpan dalam kueri.
Seperti yang Anda lihat, dengan desain pernyataan SELECT yang cermat, Anda dapat membatasi jumlah informasi yang dikembalikan dalam kumpulan data, dan lebih banyak pemikiran akan selalu memenuhi kebutuhan Anda.
Ini hanyalah awal dari penguasaan penggunaan SQL. Untuk membantu Anda secara bertahap menguasai penggunaan pernyataan SELECT yang kompleks, mari kita lihat istilah standar utama: operator perbandingan. Hal-hal ini sering digunakan saat Anda membuat string SELECT Anda sendiri untuk mendapatkan data tertentu.
Dasar-dasar klausa WHERE
Saat mulai membuat klausa WHERE, cara termudah adalah dengan menggunakan simbol perbandingan standar, yaitu <, <=, >, >=, <>, dan =. Tentunya Anda akan segera memahami arti dan hasil spesifik dari kode berikut:
PILIH * DARI Produk DIMANA p_price >= 199,95
PILIH * DARI Produk DI MANA p_price <> 19,95
PILIH * DARI Produk WHERE p_version = '4'
Catatan: Anda akan melihat di sini bahwa angka 4 pada contoh kalimat terakhir memiliki tanda kutip tunggal di sekelilingnya. Alasannya adalah, '4' dalam contoh ini adalah tipe teks dan bukan tipe numerik. Karena Anda mengapit pernyataan SELECT dalam tanda kutip untuk menetapkannya sebagai nilai pada variabel, Anda juga dapat menggunakan tanda kutip di dalam pernyataan tersebut.
operator perbandingan
Operator perbandingan menentukan rentang konten data yang akan diambil dari tabel. Anda dapat menggunakannya untuk membuat filter guna mempersempit kumpulan data menjadi hanya informasi yang Anda pedulikan untuk tugas tertentu.
3. SUKA, BUKAN SUKA dan ANTARAAnda telah melihat penggunaan LIKE pada contoh di atas untuk menghapus record yang dimulai dengan w. Predikat LIKE merupakan simbol yang sangat berguna. Namun, dalam banyak kasus, menggunakannya mungkin memberi Anda terlalu banyak data, jadi sebaiknya gunakan otak Anda untuk lebih memikirkan data apa yang ingin Anda peroleh sebelum menggunakannya. Misalkan Anda ingin mengekstrak 5 digit nomor SKU yang dimulai dengan 1 dan diakhiri dengan 5, maka Anda dapat menggunakan garis bawah (_) sebagai ganti simbol %:
SQL = "PILIH * DARI Produk DI MANA p_sku SEPERTI '1___5'"
Garis bawah mewakili karakter apa pun. Jadi jika Anda memasukkan "1 _ _ _ 5", pencarian Anda akan dibatasi hingga 5 digit yang sesuai dengan pola tertentu.
Jika ingin melakukan sebaliknya, cari semua entri SKU yang tidak cocok dengan pola "1_ _ _ 5". Maka Anda hanya perlu menambahkan NOT di depan LIKE pada contoh pernyataan tadi.
DI ANTARA
Misalkan Anda ingin mengambil data dalam rentang tertentu, dan Anda mengetahui titik awal dan titik akhir rentang tersebut terlebih dahulu, maka Anda sebaiknya menggunakan kata penilaian BETWEEN. Sekarang mari kita asumsikan bahwa Anda ingin memilih catatan dalam rentang antara 1 dan 10 dalam tabel tertentu. Anda dapat menggunakan ANTARA sebagai berikut:
…DIMANA ID ANTARA 1 DAN 10
Atau Anda dapat menggunakan kata-kata penilaian matematika yang sudah Anda kenal:
…DIMANA ID >= 1 DAN ID >= 10
4. Pernyataan serikat pekerjaPernyataan SQL yang telah kita bicarakan sejauh ini relatif sederhana. Jika pernyataan tersebut dapat ditanyakan melalui loop kumpulan data standar, maka pernyataan ini juga dapat memenuhi beberapa persyaratan yang lebih kompleks. Namun, mengapa Anda harus tetap berpegang pada level dasar yaitu mencobanya saja? Anda dapat menambahkan simbol lain, seperti AND, OR, dan NOT untuk menyelesaikan fungsi yang lebih canggih.
Ambil pernyataan SQL berikut sebagai contoh:
SQL ="PILIH c_firstname, c_lastname, c_email DARI pelanggan DI MANA c_email IS
BUKAN NULL DAN c_purchase = '1' ATAU c_purchase = '2' DAN c_lastname SEPERTI
'A%'"
Berdasarkan pengetahuan Anda saat ini tentang SQL, contoh di atas tidak sulit untuk dijelaskan, namun pernyataan di atas tidak memungkinkan Anda melihat dengan jelas bagaimana pernyataan kondisional direkatkan dalam satu pernyataan SQL.
pernyataan multi-baris
Ketika pernyataan SQL sulit dipahami, Anda mungkin ingin menguraikan seluruh pernyataan menjadi beberapa baris kode, lalu secara bertahap menambahkan setiap komponen pernyataan kueri berdasarkan variabel yang ada dan menyimpannya dalam variabel yang sama:
SQL = "PILIH c_nama depan, c_nama belakang, c_alamat email, c_ponsel"
SQL = SQL & "DARI pelanggan"
SQL = SQL & " WHERE c_firstname SEPERTI 'A%' dan c_emailaddress BUKAN NULL"
SQL = SQL & "PESAN BERDASARKAN c_nama belakang, c_nama depan"
Pada kalimat terakhir, variabel SQL berisi pernyataan SELECT lengkap berikut:
"PILIH c_firstname, c_lastname, c_emailaddress, c_phone DARI pelanggan
DIMANA c_firstname SEPERTI 'A%' dan c_emailaddress TIDAK ADA NULL ORDER BY c_lastname,
c_nama depan"
Setelah seluruh kalimat dipecah seperti gambar di atas, jelas lebih mudah dibaca! Saat melakukan debug, Anda mungkin memilih untuk mengetikkan beberapa karakter lagi agar program lebih mudah dibaca. Namun perlu diingat bahwa Anda perlu menambahkan spasi sebelum menutup tanda kutip atau setelah membuka tanda kutip, untuk memastikan bahwa Anda tidak menyatukan beberapa kata pada saat string disambung.
5. Mulai eksekusi
Setelah mempelajari struktur dan tujuan pernyataan SELECT, sekarang saatnya mempelajari cara menggunakannya. Tergantung pada alat basis data yang Anda inginkan, ini mungkin berarti menekan tombol yang bertuliskan "Mulai". Pada halaman web ASP, pernyataan SQL dapat langsung dieksekusi atau disebut sebagai prosedur tersimpan.
Setelah Anda membuat pernyataan SQL, Anda masih harus mengakses hasil kuerinya. Jelas, kuncinya di sini adalah recordset ASP. Saat menggunakan recordset non-SQL, kode untuk membuat recordset biasanya terlihat seperti ini:
Redupkan objek Rek
Setel objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Buka "pelanggan", objConn, 0, 1, 2
Jika Anda sudah familiar dengan ASP, kode di atas pasti sudah tidak asing lagi bagi Anda. Anda harus tahu bahwa "pelanggan" berarti nama tabel data di database yang Anda buka.
Buka kumpulan rekaman
Untuk memanfaatkan sepenuhnya keterampilan SQL yang lebih Anda kenal, Anda harus mengadaptasi kumpulan data yang paling umum digunakan pada halaman web ASP biasa:
Redupkan objek Rek
Setel objRec = Server.CreateObject ("ADODB.Recordset")
objRec.Buka SQL, objConn, 0, 1, 2
Satu-satunya modifikasi di sini adalah pada objRec.Open, setelah itu nama tabel data yang akan ditanyakan diganti dengan variabel yang berisi pernyataan SQL.
Salah satu kelebihan pendekatan ini adalah Anda dapat menentukan jenis kursor (ditunjukkan sebagai 0, 1, 2 di atas).
Jalankan SQL
Anda dapat membuat kumpulan data dengan menjalankan pernyataan SQL dengan baris kode yang ringkas. Berikut sintaksnya:
Redupkan objek Rek
atur objRec = objConn.Execute(SQL)
Dalam contoh di atas, SQL yang Anda lihat adalah variabel tempat Anda menyimpan pernyataan SQL SELECT Anda sendiri. Baris kode ini "menjalankan" pernyataan SQL (atau menanyakan database), memilih data, dan menyimpan data dalam kumpulan data, dalam hal ini variabel objRec. Kerugian utama dari pendekatan ini adalah Anda tidak dapat memilih jenis kursor yang ingin Anda gunakan. Sebaliknya, kumpulan rekaman selalu dibuka dengan kursor maju.
Karena kursor, Anda mungkin ingin membiasakan diri dengan dua metode membuat kumpulan data. Menjalankan kueri secara langsung menghemat waktu yang dihabiskan untuk mengetik karakter, tetapi kemudian Anda harus menggunakan kursor default, yang mungkin mengalami masalah yang sering kali tidak berfungsi dengan benar. Apa pun metode yang Anda gunakan, perbedaan terbesar antara keduanya terletak pada apakah kodenya ringkas atau tidak. Terlepas dari bidang apa yang Anda peroleh, apa standar Anda, atau bagaimana Anda menyimpan data, kumpulan data gaya SQL akan jauh lebih kecil ukurannya dibandingkan kumpulan data standar yang dibuka di ASP, apalagi mudah dioperasikan. Lagi pula, dengan memfilter data, Anda menghilangkan pengujian if-then yang memakan waktu dan kemungkinan perulangan.
Tes tulis SQL
Berikut ini triknya. Banyak programmer ASP profesional terbiasa "menulis" pernyataan SQL mereka sendiri saat menguji halaman web. Melakukan hal ini dapat membantu Anda men-debug kode karena Anda dapat melihat string diteruskan ke server untuk dieksekusi. Dan yang perlu Anda lakukan hanyalah menambahkan Response.WriteyourVariable untuk menampilkan informasi yang relevan di layar. Anda harus menyertakan informasi ini ketika Anda mengirimkan pertanyaan terkait SQL ke grup diskusi ASP.
6. Permintaan penyimpananKetika kueri Anda relatif sederhana, tidak perlu banyak usaha untuk membuat pernyataan SQL dari awal setiap saat. Namun, situasinya berbeda dengan kueri yang kompleks. Memulai dari awal setiap kali akan menghasilkan banyak kesalahan pengembangan. Oleh karena itu, setelah SQL Anda berjalan dengan lancar, Anda sebaiknya menyimpannya dan memanggilnya saat diperlukan. Dengan cara ini, bahkan untuk kueri sederhana, Anda bisa menggunakan pernyataan kueri yang disimpan kapan saja.
Misalkan Anda harus membuat laporan mingguan ke tim Anda, menunjukkan masalah dukungan bisnis saat ini. Data ini perlu dipilih dari database Anda, dan catatan harus dipilih berdasarkan tanggal, dan diurutkan berdasarkan kategori masalah dukungan yang diadopsi oleh Anda. tim. . Setelah Anda merancang kueri ini, mengapa Anda perlu menulis ulang setiap minggu? Daripada membuat kueri di halaman HTML, Anda harus menggunakan alat database untuk membuat kueri dan menyimpannya.
Anda kemudian dapat menggunakan atribut ActiveCommand untuk memasukkan kueri ke halaman ASP Anda. Anda mungkin berpikir ini tidak menarik pada pertama atau kedua kalinya, tetapi sebenarnya itu hanya beberapa baris kode:
Setel objSQ = Server.CreateObject ("ADODB.Command")
objSQ.ActiveConnection = "nama basis data"
objSQ.CommandText = "Nama Kueri Tersimpan"
objSQ.CommandType = adCmdStoredProc
setel objRec = objSQ.Jalankan
Perhatikan bahwa menggunakan adCmdStoredProc berarti Anda telah menyertakan file adovbs.inc di halaman tersebut. File ini mendefinisikan konstanta Access yang dapat Anda akses berdasarkan nama, bukan nomor. Cukup sertakan file pada halaman (<!--#INCLUDE -->) dan kemudian Anda dapat menggunakan nama seperti adCmdStoredProc. Dengan cara ini, akan lebih mudah bagi Anda untuk memahami apa arti kueri tersimpan di atas ketika Anda melihatnya di masa mendatang.