Apa itu kueri sql yang ada di akses. Mengambil data dari database Access menggunakan kueri sql. Catatan tanpa bawahan

Pekerjaan laboratorium No.1

SQL: EKSTRAK DATA - perintahMEMILIH

Tujuan pekerjaan:

  • menjadi akrab dengan pernyataan SQL;
  • pelajari cara membuat kueri SQL sederhana di Access menggunakan perintah SELECT;

· penggunaan operator IN, ANTARA, LIKE, IS NULL.

Latihan№1. Buat kueri untuk memilih dalam mode SQL semua nilai bidang NAMA DEPAN dan NAMA BELAKANG dari tabel SISWA.

PILIH NAMA DEPAN, NAMA TERAKHIR

DARI SISWA;

Latihan№2 . Buat kueri untuk memilih dalam mode SQL semua kolom tabel STUDENTS.

PILIH *

DARI SISWA;


Tugas No.3. Buat query untuk memilih dalam mode SQL nama kota tempat tinggal siswa, informasinya ada di tabel DATA PRIBADI.

PILIH KOTA YANG BERBEDA

DARI [DATA PRIBADI];

Tugas No.4. Buat kueri pemilihan dalam mode SQL yang mengambil nama semua siswa dengan nama belakang Ivanov, informasinya ada di tabel STUDENTS.

PILIH NAMA TERAKHIR, NAMA DEPAN

DARI SISWA

DIMANA NAMA TERAKHIR="Ivanov";

Tugas No.5. Buat kueri pemilihan dalam mode SQL untuk mendapatkan nama depan dan belakang siswa yang belajar di grup UIT-22 pada bentuk pendidikan anggaran.

PILIH NAMA TERAKHIR, NAMA DEPAN

DARI SISWA

WHERE GROUP="UIT-22" DAN ANGGARAN=benar;

Tugas No.6. Buat kueri dalam mode SQL. untuk contoh tabel PEMERIKSAAN informasi siswa yang mempunyai nilai 4 dan 5 saja.

PILIH *

DARI [MENGUBAHPEMERIKSAAN]

DI MANANILAIDI(4,5);

Tugas No.7. Buat mode zanpoc dan SQL untuk memilih informasi tentang siswa yang memiliki nilai ujian 3 pada mata pelajaran IOSU.

PILIH *

DARI [MENGUBAHPEMERIKSAAN]

DI MANABARANG=" IOSU"DanNILAITidak Masuk (4,5);

Tugas No.8. Buat kueri dalam mode SQL untuk memilih rekaman item yang jam kerjanya antara 100 dan 130.

PILIH *

DARIITEM

DI MANAJAM TANGANANTARA 100 DAN 130;


Tugas No.9. Buat query dalam mode SQL untuk memilih dari tabel STUDENTS informasi tentang siswa yang nama belakangnya dimulai, misalnya dengan huruf “C”.

PILIH *

DARISISWA

DI MANANAMA BELAKANGMENYUKAI"DENGAN*";

Kesimpulan: Selama pekerjaan laboratorium, kami berkenalan dengan instruksi SQL, mempelajari cara membuat query SQL sederhana di Access menggunakan perintah SELECT menggunakan operator IN, BETWEEN, LIKE.

Bahasa SQL tidak memiliki fungsi bahasa pengembangan yang lengkap, tetapi berfokus pada akses data, sehingga termasuk dalam alat pengembangan program. Dalam hal ini disebut SQL tertanam. Standar bahasa SQL didukung oleh implementasi modern dari bahasa pemrograman berikut: PL/1, Ada, C, COBOL, Fortran, MUMPS dan Pascal.

Dalam sistem pengembangan aplikasi khusus tipe client-server, lingkungan pemrograman biasanya dilengkapi dengan alat komunikasi (membuat dan memutuskan koneksi dengan server database, mendeteksi dan memproses kesalahan yang terjadi di jaringan, dll.), alat untuk mengembangkan antarmuka pengguna, alat desain, dan debugging

Ada dua metode utama untuk menggunakan SQL tertanam: statis dan dinamis.

Pada statis penggunaan bahasa (SQL statis) Teks program berisi panggilan ke fungsi bahasa SQL, yang disertakan secara kaku dalam modul yang dapat dieksekusi setelah kompilasi. Perubahan fungsi yang dipanggil dapat terjadi pada tingkat parameter panggilan individual menggunakan variabel bahasa pemrograman.

Pada dinamis penggunaan bahasa (SQL dinamis) ini mengasumsikan konstruksi dinamis dari panggilan fungsi SQL dan interpretasi panggilan ini, misalnya, mengakses data dari database jarak jauh, selama eksekusi program. Metode dinamis biasanya digunakan ketika aplikasi tidak mengetahui jenis panggilan SQL sebelumnya dan dibangun dalam dialog dengan pengguna.

Tujuan utama bahasa SQL (serta bahasa lain untuk bekerja dengan database) adalah untuk mempersiapkan dan mengeksekusi query. Sebagai hasil pengambilan sampel data dari satu atau lebih tabel, sekumpulan record dapat diperoleh, yang disebut presentasi.

Pertunjukan pada dasarnya adalah tabel yang dibentuk sebagai hasil eksekusi kueri. Kita dapat mengatakan bahwa ini adalah jenis kueri tersimpan. Anda dapat membuat beberapa tampilan menggunakan tabel yang sama. Tampilan itu sendiri dijelaskan dengan menentukan pengidentifikasi tampilan dan permintaan yang harus dibuat untuk mendapatkannya.



Untuk mempermudah bekerja dengan tampilan, konsep kursor telah diperkenalkan ke dalam bahasa SQL. Kursor adalah sejenis penunjuk yang digunakan untuk menelusuri kumpulan catatan saat memprosesnya.

