KomputerJenis 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:

  1. 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).
  2. 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. Kami berharap bahwa Anda sekarang mengerti bahwa berbeda (SQL) digunakan. Deskripsi memberikan informasi lengkap tentang kelayakan menggunakan argumen ini dalam memecahkan masalah yang berbeda. Setelah semua, ternyata, bahkan seperti argumen yang sederhana dalam penerapannya menyembunyikan kemungkinan yang sangat nyata kehilangan beberapa data dan menampilkan informasi yang tidak akurat.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 id.birmiss.com. Theme powered by WordPress.