ᲙომპიუტერებიᲤაილის ტიპები

SQL მკაფიო: აღწერა, მაგალითები, თვისებები

ხშირად, როდესაც თქვენ გამოიყენოთ SQL ახლიდან მონაცემების მაგიდები, მომხმარებელი მიიღებს გადაჭარბებული მონაცემების არსებობა აბსოლუტურად იდენტური დუბლიკატი რიგები. თავიდან აცილების მიზნით, ამ სიტუაციაში, გამოიყენოთ SQL მკაფიო არგუმენტი სასჯელი არჩევა. ამ სტატიაში განვიხილავთ მაგალითები გამოყენების ეს არგუმენტი, ისევე როგორც სიტუაციაში, რომელიც განაცხადი უნდა მიტოვებული არგუმენტი.

სანამ გაგრძელება განიხილოს კონკრეტული მაგალითები, მონაცემთა ბაზის შექმნა საჭირო რამდენიმე მაგიდები.

მომზადება მაგიდა

წარმოიდგინეთ, რომ ჩვენ გვაქვს ბაზაში ინახავს ინფორმაციას ფონი წარმოდგენილია ორი მაგიდები. ეს მაგიდა oboi (ფონი) ერთად id სფეროებში (უნიკალური იდენტიფიკატორი), ტიპის (type ფონი -. ქაღალდის, ვინილის, და ა.შ.), ფერი (ფერი), struct (სტრუქტურა) და ფასი (ღირებულება). და მაგიდის Ostatki (ნარჩენები) ერთად id_oboi სფეროებში (მინიშნება უნიკალური იდენტიფიკატორი მაგიდასთან oboi) და რაოდენობა (რიცხვი რულონები გაყიდვაში).

შეავსეთ მონაცემები მაგიდასთან. In მაგიდაზე ფონი 9 ჩანაწერი:

oboi

id

ტიპი

ფერი

struct

ფასი

1

ქაღალდი

მრავალფერიანი

რელიეფური

56.9

2

ქაღალდის ორმაგი ფენიანი

beige

გლუვი

114,8

3

ვინილის

Orange

რელიეფური

504

4

Fleece

beige

რელიეფური

1020,9

5

ქაღალდის ორმაგი ფენიანი

beige

გლუვი

150.6

6

ქაღალდი

მრავალფერიანი

გლუვი

95.4

7

ვინილის

brown

გლუვი

372

8

Fleece

თეთრი

რელიეფური

980,1

9

ქსოვილი

ვარდისფერი

გლუვი

1166,5

მაგიდასთან რჩება - ცხრა ჩანაწერები:

Ostatki

id_oboi

იმედი

1

8

2

12

3

24

4

9

5

16

6

7

7

24

8

32

9

11

ვაგრძელებთ აღწერა მკაფიო წესრიგი SQL.

ადგილი მკაფიო აირჩიეთ პუნქტი

მკაფიო არგუმენტი უნდა განთავსდეს მაშინვე აირჩიეთ სიტყვით შეკითხვებს. მან მიმართა ყველა სვეტის განსაზღვრული სასჯელის აირჩიეთ, იმიტომ, რომ ის გაირიცხება საბოლოო შეკითხვაზე შედეგი აბსოლუტურად იდენტურია strings. ამდენად, ერთხელ არის საკმარისი დააკონკრეტა, როდესაც წერილობით SQL «აირჩიეთ მკაფიო» მოთხოვნით. გამონაკლისია გამოყენების მკაფიო შიგნით საერთო ფუნქციები რომ შევხედოთ ცოტა მოგვიანებით.

უნდა გვახსოვდეს, რომ ყველაზე მონაცემთა ბაზაში და არ აღიარებს თქვენი მოთხოვნის ტიპის:

SELECT მკაფიო Ostatki.Count, მკაფიო oboi *.

FROM oboi

INNER JOIN Ostatki ON Oboi.id = Ostatki.id_oboi

არ იყო განხილული არგუმენტი რამდენჯერმე, ან კიდევ მითითებული, მაგრამ სანამ მეორე, მესამე ან სხვა შერჩეული სვეტი. თქვენ მიიღებთ შეცდომა გულისხმობდა შეცდომა სინტაქსი.