Deskripsi dan penggunaan kursor pada SQL adalah sebagai berikut. Pada bagian deskriptif program, variabel bertipe kursor (CURSOR) diasosiasikan dengan pernyataan SQL (biasanya pernyataan SELECT). Pada bagian eksekusi program, kursor dibuka (OPEN<имя курсора», перемещение курсора по записям (FETCI-1 <имя курсора>...), diikuti dengan pemrosesan yang sesuai, dan terakhir menutup kursor (CLOSE<имя курсора>).

Dalam DBMS relasional, untuk melakukan operasi pada relasi, dua kelompok bahasa digunakan, yang memiliki dasar matematis bahasa kueri teoretis yang dikemukakan oleh E. Codd:

Aljabar relasional;

Kalkulus relasional.

Dalam aljabar relasional Operan dan hasil dari semua tindakan adalah relasi. Bahasa aljabar relasional bersifat prosedural karena relasi yang dihasilkan dari query pada database relasional dievaluasi dengan mengeksekusi rangkaian operator relasional yang diterapkan pada relasi tersebut. Operator terdiri dari operan, yaitu relasi, dan operasi relasional.

Operasi aljabar relasional Codd dapat dibagi menjadi dua kelompok: teori himpunan dasar dan relasional khusus. Kelompok operasi pertama mencakup operasi klasik teori himpunan: gabungan, selisih, perpotongan, dan perkalian. Kelompok kedua mewakili pengembangan operasi teori himpunan biasa menuju masalah nyata manipulasi data; yang meliputi operasi: proyeksi, seleksi, pembagian dan koneksi.

Bahasa kalkulus bersifat non-prosedural (deskriptif atau deklaratif) dan memungkinkan kueri diekspresikan menggunakan predikat orde pertama (pernyataan fungsi) yang harus dipenuhi oleh tupel atau domain relasional. Kueri basis data yang dijalankan menggunakan bahasa tersebut hanya berisi informasi tentang hasil yang diinginkan. Bahasa-bahasa ini dicirikan oleh adanya seperangkat aturan untuk menulis kueri. Secara khusus, SQL termasuk dalam bahasa grup ini.

Fitur aplikasi Kueri SQL

Kueri SQL adalah kueri yang dibuat menggunakan pernyataan SQL. Contoh kueri SQL adalah kueri gabungan, kueri server, kueri kontrol, dan kueri bawahan.

Kueri gabungan adalah kueri yang menggabungkan bidang (kolom) dari satu atau beberapa tabel atau kueri ke dalam satu bidang atau kolom dalam kumpulan rekaman hasil. Misalnya, enam tenaga penjualan memberikan inventaris inventaris mereka kepada manajemen setiap bulan. Dengan membuat kueri gabungan, Anda bisa menggabungkan inventaris ini ke dalam kumpulan rekaman hasil, lalu mengembangkan kueri pembuatan tabel berdasarkan kueri gabungan.

Permintaan ke server mengirimkan perintah SQL melalui ODBC ke server, misalnya Microsoft SQL Server. Kueri server memungkinkan Anda bekerja langsung dengan tabel di server alih-alih menggabungkannya. Hasil dari permintaan ke server dapat berupa pemuatan catatan atau perubahan data.

Kueri kontrol membuat atau mengubah objek database, seperti tabel Access atau SQL Server.

Subkueri terdiri dari pernyataan SQL SELECT di dalam kueri pemilihan atau perubahan lainnya. Instruksi ini dimasukkan di baris “Field” pada formulir permintaan untuk menentukan kolom baru atau di baris “Kondisi Seleksi” untuk menentukan kondisi pemilihan kolom. Subkueri digunakan untuk melakukan hal berikut:

Memeriksa subkueri untuk mengetahui keberadaan beberapa hasil menggunakan kata-kata yang dicadangkan EXISTS atau NO EXISTS;

Mencari kueri utama untuk nilai apa pun yang sama dengan, lebih besar dari, atau kurang dari nilai yang dikembalikan dalam subkueri (menggunakan kata-kata yang dicadangkan APAPUN, DALAM, atau SEMUA);

Membuat subkueri di dalam subkueri (subkueri bersarang).

Bahasa SQL di Access dapat digunakan untuk mengembangkan formulir layar, laporan, serta membuat makro dan program VBA.

Hubungan antara bahasa QBE dan SQL

Di Access, ada hubungan erat antara bahasa QBE dan SQL. Tabel kueri (formulir) dalam bahasa QBE, diisi oleh pengguna, diubah menjadi ekspresi SQL sebelum segera dieksekusi. Artinya, bahasa SQL adalah standar internal untuk mengeksekusi query. Mekanisme ini memiliki keuntungan karena memungkinkan sistem Access menyatukan persiapan kueri untuk dieksekusi pada komputer lokal dan jarak jauh. Dalam kasus terakhir, pesan SQL sebenarnya dikirimkan ke komputer - server permintaan.

Di Access, kueri bisa berada dalam salah satu dari tiga mode (status): Desain, SQL, dan Tabel. Mode desain digunakan untuk mengembangkan kueri baru dari awal (tanpa menggunakan Wizard atau alat lain) atau untuk mengubah tata letak kueri yang sudah ada. Mode SQL digunakan untuk memasukkan atau melihat pernyataan SQL. Mode tabel digunakan untuk bekerja dengan hasil kueri.

SQL dalam Formulir dan Laporan

Sumber utama rekaman dalam tampilan dan laporan adalah tabel dan kueri. Dalam kasus kedua, permintaan dapat berupa kueri database yang sudah jadi atau dibuat saat mengembangkan formulir atau laporan.

SQL di makro

Perintah makro adalah bagian dari makro yang digunakan untuk mengotomatisasi pelaksanaan tindakan yang sering diulang dalam bekerja dengan database. Makro adalah satu atau lebih perintah makro dengan argumen.

Makro dipanggil dari jendela database atau secara otomatis ketika peristiwa tertentu terjadi. Peristiwa di mana makro dipanggil dapat berupa, misalnya, klik tombol di area formulir atau pembukaan jendela database. Seiring dengan melakukan tindakan tertentu pada objek database, makro dapat memanggil makro lain, program Visual Basic, dan aplikasi eksternal.

Dari sekian banyak perintah makro, dua perintah makro yang berhubungan langsung dengan SQL: Jalankan SQL Query (Jalankan SQL) dan Open Query (OpenQuery)

Perintah makro Jalankan Kueri SQL menjalankan kueri perubahan atau kontrol Access menggunakan pernyataan SQL yang sesuai. Makro ini memungkinkan untuk melakukan tindakan dalam makro tanpa menyimpan kueri terlebih dahulu. Anda juga dapat menjalankan kueri tersimpan menggunakan makro.

Ubah permintaan adalah pernyataan SQL yang mengimplementasikan fungsi berikut: menambahkan (INSERT INTO), menghapus (DELETE), membuat tabel (SELECT...INTO) dan memperbarui (UPDATE)

Permintaan kontrol adalah pernyataan SQL yang menjalankan fungsi berikut: membuat tabel (CREATE TABLE), memodifikasi tabel (ALTER TABLE), menghapus tabel (DROP TABLE), membuat indeks (CREATE INDEX), dan menghapus indeks (DROP INDEX)

Satu-satunya argumen yang diperlukan dari perintah makro Menjalankan Kueri SQL adalah pernyataan SQL. Argumen makro sebagai teks SQL - instruksi dimasukkan secara manual di jendela input makro atau disalin dari jendela SQL, yang seringkali lebih nyaman.

Perintah makro Permintaan Terbuka memungkinkan Anda membuka kueri pemilihan atau lintas (dalam mode tabel, desain, dan pratinjau), menjalankan kueri untuk mengubah atau memasukkan data.

Makro menentukan tiga argumen: nama permintaan, mode, dan mode data. Argumen pertama menentukan nama permintaan yang akan dibuka dan wajib diisi. Argumen kedua menentukan mode pembukaan kueri (Tabel, Desain, dan Tampilan). Argumen ketiga menjelaskan mode entri data ke dalam permintaan ("Tambah", "Ubah" dan "Hanya Baca")

SQL dalam program VBA

VBA, seperti makro, dirancang untuk mengotomatiskan operasi berulang pada objek database Access.

Di Access, ada cara berikut untuk menjalankan program VBA:

Menyertakan program dalam prosedur pemrosesan acara;

Memanggil fungsi dalam ekspresi;

Memanggil Sub prosedur di prosedur lain atau di jendela debugging;

Menjalankan perintah makro RunCode (RunCode) dalam makro.

Fungsi digunakan dalam ekspresi yang menentukan bidang terhitung dalam formulir, laporan, atau kueri. Ekspresi digunakan untuk menentukan kondisi dalam kueri dan filter, serta dalam makro, pernyataan dan metode VBA, dan pernyataan SQL. Sub prosedur dapat mencakup subrutin VBA publik yang dipanggil dari prosedur lain.

Mari kita lihat menjalankan kueri database menggunakan pernyataan SQL dalam program Visual Basic for Applications.

Permintaan memilih catatan dari database yang memenuhi kondisi tertentu (permintaan pemilihan), atau mengeluarkan instruksi untuk melakukan tindakan tertentu dengan catatan yang memenuhi kondisi tertentu (permintaan perubahan).

Ada cara berikut untuk mengeksekusi kueri:

Memanggil metode Execute (untuk mengeksekusi query SQL untuk perubahan);

Pembuatan dan eksekusi objek QueryDef khusus;

Menggunakan pernyataan SQL sebagai argumen terhadap metode OpenRecordset;

Jalankan metode OpenRecordset pada objek QueryDef yang ada;

Memanggil metode RunSQL dan OpenQuery.

Jalankan metode digunakan jika Anda perlu membuat perubahan pada database yang tidak mengembalikan catatan. Misalnya saja operasi penyisipan atau penghapusan record.

objek QueryDef mewakili definisi kueri yang disimpan dalam database. Ini dapat dianggap sebagai pernyataan SQL yang dikompilasi.

Metode OpenRecordset digunakan untuk membuka objek bertipe Recordset untuk melakukan operasi selanjutnya padanya.

metode RunSQL mengeksekusi makro Menjalankan Kueri SQL dalam program VBA

metode OpenQuery mengeksekusi perintah makro OpenQuery dalam program VBA. Dengan itu, Anda bisa membuka kueri dalam mode Lembar Data, Desain, atau Tampilan. Ini menetapkan salah satu mode berikut untuk bekerja dengan data: menambah, mengubah, atau membaca saja.

Pilihan opsi eksekusi query ditentukan oleh programmer, dengan mempertimbangkan karakteristik masalah yang sedang dipecahkan.

Kementerian Pendidikan Federasi Rusia

Universitas Teknik Negeri Kuzbass

Departemen Ilmu Komputer

dan teknologi informasi

Kueri dalam bahasa SQL

Pedoman pekerjaan laboratorium bagi mahasiswa spesialisasi “Ekonomi dan Manajemen di Perusahaan” pada mata kuliah “Otomasi Perhitungan Ekonomi”

Disusun oleh E.A. Bessonov

Disetujui dalam Risalah Rapat Departemen No. 11 tanggal 23 Juni 2000

Salinan elektronik disimpan di perpustakaan gedung utama KuzSTU

Kemerovo 2001

SQL (Bahasa Kueri Terstruktur - bahasa kueri terstruktur

burung hantu) sejak tahun 1986 adalah bahasa database relasional standar. Secara khusus, ini digunakan dalam aplikasi Access dan Excel. Standar bahasa SQL diatur dalam .

Kueri di MS Access disimpan dan diimplementasikan menggunakan bahasa SQL. Meskipun sebagian besar kueri dapat dibuat secara grafis (kueri pola), kueri tersebut disimpan sebagai pernyataan SQL. Dalam beberapa kasus (misalnya, dalam subkueri), Anda hanya dapat menggunakan bahasa SQL. Dialek bahasa ini digunakan di MS Access dan dijelaskan di bawah. Banyak contoh kueri dalam SQL dapat ditemukan di database Northwind (file I:\Access\Sampapps\Nwind.mdb).

SQL sangat berbeda dari bahasa pemrograman tingkat tinggi lainnya.

1. SQL adalah bahasa non-prosedural. Ini hanya menyatakan apa yang perlu dilakukan, dan pelaksanaannya diserahkan kepada DBMS (sistem manajemen basis data).

2. SQL menggunakan logika tiga nilai. Seiring dengan nilai Boolean tradisional TRUE dan FALSE, NULL (UNKNOWN atau NO DATA) digunakan.

3. Operasi dilakukan pada seluruh kumpulan data, bukan pada elemen individual, seperti dalam bahasa pemrograman lainnya.

Kueri SQL terdiri dari pernyataan. Setiap instruksi dapat berisi beberapa kalimat.

Hampir tidak ada kueri yang lengkap tanpa klausa FROM, yang menjelaskan tabel atau kueri yang digunakan dan memiliki sintaksisnya

DARI tabel

Tabel - tabel/kueri yang digunakan dan hubungannya.

Jika klausa FROM berisi klausa IN (tanda kurung siku menunjukkan bahwa bagian klausa ini opsional), maka kata yang dicadangkan IN harus diikuti dengan nama database tempat tabel berada (dengan asumsi tabel tersebut tidak digunakan). dari database saat ini).

