Komputer, Jenis file
SQL yang berbeda: deskripsi, contoh, sifat
Seringkali ketika Anda menggunakan SQL untuk mengambil data dari tabel, pengguna menerima data berlebihan adalah adanya sebuah benar-benar identik duplikasi baris. Untuk menghindari situasi ini, menggunakan SQL argumen yang berbeda dalam kalimat Pilih. Artikel ini akan membahas contoh penggunaan argumen ini, serta situasi di mana aplikasi harus ditinggalkan oleh argumen.
Sebelum kita melanjutkan untuk mempertimbangkan contoh spesifik, membuat database diperlukan beberapa tabel.
tabel persiapan
Bayangkan bahwa kita memiliki menyimpan informasi database yang tentang wallpaper disajikan dalam dua tabel. Tabel ini Aobai (wallpaper) dengan bidang id (identifier unik), dari jenis (jenis wallpaper -. Kertas, vinyl, dll), warna (color), struct (struktur) dan harga (harga). Dan meja Ostatki (residu) dengan bidang id_oboi (referensi ke pengenal unik pada tabel Aobai) dan jumlah (jumlah gulungan dalam saham).
Isi tabel data. Dalam tabel menambahkan wallpaper 9 catatan:
Aobai | ||||
id | jenis | warna | struct | harga |
1 | kertas | warnawarni | timbul | 56.9 |
2 | kertas double-layered | krem | halus | 114,8 |
3 | vinyl | jeruk | timbul | 504 |
4 | bulu domba | krem | timbul | 1020,9 |
5 | kertas double-layered | krem | halus | 150.6 |
6 | kertas | warnawarni | halus | 95.4 |
7 | vinyl | coklat | halus | 372 |
8 | bulu domba | putih | timbul | 980,1 |
9 | kain | berwarna merah muda | halus | 1166,5 |
Tabel dengan sisa-sisa - dan sembilan catatan:
Ostatki | |
id_oboi | menghitung |
1 | 8 |
2 | 12 |
3 | 24 |
4 | 9 |
5 | 16 |
6 | 7 |
7 | 24 |
8 | 32 |
9 | 11 |
Kami melanjutkan ke deskripsi urutan yang berbeda di SQL.
Tempatkan berbeda dalam Pilih klausa
Argumen yang berbeda harus ditempatkan segera setelah Pilih kata kunci di query. Dia diterapkan untuk semua kolom yang ditentukan dalam kalimat Pilih, karena akan dikeluarkan dari hasil query akhir string benar-benar identik. Jadi, sekali sudah cukup untuk menentukan saat menulis SQL «pilih berbeda» permintaan. Pengecualian adalah penggunaan fungsi agregat dalam berbeda yang melihat sedikit kemudian.
Harus diingat bahwa sebagian besar database dan tidak mengenali jenis Anda permintaan:
SELECT Ostatki.Count yang berbeda, Aobai yang berbeda. * DARI Aobai INNER JOIN Ostatki ON Oboi.id = Ostatki.id_oboi |
Ada tidak dianggap argumen beberapa kali atau sekali ditentukan, tapi sebelum kedua, ketiga atau kolom lain yang dipilih. Anda akan mendapatkan error mengacu pada kesalahan dalam sintaks.
Aplikasi query yang berbeda dalam standar
Hal ini jelas bahwa dengan struktur tabel bangunan yang tepat dan mengisi mereka dalam satu meja dikecualikan situasi ketika ada string benar-benar identik. Oleh karena itu, eksekusi query «Pilih yang berbeda *» dengan sampel dari satu meja tidak praktis.
Pertimbangkan situasi ketika kita perlu mengetahui jenis apa yang kita miliki wallpaper, hanya untuk kenyamanan, untuk mengurutkan berdasarkan jenis:
SELECT Oboi.type DARI Aobai order by jenis |
Dan mendapatkan hasil:
jenis |
kertas |
kertas |
kertas double-layered |
kertas double-layered |
vinyl |
vinyl |
kain |
bulu domba |
bulu domba |
Seperti yang terlihat di meja ada duplikat baris. Jika kita menambahkan proposal Pilih yang berbeda:
SELECT Oboi.type yang berbeda DARI Aobai order by jenis |
kita mendapatkan hasil tanpa pengulangan:
jenis |
kertas |
kertas double-layered |
vinyl |
kain |
bulu domba |
Dengan demikian, jika benar memasukkan data dalam tabel, maka segera setelah panggilan telepon atau permintaan dari pembeli kita bisa menjawab bahwa cairan wallpaper, fiberglass dan akrilik wallpaper yang tersedia di toko tidak. Mengingat bahwa berbagai toko biasanya tidak terbatas pada seratus wallpaper, melihat daftar jenis non-unik akan cukup padat karya.
Penerapan fungsi agregat yang berbeda dalam
Argumen yang berbeda SQL dapat digunakan dengan fungsi agregat. Tapi untuk Min dan Max penerapannya tidak akan berpengaruh, tapi ketika menghitung jumlah atau nilai rata-rata jarang situasi di mana tidak ada harus memperhitungkan pengulangan.
Misalkan kita ingin memeriksa kapasitas gudang kami dan mengirim permintaan ini, menghitung jumlah gulungan di saham:
SELECT sum (Ostatki.count) DARI Ostatki |
Permintaan akan memberikan jawaban 143. Namun, jika kita akan berubah menjadi:
sum SELECT (Ostatki.count berbeda) DARI Ostatki |
kita memperoleh total 119, sebagai wallpaper untuk bagian nomor 3 dan 7 di saham dalam jumlah yang sama. Namun, jelas bahwa jawabannya adalah salah.
Paling sering digunakan dalam SQL fungsi yang berbeda Count. Jadi, kita dapat dengan mudah mengetahui berapa banyak jenis yang unik dari wallpaper, kita memiliki:
SELECT count (Oboi.type berbeda) DARI Aobai |
Dan mendapatkan hasil dari 5 - kertas biasa dan double-layer vinyl dan non-kain tenun. Tentunya semua melihat iklan seperti: "Hanya kami memiliki lebih dari 20 jenis wallpaper," oleh yang berarti bahwa toko ini tidak hanya beberapa lusin gulungan dan berbagai jenis yang modern wallpaper.
Sangat menarik bahwa dalam query yang sama, Anda dapat menentukan beberapa fungsi seperti Hitungan atribut DISTINCT, dan tanpa itu. Itulah satu-satunya situasi di mana yang berbeda di Select'e bisa hadir beberapa kali.
Ketika meninggalkan penggunaan argumen
Dari penggunaan SQL argumen yang berbeda harus ditinggalkan di salah satu dari dua kasus:
- Anda melakukan pilihan tabel dan yakin dalam nilai unik setiap. Dalam hal ini, penggunaan argumen adalah tidak pantas, karena merupakan beban tambahan pada server atau client (tergantung pada jenis DBMS).
- Apakah Anda takut kehilangan data Anda. Mari kita jelaskan.
Bos Misalkan meminta Anda untuk daftar wallpaper yang Anda miliki, dengan indikasi hanya dua kolom - jenis dan warna. Karena kebiasaan, Anda memberikan argumen yang berbeda:
SELECT Oboi.type berbeda, Oboi.color DARI Aobai ORDER BY Oboi.type |
Dan - kehilangan beberapa data:
jenis | warna |
kertas | warnawarni |
kertas double-layered | krem |
vinyl | coklat |
vinyl | jeruk |
kain | berwarna merah muda |
bulu domba | krem |
bulu domba | putih |
Ini mungkin memberikan kesan bahwa kertas wallpaper (konvensional dan dual-layer) kita hanya satu pikiran, pada kenyataannya, bahkan dalam meja kecil kami dua artikel (hasil tanpa berbeda):
jenis | warna |
kertas | warnawarni |
kertas | warnawarni |
kertas double-layered | krem |
kertas double-layered | krem |
vinyl | coklat |
vinyl | jeruk |
kain | berwarna merah muda |
bulu domba | putih |
bulu domba | krem |
Oleh karena itu, seperti dalam menulis permintaan dengan argumen kebutuhan yang berbeda untuk berhati-hati dan kompeten untuk memutuskan penerapannya, tergantung pada tugas.
alternatif yang berbeda
Bertentangan dengan argumen yang berbeda - Semua argumen. Dalam penerapannya duplikasi baris disimpan. Tetapi sebagai database default dan menemukan bahwa perlu untuk menampilkan semua nilai-nilai, argumen Semua - agak kualifikasi daripada fungsi argumen yang sebenarnya.
Similar articles
Trending Now