განაცხადის მკაფიო შეკითხვებს სტანდარტული

აშკარაა, რომ სათანადო შენობის სტრუქტურა მაგიდები და შევსების მათ ერთ მაგიდასთან გამორიცხული სიტუაცია, როცა აბსოლუტურად იდენტურია strings. აქედან გამომდინარე, შეკითხვის შესრულების «აირჩიეთ მკაფიო *» ნიმუში ერთ მაგიდასთან არაპრაქტიკულია.

წარმოიდგინეთ სიტუაცია, როდესაც ჩვენ უნდა იცოდეს, რა ტიპის ჩვენ ფონი, მხოლოდ მოხერხებულობის, დასალაგებლად ტიპი:

SELECT Oboi.type

FROM oboi რათა ტიპის

და მიიღეთ შედეგები:

ტიპი

ქაღალდი

ქაღალდი

ქაღალდის ორმაგი ფენიანი

ქაღალდის ორმაგი ფენიანი

ვინილის

ვინილის

ქსოვილი

Fleece

Fleece

როგორც ჩანს მაგიდაზე არსებობს ერთნაირი რიგები. თუ დავუმატებთ წინადადება აირჩიეთ მკაფიო:

SELECT მკაფიო Oboi.type

FROM oboi რათა ტიპის

მივიღებთ შედეგი გარეშე განმეორება:

ტიპი

ქაღალდი

ქაღალდის ორმაგი ფენიანი

ვინილის

ქსოვილი

Fleece

ასე რომ, თუ სწორად შეიყვანეთ მონაცემები მაგიდა, მაშინ დაუყოვნებლივ სატელეფონო ზარი ან თხოვნით მყიდველებს ჩვენ შეგვიძლია პასუხი, რომ თხევადი შპალერი, fiberglass და აკრილის ფონი ხელმისაწვდომია მაღაზიაში არ არიან. იმის გათვალისწინებით, რომ სპექტრი მაღაზიები, როგორც წესი, არ შემოიფარგლება ასი ფონი, სიის სანახავად არასამთავრობო უნიკალური სახის იქნება საკმაოდ შრომატევადია.

გამოყენების მკაფიო საერთო ფუნქციების

SQL მკაფიო არგუმენტი შეიძლება გამოყენებულ იქნას ნებისმიერი საერთო ფუნქცია. მაგრამ, მინ და მაქს მისი გამოყენების გავლენას არ მოახდენს, მაგრამ როდესაც საანგარიშო თანხა ან საშუალო ღირებულება იშვიათად სიტუაცია, სადაც არავინ უნდა გაითვალისწინოს გამეორებას.

დავუშვათ, რომ ჩვენ გვინდა შევამოწმოთ ტევადობის საწყობი და გაგზავნის ამ მოთხოვნით, computes საერთო რაოდენობის coils საწყობში:

SELECT თანხა (Ostatki.count)

FROM Ostatki

მოთხოვნა მისცემს პასუხს 143. თუმცა, თუ ჩვენ შეიცვლება:

SELECT თანხა (მკაფიო Ostatki.count)

FROM Ostatki

ვიღებთ სულ 119, როგორც ფონი ნაწილი ნომრები 3 და 7 საფონდო იმავე ოდენობით. თუმცა, აშკარაა, რომ პასუხი არასწორია.

ყველაზე ხშირად გამოიყენება SQL მკაფიო ფუნქცია Count. ასე რომ, ჩვენ შეგვიძლია ადვილად გაირკვეს, თუ რამდენი უნიკალური სახის ფონი, ჩვენ გვაქვს:

SELECT რაოდენობა (მკაფიო Oboi.type)

FROM oboi

და მიიღეთ შედეგად 5 - ჩვეულებრივი ქაღალდი და ორმაგი ფენის ვინილის და არასამთავრობო ნაქსოვი ქსოვილისაგან. რა თქმა უნდა, ყველა ჩანს რეკლამას, როგორიცაა: "მხოლოდ ჩვენ გვაქვს 20-ზე მეტი სხვადასხვა სახის ფონი," მიერ, რომელიც გულისხმობს, რომ ამ მაღაზიაში არ არის მხოლოდ რამდენიმე ათეული რულონები და სხვადასხვა სახის ფონი თანამედროვე ტიპის.