DARI Guru

Jika kueri didasarkan pada dua tabel, maka perlu untuk menunjukkan metode menggabungkannya - salah satu dari yang berikut (diasumsikan bahwa pembaca sudah familiar dengannya):

produk kartesius; GABUNG DALAM Gabungan dalam; LEFT JOIN gabung luar kiri; GABUNG KANAN gabung luar kanan.

Segera setelah metode join, Anda harus menempatkan frase ON Table1.Key = Table2.ForeignKey

Key - nama field kunci di sisi 1. ForeignKey - nama field penghubung di sisi N.

Skema Data

Gambar tersebut menunjukkan diagram gabungan tabel (skema data) yang akan digunakan untuk sebagian besar contoh di bawah ini. Misalnya, dari gambar, Anda dapat melihat bahwa untuk tabel “Penguji”, kolom “Mata Pelajaran” adalah kolom kunci (dicetak tebal), dan kolom “Guru” adalah kunci asing untuk tabel “Guru”. Gabungan antara tabel yang ditentukan bersifat internal dan memastikan integritas data. Hal ini dibuktikan dengan tanda 1 dan ∞ pada ujung garis penghubung (“Guru” adalah meja utama, dan “Penguji” adalah meja bawahan). Dengan gabungan luar, Anda dapat melihat panah pada garis gabungan tabel yang diarahkan ke tabel bawahan. Artinya, semua record akan ditampilkan di tabel utama, meskipun tidak ada record terkait di tabel bawahan. Misalnya, Anda bisa mendapatkan daftar guru dan nama mata pelajaran. Jika

