Komputer, Pemrograman
Antara SQL: contoh, deskripsi
Saat bekerja dengan DBMS relasional, dimana data disimpan dalam bentuk tabel, pengguna sering menghadapi tugas pengambilan sampel nilai yang masuk (tidak termasuk) dalam kisaran tertentu. Bahasa SQL memungkinkan Anda untuk menentukan himpunan bahwa nilai tidak boleh (seharusnya) dimiliki oleh varian yang berbeda - pernyataan In, pernyataan Like, kombinasi kondisi lebih - kurang, dan juga operator SQL Antara. Deskripsi dan contoh dalam artikel ini akan dikhususkan untuk pilihan terakhir.
Operator "Antara" di SQL: sintaks, kendala
Operator antara SQL secara harfiah diterjemahkan "antara". Penggunaannya memungkinkan Anda untuk mengatur pembatasan "Dari dan ke" ke bidang tertentu, dan jika nilai berikutnya jatuh ke kisaran, predikatnya akan "Benar" dan nilainya akan berakhir pada pilihan akhir.
Sintaks operator sangat sederhana:
Pilih * Dari tabel t1 Dimana t1.n antara 0 dan 7 |
Seperti yang dapat Anda lihat, setelah kata kunci antara itu diperlukan untuk menentukan nilai batas bawah kisaran, maka DAN dan nilai batas atas.
Mari kita daftar jenis data operator SQL dapat bekerja dengan:
- Dengan angka - bilangan bulat dan pecahan.
- Dengan tanggal
- Dengan teks.
Operator yang diberikan antara SQL memiliki fitur tertentu. Mari berkenalan dengan mereka:
- Saat bekerja dengan angka dan tanggal, nilai dari batasan "Dari dan ke" disertakan dalam sampel.
- Nilai batas bawah kisaran harus kurang dari nilai batas atas, jika tidak maka tidak akan ada keluaran, karena kondisinya secara logika tidak benar. Perhatian khusus harus dilakukan saat variabel dimasukkan dalam kondisi dan bukan nilai spesifik.
Saat bekerja dengan teks, nilai batas atas rentang tidak akan disertakan dalam pemilihan, kecuali jika ditentukan dengan akurasi yang ekstrem. Pada bagian berikut, kami akan mempertimbangkan fitur ini secara lebih rinci.
Pemilihan nomor dan tanggal dalam kisaran tertentu
Siapkan tabel dengan data tentang manajer yang bekerja dalam organisasi. Tabel akan memiliki struktur sebagai berikut:
Nama lapangan | Tipe data | Deskripsi |
Kode | Counter | ID karyawan unik |
Nama terakhir | Teks | Nama karyawan |
Nama | Teks | Nama karyawan |
Nama tengah | Teks | Patronim dari karyawan |
Seks | Teks | Seks karyawan (M / F) |
Penunjukan_Date | Tanggal / Waktu | Tanggal penerimaan karyawan untuk bekerja |
Jumlah anak | Numerik | Jumlah anak dari karyawan |
Isi tabel dengan data sebagai berikut:
Kode | Nama terakhir | Nama | Nama tengah | Seks | Penunjukan_Date | Jumlah anak |
1 | Alexandrova | Irina | Nikolaevna | F | 05/01/2014 | 1 |
2 | Borovoy | Andrew | Stepanovich | M | 21/09/2013 | 0 |
3 | Vinogradov | Sergey | Pavlovich | M | 06/15/1998 | 1 |
4 | Shumilin | Alexander | Borisovich | M | 25.12.2004 | 2 |
5 | Vishnyakov | Leonid | Alexandrovich | M | 09.10.2007 | 0 |
6 | Tropnikov | Vasily | Sergeevich | M | 01/12/2016 | 3 |
7 | Mutiara | Nikita | Vasilevich | M | 01/11/2017 | 1 |
8th | Avdeev | Nika | Konstantinovna | F | 31.03.2001 | 2 |
9th | Yakovlev | Leonid | Nikolayevich | M | 16.02.2009 | 0 |
Mari buat kueri sql antara, yang akan membantu kita memilih semua karyawan yang memiliki 2 atau 3 anak:
PILIH Manajer. * DARI Manajer MANA Manajer. Jumlah anak antara 2 dan 3 orang |
Hasilnya akan tiga baris dengan data karyawan dengan nama Shumilin, Tropnikov dan Avdeeva.
Sekarang kita akan memilih karyawan yang diterima mulai 1 Januari 2005 sampai 31 Desember 2016. Perlu dicatat bahwa berbeda DBMS berbeda memungkinkan Anda untuk merekam dalam hal tanggal. Dalam kebanyakan kasus, tanggal tersebut secara paksa mengarah ke formulir hari-bulan-tahun (atau lebih mudah) dan ditulis dalam tanda kutip tunggal atau ganda. Di database MS Access, tanggal ditutupi tanda "#". Kami akan menjalankan contoh hanya atas dasar:
PILIH Manajer. *, Manajer. Penerimaan-penerimaan DARI Manajer MANA Manajer. Date_receive Antara # 1/1/2005 # Dan # 31/12/2016 # |
Hasilnya akan lima karyawan, dipekerjakan pada periode yang ditentukan, inklusif.
Selanjutnya, mari kita lihat bagaimana SQL bekerja dengan string.
Bekerja di antara garis
Tugas yang sering dilakukan yang harus ditangani saat bekerja dengan nama karyawan adalah kebutuhan untuk memilih hanya mereka yang namanya dimulai dengan huruf tertentu. Kami juga akan mencoba memenuhi permintaan dan memilih karyawan yang namanya dimulai dengan nama keluarga dari A sampai B:
PILIH Manajer. * DARI Manajer MANA Manajer Nama antara "A" dan "B" ORDER BY 2 |
Hasilnya adalah sebagai berikut:
Kode | Nama terakhir | Nama | Nama tengah | Seks | Penunjukan_Date | Jumlah anak |
8th | Avdeev | Nika | Konstantinovna | F | 31.03.2001 | 2 |
1 | Alexandrova | Irina | Nikolaevna | F | 05/01/2014 | 1 |
2 | Borovoy | Andrew | Stepanovich | M | 21/09/2013 | 0 |
Seperti yang bisa Anda lihat, dua karyawan yang memiliki nama keluarga dengan huruf B tidak termasuk dalam daftar. Apa alasannya? Intinya adalah bagaimana tepatnya operator membandingkan garis-garis panjang yang tidak sama. Garis "B" lebih pendek dari garis "Vinohrad" dan dilengkapi dengan spasi. Tapi saat memilah-milah menurut abjad, ruang akan menjadi simbol utama, dan namanya tidak akan disertakan dalam sampel. DBMS yang berbeda menawarkan solusi yang berbeda untuk masalah ini, namun seringkali paling mudah untuk menunjukkan huruf alfabet berikut dalam kisaran:
PILIH Manajer. * DARI Manajer MANA Manajer Nama antara "A" dan "G" ORDER BY 2 |
Saat query dieksekusi, hasilnya akan benar-benar memuaskan kita.
Nuansa ini hanya ada saat bekerja dengan data karakter, tapi ini menunjukkan bahwa ketika bekerja dengan operator sederhana seperti antara keduanya, seseorang harus berhati-hati.
Similar articles
Trending Now