საინტერესოა, რომ იმავე შეკითხვაზე, თქვენ შეგიძლიათ მიუთითოთ მრავალი ფუნქციები, როგორიცაა Count ანიჭებენ მკაფიო, და მის გარეშე. ეს არის ერთადერთი სიტუაცია, სადაც მკაფიო Select'e შეიძლება იყოს წარმოდგენილი რამდენჯერმე.

როდესაც უარი თქვას გამოყენების არგუმენტი

გამოყენება SQL მკაფიო არგუმენტი უნდა იყოს მიტოვებული ერთ ორ შემთხვევაში:

  1. თქვენ შეასრულოს შერჩევა მაგიდები და დარწმუნებულნი ვართ, ამ უნიკალური ღირებულება თითოეული. ამ შემთხვევაში, გამოყენების არგუმენტი მიუღებელია, რადგან ეს არის დამატებით დატვირთვას სერვერზე, ან კლიენტს (დამოკიდებულია ტიპის DBMS).
  2. გეშინია დაკარგვის მონაცემები. მოდით ახსნას.

დავუშვათ, ბოსი მოგთხოვთ ჩამოვთვალოთ ფონი, რომ თქვენ გაქვთ, მითითებით მხოლოდ ორი სვეტი - ტიპის და ფერის. Out of ჩვევა, თქვენ არგუმენტი მკაფიო:

SELECT მკაფიო Oboi.type, Oboi.color

FROM oboi

ORDER BY Oboi.type

და - დაკარგოს ზოგიერთი მონაცემები:

ტიპი

ფერი

ქაღალდი

მრავალფერიანი

ქაღალდის ორმაგი ფენიანი

beige

ვინილის

brown

ვინილის

Orange

ქსოვილი

ვარდისფერი

Fleece

beige

Fleece

თეთრი

ეს შეიძლება მისცეს შთაბეჭდილება, რომ ქაღალდის wallpaper (ჩვეულებრივი და ორმაგი ფენის) ჩვენ მხოლოდ ერთი გონება, ფაქტობრივად, თუნდაც ჩვენი პატარა მაგიდა ორი სტატია (შედეგად გარეშე მკაფიო):

ტიპი

ფერი

ქაღალდი

მრავალფერიანი

ქაღალდი

მრავალფერიანი

ქაღალდის ორმაგი ფენიანი

beige

ქაღალდის ორმაგი ფენიანი

beige

ვინილის

brown

ვინილის

Orange

ქსოვილი

ვარდისფერი

Fleece

თეთრი

Fleece

beige

ამიტომ, როგორც წერილობით ნებისმიერი მოთხოვნა არგუმენტი მკაფიო უნდა იყოს ფრთხილად და კომპეტენტური უნდა გადაწყვიტოს მისი გამოყენება, დამოკიდებულია ამოცანა.

ალტერნატიული მკაფიო

საპირისპიროდ არგუმენტი განსხვავებული - ყველა არგუმენტი. In მისი გამოყენების დუბლიკატი რიგები ინახება. მაგრამ, როგორც ნაგულისხმები ბაზაში და მიიჩნევს, რომ ეს არის აუცილებელი არაა ყველა ღირებულებებს, არგუმენტი ყველა - ეს არის საკმაოდ შესარჩევ ვიდრე ფაქტობრივი ფუნქცია არგუმენტი. ჩვენ ვიმედოვნებთ, რომ თქვენ ახლა მესმის, რომ მკაფიო (SQL) გამოიყენება. აღწერა გაძლევთ სრულ ინფორმაციას მიზანშეწონილობის გამოყენებით ეს არგუმენტი გადაჭრის სხვადასხვა პრობლემები. ყოველივე ამის შემდეგ, როგორც აღმოჩნდა, თუნდაც ისეთი მარტივი არგუმენტი თავის განაცხადის მალავს ძალიან ხელშესახები შესაძლებლობა კარგავს გარკვეული მონაცემები და ცარიელია არაზუსტი ინფორმაცია.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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