Beberapa guru tidak ada dalam tabel “Penguji”, maka kolom nama mata pelajaran guru tersebut akan kosong jika digunakan LEFT JOIN.

DARI Penguji GABUNG DALAM Ujian PADA Penguji.Subjek = Ujian.Subjek

Dalam klausa FROM, sebelum kata cadangan INNER JOIN, nama tabel di sisi 1 ditunjukkan (dalam kasus kami, tabel “Penguji”). Jika terdapat lebih dari dua tabel pada klausa FROM, maka gabungan kedua tabel tersebut dapat diapit tanda kurung dan dianggap sebagai satu tabel bila digabungkan dengan tabel lain atau join. Anda dapat mendeskripsikan gabungan sejumlah tabel dengan cara ini.

DARI Guru INNER JOIN (Penguji

Ujian GABUNG DALAM

ON Penguji.Mata Pelajaran = Ujian.Mata Pelajaran)

ON Teachers.Teacher = Examiners.Teacher Seluruh skema data dijelaskan (lihat gambar).

Pernyataan SELECT memilih bidang yang diperlukan dari tabel atau kueri. Format minimal:

DARI meja;

Bidang - sekumpulan ekspresi dan nama bidang, dipisahkan dengan koma. Contoh

PILIH Kelompok, Siswa, Penilaian DARI Ujian;

Apabila nama tersebut diulang pada beberapa tabel yang tercantum pada klausa FROM, maka nama tersebut harus diawali dengan nama tabel dan tanda titik, contoh: [Penguji].Guru atau [Ujian]. [Barang]

Jika nama tabel atau field mengandung spasi atau karakter khusus lainnya, maka nama tersebut harus diapit tanda kurung siku. Dalam kasus lain, tanda kurung bersifat opsional.

DI DALAM Dalam contoh yang diberikan dalam mode tabel, kueri menghasilkan tabel

Dengan judul kolom “Kelompok”, “Siswa”, “Kelas” (dalam urutan itu). Terkadang judulnya diinginkan berbeda dari

nama bidang. Dalam hal ini, setelah nama field Anda harus menempatkan kata cadangan AS dan judul (alias), misalnya:

PILIH Grup, Siswa SEBAGAI Nama Lengkap, Nilai

DI DALAM Dalam hal ini, alih-alih judul “Siswa”, “Nama Lengkap” akan muncul. Jika

V Judulnya lebih dari satu kata, maka harus diapit tanda kurung siku.

Jika Anda perlu menampilkan semua bidang tabel, maka argumen bidang harus ditentukan dengan tanda bintang atau dalam bentuk “Tabel.*”.

PILIH Guru.* DARI Guru;

Semua 5 bidang dari tabel “Guru” dikembalikan.

Terkadang Anda tidak perlu mengeluarkan nilai suatu bidang, tetapi hasil perhitungan pada nilai bidang tersebut. Dalam hal ini, alih-alih nama bidang, Anda harus menentukan ekspresi. Aturan untuk menulis ekspresi tidak berbeda dengan aturan yang digunakan dalam perancang kueri.

PILIH Rata-Rata([Nilai]) Sebagai [Nilai Rata-Rata] DARI Ujian;

Kueri mengembalikan satu nomor dalam kolom berjudul “IPK”

– rata-rata aritmatika dari semua nilai siswa. Contoh

PILIH Hitung([Guru]) Sebagai [Jumlah guru] DARI Guru;

Di bawah judul “Jumlah Guru” akan ditempatkan jumlah baris tabel “Guru” yang kolom “Guru” tidak kosong (dan selalu tidak kosong, karena ini adalah kolom kunci). Ini adalah jumlah guru, karena setiap record mempunyai nomor guru yang berbeda dengan jumlah guru lainnya.

DI DALAM Pernyataan SELECT tepat setelah kata SELECT bisa

ada predikat yang tertulis - salah satu kata ALL, DISTINCT, DISTINCTROW, TOP N.

Predikat ALL menyebabkan semua rekaman dikembalikan, meskipun berisi duplikat.

DISTINCT melarang menampilkan catatan yang berisi duplikat di bidang yang dipilih. Menggunakan predikat DISTINCT sama dengan menyetel properti Nilai Unik di lembar properti Pembuat Kueri ke Ya.

DISTINCTROW mempengaruhi hasil hanya jika tidak semua bidang dari tabel yang dianalisis disertakan dalam kueri. Predikat diabaikan jika kueri hanya berisi satu tabel. Predikat DISTINCTROW mengecualikan entri yang diulang secara keseluruhan. Menggunakan predikat DISTINCTROW sama dengan mengatur properti Catatan Unik di lembar properti Pembuat Kueri ke Ya.

Predikat Top N digunakan untuk mengembalikan N record yang berada di awal atau akhir suatu kumpulan, diurutkan berdasarkan nilai menaik atau menurun dari bidang tersebut. Penyortiran ditentukan menggunakan klausa ORDER BY yang ditempatkan setelah klausa FROM pada alat.

PILIH instruksi.

Setelah tulisan ORDER BY, Anda harus meletakkan nama field dan kata ASC (ascending, opsional) atau DESC (descending). Pernyataan SQL berikut memungkinkan Anda mendapatkan daftar 5 siswa teratas.

Prestasi akademis

Tabel 1

Skor rata-rata

Medvedev

Vorobyov

PILIH 5 Siswa TERBAIK, [IPK] DARI Prestasi Akademik

ORDER BY[Skor rata-rata] DESC;

PILIH BERBEDA [Siswa] DARI Ujian

DIPESAN OLEH [Siswa];

Kueri mengembalikan daftar siswa, diurutkan berdasarkan nama belakang menaik.

Setelah klausa FROM, pernyataan SELECT dapat ditulis

Klausa WHERE berupa kondisi WHERE

Kondisi adalah ekspresi logika yang dievaluasi untuk setiap rekaman dalam tabel sumber.

Jika kondisinya benar, maka catatan (satu set bidang dalam daftar bidang klausa SELECT) disertakan dalam kumpulan hasil, jika salah, maka tidak disertakan.

PILIH Grup BERBEDA, Siswa

DARI Ujian

DIMANA Skor = 2;

Daftar siswa yang gagal dibuat. Contoh

DIMANA [Posisi]=”Associate Professor” ATAU [Gelar]=”PhD” DIPESAN OLEH [nama lengkap];

Daftar guru dengan gelar akademik associate professor atau gelar akademik calon ilmu teknik diterbitkan. Dalam contoh ini, tidak perlu menggunakan predikat karena isiannya dimiliki oleh guru yang berbeda dan pengulangan tidak dapat dilakukan.

Saat memilih ekspresi string, Anda dapat menggunakan operator pola Ekspresi Suka, yang memeriksa konsistensi hasil perhitungan ekspresi templat. Templat mungkin menggunakan beberapa karakter yang memiliki tujuan khusus:

* sejumlah karakter apa pun;

Karakter apa pun.

DI DALAM tanda kurung siku dapat menunjukkan rentang di mana karakter tersebut berada atau tidak.

Karakter mulai dari A hingga F inklusif. Karakter [!A-F] tidak berada dalam rentang A-F.

PILIH [Nama] DARI Guru

DIMANA [nama lengkap] SEPERTI “B*” ATAU [nama lengkap] SEPERTI “Ш*”;

DI DALAM kumpulan yang dihasilkan akan menyertakan nama belakang guru yang diawali dengan huruf D atau Ш.

X SUKA “P###”

Syarat penulisannya dipenuhi dengan baris sebanyak 5 karakter yang diawali huruf P. Harus diikuti huruf dari rentang A-F. Baris harus diakhiri dengan 3 digit.

Jika sebelum setiap eksekusi kueri perlu mengubah kondisi pemilihan, akan lebih mudah untuk menggunakan kalimat dalam bentuk:

teks PARAMETER;

Teks - daftar teks yang dipisahkan dengan koma.

Setelah setiap teks, tipe data ditunjukkan dengan dipisahkan oleh spasi. Saat menjalankan kueri dengan parameter, Anda tidak perlu membuka jendela perancang kueri dan membuat perubahan pada kondisi pemilihan. Sebaliknya, pengguna diminta untuk memasukkan kondisi yang diinginkan saat kueri sedang berjalan. Untuk setiap teks dari kalimat PARAMETER, kotak dialog muncul di layar, di mana setiap teks dari deskripsi berperan sebagai petunjuk - apa sebenarnya yang perlu dimasukkan. Anda harus memasukkan data dari tipe yang ditentukan di kotak dialog.

Jika klausa PARAMETER digunakan, klausa tersebut harus muncul sebelum semua pernyataan lainnya, termasuk pernyataan SELECT, dan diakhiri dengan titik koma.

PARAMETER [Tentukan tanggal mulai] DATETIME, [Tentukan tanggal akhir] DATETIME;

Dalam kondisi pemilihan klausa WHERE dan HAVING, Anda dapat menggunakan teks tanpa menentukan tipe data. Saat kueri dijalankan, teks diganti dengan nilai yang dimasukkan.

PARAMETER [Tentukan grup] TEKS; PILIH Siswa, Kelas

DARI Ujian

DIMANA [Grup]=[Tentukan grup] Dan [Item]=1;

Permintaan tersebut mengembalikan nilai siswa dari kelompok tertentu dalam mata pelajaran dengan kode 1.

Klausa GROUP BY dari suatu bidang menggabungkan sekelompok catatan dalam daftar bidang tertentu ke dalam satu catatan. Jika pernyataan SELECT berisi fungsi grup (misalnya, Rata-rata atau Jumlah), maka nilai record dalam kumpulan hasil akan dihitung - total grup record. Jadi, misalnya, jika dalam tabel “Ujian” Anda mengelompokkan catatan berdasarkan mata pelajaran, maka dengan menggunakan fungsi Rata-rata Anda bisa mendapatkan nilai rata-rata untuk mata pelajaran tersebut. Pengelompokan berdasarkan mata pelajaran dan kelompok akan memungkinkan Anda memperoleh skor rata-rata kelompok siswa pada mata pelajaran yang ditentukan.

GROUP BY bukanlah klausa wajib. Jika ada dalam klausa SELECT, maka muncul setelah klausa FROM.

Saat menggunakan klausa GROUP BY, semua bidang dalam daftar bidang klausa SELECT harus disertakan dalam daftar bidang klausa GROUP BY atau digunakan sebagai argumen untuk fungsi grup SQL.

Jika fungsi grup digunakan, dan klausa GROUP BY tidak ada, maka peran grup dimainkan oleh seluruh kumpulan rekaman sumber dalam kueri.

PILIH Grup, Siswa, Rata-rata([Nilai]) SEBAGAI [Skor Rata-Rata] DARI Ujian

KELOMPOK OLEH [Kelompok],[Siswa];

Untuk setiap siswa, rata-rata aritmatika dari nilainya dihitung.

Klausa opsional HAVING harus muncul setelah GROUP BY. Ini menentukan rekaman yang dikelompokkan mana yang akan disertakan dalam kumpulan hasil. Kondisi di HAVING adalah ekspresi logika reguler, sama seperti di WHERE. WHERE dan HAVING dapat hadir dalam pernyataan SELECT secara bersamaan. Dalam hal ini, WHERE memfilter rekaman sebelum dikelompokkan, dan HAVING memfilter rekaman yang dikelompokkan (grup).

PARAMETER [Masukkan nama item] TEKS; PILIH Grup, Mata Pelajaran, Rata-rata([Nilai]) SEBAGAI [Skor Rata-Rata] DARI Penguji INNER JOIN Ujian

ON Penguji.Subjek=Ujian.Subjek

WHERE [Nama Mata Pelajaran]=[Masukkan Nama Mata Pelajaran] KELOMPOK BERDASARKAN Kelompok, Siswa

MEMILIKI Rata-rata([Peringkat])>=4,5 Dan Min([Peringkat])>2;

Kueri mengembalikan daftar siswa dengan nilai rata-rata mereka. Daftar tersebut mencakup siswa yang tidak memiliki nilai gagal dan dengan nilai rata-rata minimal 4,5.

Pernyataan TRANSFORM digunakan untuk membuat kueri silang. Data yang disajikan dengan kueri silang ditampilkan dalam bentuk yang lebih ringkas dibandingkan dengan kueri pemilihan. Sintaksis:

TRANSFORM Fungsi PILIH...;

Fungsi - fungsi grup SQL yang memproses data sel tabel. Bidang - bidang atau ekspresi yang nilainya menjadi header.

kolom kami.

Kueri dalam mode tabel memiliki kolom sebanyak jumlah nilai berbeda yang diterima bidang tersebut. Misalnya, jika kolom menampilkan nama bulan, maka akan ada hingga 12 kolom, yang judulnya diurutkan dalam urutan menaik (Agustus, April...Januari). Setelah argumen field, Anda dapat menempatkan klausa IN(value_list). Nilai tetap di value_list dipisahkan dengan koma. Ketika klausa IN ada, setiap nilai bidang dibandingkan dengan nilai di value_list. Jika ada kecocokan, hasil perhitungan fungsi ditampilkan pada kolom yang sesuai. Memperbaiki header yang tidak sesuai dengan data sebenarnya dapat digunakan untuk membuat kolom tambahan.

Menggunakan klausa PIVOT sama dengan mendefinisikan properti Tajuk Kolom di lembar properti Pembuat Kueri.


Perbandingan Microsoft Access SQL dan ANSI SQL Microsoft Access SQL pada dasarnya adalah ANSI-89 (Level 1) beberapa fitur ANSI SQL tidak digunakan di Microsoft Access SQL Microsoft Access SQL menggunakan kata-kata khusus dan fitur yang tidak didukung oleh ANSI SQL In Access 2000 (MS Jet 4.0) ekstensi telah diperkenalkan yang membawa bahasa lebih dekat ke standar ANSI SQL-92 - mode ini hanya tersedia saat menggunakan Penyedia MS OLE DB untuk Jet


Sintaks Perintah SELECT (Microsoft Access) SELECT [ predikat ] ( * | table.* | [ table.] field_1 [, [ table.] field_2 [,...]]) FROM ekspresi [,...] Klausa FROM SELECT list Bidang DARI ekspresi Ekspresi adalah ekspresi yang mendefinisikan satu atau lebih tabel dari mana data diambil. Ekspresi ini bisa berupa nama tabel tunggal, nama kueri yang disimpan, atau hasil operasi INNER JOIN, LEFT JOIN, atau RIGHT JOIN. GABUNG DALAM, GABUNG KIRI, GABUNG KANAN.


Argumen pernyataan SELECT Predikat (ALL, DISTINCT, DISTINCTROW atau TOP) adalah salah satu kondisi seleksi. Predikat digunakan untuk membatasi jumlah record yang dikembalikan. Jika tidak ada, predikat defaultnya adalah SEMUA (memilih semua catatan yang cocok dengan kondisi yang ditentukan dalam pernyataan SQL DISTINCT - tidak termasuk catatan yang berisi nilai duplikat di bidang yang dipilih). DISTINCTROW - Menghilangkan data berdasarkan seluruh catatan duplikat, bukan bidang duplikat individual. Predikat DISTINCTROW diabaikan jika kueri hanya berisi satu tabel atau semua bidang dari semua tabel. TOP n - Mengembalikan jumlah rekaman tertentu yang berada di awal atau akhir rentang yang dijelaskan menggunakan klausa ORDER BY. PILIH ]] DARI tabel 5 departemen yang paling banyak: PILIH 5 karyawan TERATAS.[Kode departemen], Hitung(nama lengkap karyawan) SEBAGAI jumlah_karyawan DARI karyawan KELOMPOK OLEH karyawan.[kode departemen] ORDER BY Hitungan(nama karyawan.lengkap) DESK;


Argumen pernyataan SELECT Tabel - nama tabel dari mana catatan harus dipilih. DENGAN OPSI OWNERACCESS - digunakan dalam lingkungan multi-pengguna dengan kelompok kerja yang aman, untuk memberikan pengguna yang bekerja dengan izin permintaan yang sesuai dengan izin pemilik permintaan. field_1, field_2 - nama bidang dari mana data harus dipilih. Jika Anda menyertakan beberapa bidang, bidang tersebut akan diambil sesuai urutan yang ditentukan. Alias_1, Alias_2 - nama yang akan menjadi header kolom, bukan nama kolom asli dalam tabel. Ekspresi - nama satu atau lebih tabel yang berisi data yang dipilih. Database Eksternal - nama database yang berisi tabel yang ditentukan oleh argumen ekspresi, jika tabel tersebut tidak ada dalam database saat ini. PILIH nama lengkap karyawan, [gaji]*0,5 SEBAGAI Bonus DARI karyawan; PILIH Rata-rata(gaji karyawan) SEBAGAI Gaji_Rata-rata DARI karyawan;


Pemrosesan gabungan beberapa tabel SELECT karyawan.Nama, subjek.[nama pendek subjek] FROM karyawan INNER JOIN (subjek INNER JOIN [kepemilikan benda] ON subjek.[kode subjek] = [kepemilikan benda].[kode disiplin] ) ON Employee.Code = [kepemilikan barang].[kode karyawan];




Antara...Dan ekspresi 1 ANTARA ekspresi 2 DAN ekspresi 3 (di Microsoft Access SQL, ekspresi 2 bisa lebih besar dari ekspresi 3, tapi tidak di ANSI SQL). PILIH nama lengkap karyawan, gaji karyawan DARI karyawan DI MANA (((gaji karyawan) Antara 1000 dan 2000)); Pertanyaan: PILIH nama lengkap karyawan, gaji karyawan DARI karyawan DI MANA (((gaji karyawan) Antara 2000 dan 1000)); tidak menghasilkan kesalahan dan memberikan jawaban yang sama SELECT Employee.full name, Employee.salary FROM Employee WHERE (((employee.salary) 15000)); PILIH nama lengkap pegawai, gaji pegawai DARI pegawai DIMANA (((gaji pegawai) Bukan Antara 1000 Dan 2000));


Karakter Pola Berbagai karakter pola digunakan dengan predikat Suka. MS Access SQL ANSI karakter pola SQL satu karakter? _ (garis bawah) sekelompok karakter * % karakter tunggal termasuk dalam daftar_karakter [daftar_karakter] karakter tunggal yang hilang tidak termasuk dalam daftar_karakter [! character_list] hilang Dua opsi terakhir hanya Access. Access 2000 dalam mode ANSI SQL-92 memungkinkan penggunaan wildcard ANSI. Anda tidak dapat mencampur karakter dalam satu permintaan SELECT Employee.full name FROM Employee WHERE (((employee.full name) Like "D*"));


Klausul GROUP BY SELECT daftar Fields FROM tabel WHERE Kondisi seleksi dimana Field yang dikelompokkan adalah nama field (maksimal 10) yang digunakan untuk mengelompokkan record. Urutan nama bidang dalam argumen Bidang yang Dikelompokkan menentukan tingkat pengelompokan untuk masing-masing bidang tersebut. Gunakan klausa WHERE untuk mengecualikan rekaman dari pengelompokan, dan klausa HAVING untuk menerapkan filter pada rekaman setelah pengelompokan. HAVING Saat menggunakan klausa GROUP BY, semua bidang dalam daftar bidang pernyataan SELECT harus disertakan dalam klausa GROUP BY atau digunakan sebagai argumen pada fungsi agregasi SQL. Departemen dengan lebih dari 5 karyawan: PILIH rekan kerja[Kode departemen], Hitung(nama lengkap rekan kerja) SEBAGAI [Jumlah_karyawan] DARI rekan kerja KELOMPOK BERDASARkan rekan kerja[kode departemen] MEMILIKI (((Hitungan(rekan- nama lengkap pekerja))>5 )); 5));">




Kueri bersarang. Predikat Ada. PILIH perusahaan karyawan, Hitung(karyawan karyawan) AS number_certificate_employee FROM karyawan WHERE (((Ada (PILIH perusahaan karyawan BERBEDA, karyawan karyawan FROM karyawan INNER JOIN contoh ON karyawan karyawan = karyawan karyawan))Salah)) KELOMPOK BERDASARkan perusahaan rekan kerja; Salah)) KELOMPOK BERDASARKAN perusahaan yang dimiliki bersama;"> Salah)) KELOMPOK BERDASARKAN perusahaan yang dimiliki bersama;"> Salah)) KELOMPOK BERDASARKAN perusahaan yang dimiliki bersama;" title="Permintaan bersarang. Predikat Ada. PILIH co -perusahaan milik, Hitung(kolaborator) SEBAGAI nomor_sertifikat_kolaborator DARI kolaborator WHERE (((Ada (PILIH kolaborator BERBEDA, kolaborator DARI kolaborator INNER JOIN instance ON kolaborator = kolaborator instance))False)) KELOMPOK OLEH perusahaan kolaborator;"> title="Kueri bersarang. Predikat Ada. PILIH perusahaan karyawan, Hitung(karyawan karyawan) AS number_certificate_employee FROM karyawan WHERE (((Ada (PILIH perusahaan karyawan BERBEDA, karyawan karyawan FROM karyawan INNER JOIN contoh ON karyawan karyawan = karyawan karyawan))Salah)) KELOMPOK BERDASARkan perusahaan rekan kerja;"> !}








Membuat subkueri menggunakan Pembuat Kueri QBE Jika Anda menggunakan subkueri untuk menentukan kondisi suatu bidang, masukkan pernyataan SELECT di sel baris Kondisi Pilihan di kolom bidang tersebut. Pernyataan SELECT harus diapit tanda kurung.








Menghapus entri. Kueri SQL (dihasilkan) DELETE DISTINCTROW student.full name FROM student WHERE (((student.full name)="Burlak G.N."));


Pernyataan DELETE Permintaan hapus menghapus seluruh catatan, bukan hanya isi bidang tertentu. Untuk menghapus data pada bidang tertentu, buat kueri pembaruan catatan yang menggantikan nilai yang ada dengan nilai Null. Permintaan penghapusan tanpa kondisi pencarian yang ditentukan akan menghapus semua catatan dari tabel. Berbeda dengan perintah DROP, struktur tabel dan semua properti dipertahankan


Menghapus entri. Kueri SQL Kueri: HAPUS * DARI siswa WHERE siswa.Nama lengkap="Burlak G.N."; memberikan hasil serupa.



















35





41



Access DBMS menggunakan dua tipe kueri: QBE – kueri berdasarkan sampel dan SQL(Bahasa Kueri Terstruktur) - bahasa kueri terstruktur. Contoh permintaan dibuat dengan mengisi formulir permintaan khusus di jendela “Pembuat Kueri”. SQL – kueri dibuat oleh pemrogram dari rangkaian SQL – instruksi. SQL biasanya dihasilkan oleh pemrogram pada formulir kueri, yang dibuka dengan perintah "Pembangun Kueri" pada tab "Pembuatan" dan "Mode SQL" dipilih dari menu Tampilan. Bahasa SQL dirancang untuk bekerja dengan data, mis. untuk membuat, memodifikasi dan mengelola data dalam database relasional.

Perlu dicatat bahwa ada beberapa mode kueri SQL (kueri mode ANSI-89 SQL dan ANSI-92 SQL) yang mematuhi standar ANSI-89 SQL dan ANSI-92 SQL.

Instruksi berisi deskripsi kumpulan data dalam SQL. pernyataan SQL terdiri dari klausa (SELECT, FROM, WHERE, dll). Penawaran dalam bahasa SQL terdiri dari istilah (operator atau perintah, pengenal, konstanta, dll). Pernyataan dimulai dengan pernyataan (salah satu perintah SELECT, CREATE, INSERT, UPDATE, DELETE, dll) dan diakhiri dengan titik koma. Pernyataan SQL dasar: SELECT, FROM dan WHERE.

Misalnya, pernyataan SQL:
PILIH Siswa.Kode Siswa
DARI Siswa;
terdiri dari klausa “SELECT Students.StudentCode” dan klausa “FROM Students”.

Klausa SELECT berisi operator PILIH dan pengidentifikasi"Siswa.Kode Siswa". Di sini, nama lengkap kolom "StudentCode" diawali dengan nama tabel "Students" di database. PILIH - menentukan bidang yang berisi data yang diperlukan. Klausa FROM terdiri dari klausa FROM dan pengenal “Siswa”. FROM - mendefinisikan tabel yang berisi bidang yang ditentukan dalam klausa SELECT.

Perlu dicatat bahwa saat membuat kueri dalam SQL, Anda harus mempertimbangkan sintaksisnya. Meskipun sintaks bahasa SQL didasarkan pada sintaks bahasa Inggris, sintaks versi bahasa SQL mungkin berbeda untuk DBMS yang berbeda.

Ada beberapa jenis kueri: memilih, memperbarui, menambah dan menghapus catatan, kueri silang, membuat dan menghapus tabel, menggabungkan tabel, dll. Yang paling umum adalah permintaan sampel. Kueri seleksi digunakan untuk memilih informasi yang terdapat dalam tabel yang dibutuhkan pengguna. Mereka dibuat hanya untuk tabel terkait.

Untuk melihat kueri kueri SQL di DBMS Access 2003 atau 2007, Anda perlu menjalankan perintah SQL View/Mode di jendela aktif untuk merancang kueri sampel (Gbr. 1).


Beras. 1.

Mari kita ambil pernyataan SQL (SELECT) untuk mengambil sampel data dari database Access 2003 sesuai dengan kriteria kinerja siswa "Kelas=5" (Gbr. 2).



Beras. 2.

Sebagai berikut dari pernyataan SELECT (Gbr. 1), ini menjelaskan kumpulan data dalam bahasa SQL: SELECT - mendefinisikan nama bidang yang diawali dengan nama tabel yang berisi data; FROM - mendefinisikan tabel dan hubungannya melalui bidang kunci tabel (konstruksi INNER JOIN ... ON digunakan untuk ini), yang menjadi dasar pemilihan data; WHREME - mendefinisikan kondisi untuk memilih bidang; ORDER BY - menentukan cara mengurutkan dalam urutan menaik (secara default, urutan menaik dilakukan) nilai bidang "Nama Belakang" pada tabel "Siswa".

Berikut petunjuk pengambilan data dari database, bahasa SQL menjelaskan apa yang perlu diperoleh dari database, sedangkan eksekusi dipercayakan kepada DBMS, karena bahasa SQL tidak memiliki sarana sendiri untuk mengontrol eksekusi program.

  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat