Middle
გააზიარეთ რელაციურ მონაცემთა ბაზაში SELECT ოპერატორის სრული სინტაქსი.
sobes.tech AI
პასუხი AI-სგან
SQL SELECT ოპერაცია გამოიყენება მონაცემების არჩევისთვის ერთ ან რამდენიმე ცხრილიდან. მისი სრული სინტაქსი მოიცავს მრავალი არჩევით ნაწილს:
SELECT [ALL | DISTINCT]
select_expr, select_expr, ...
FROM
table_references
[WHERE
where_condition]
[GROUP BY
{col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING
having_condition]
[ORDER BY
{col_name | expr | position}
[ASC | DESC], ...]
[LIMIT
[offset,] row_count | row_count OFFSET offset]
[FOR UPDATE | LOCK IN SHARE MODE];
ძირითადი ნაწილები:
-
SELECT [ALL | DISTINCT] select_expr, ...:SELECT: სიტყვა, რომელიც აღნიშნავს მონაცემების არჩევას.ALL: (ნაგულისხმევი) მოიცავს ყველა პოვნილ ხაზს, მათ შორის დუბლიკატებს.DISTINCT: ამოწმებს დუბლიკატებს შედეგიდან.select_expr: გამოთვლა, რომელიც განსაზღვრავს არჩეულ სვეტებს ან გამოთვლილ მნიშვნელობებს (მაგ.,column_name,function(column),column1 + column2,*ყველა სვეტისთვის). შეიძლება გამოიყენოს მეტსახელები (AS-ის საშუალებით).
-
FROM table_references:FROM: სიტყვა, რომელიც აღნიშნავს მონაცემთა წყაროს.table_references: სია ცხრილების, რომლებიციდან ხდება მონაცემთა არჩევა. შეიძლება იყოს მარტივი ცხრილები, წარმოდგენები ან შეუერთებები (JOIN). სხვადასხვა ტიპის შეუერთებები:INNER JOIN,LEFT [OUTER] JOIN,RIGHT [OUTER] JOIN,FULL [OUTER] JOIN,CROSS JOIN.
-
[WHERE where_condition]:WHERE: სიტყვა, რომელიც გამოიყენება ხაზების ფილტრაციისთვის მითითებული პირობით.where_condition: ლოგიკური გამოთვლა, რომელიც იყენებს შედარების ოპერატორებს (=,!=,>,<,>=,<=), ლოგიკურ ოპერატორებს (AND,OR,NOT), დიაპაზონის ოპერატორებს (BETWEEN), სია (IN), სქემები (LIKE) და NULL-ის შემოწმებები (IS NULL,IS NOT NULL).
-
[GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]]:GROUP BY: ჯგუფավորում ერთნაირი მნიშვნელობების ხაზებს მითითებულ სვეტებში, რათა გამოიყენოს აგრეგატული ფუნქციები (COUNT,SUM,AVG,MIN,MAX).col_name | expr | position: სვეტი, გამოთვლა ან სვეტის პოზიცია ჯგუფավորմանთვის.ASC | DESC: არჩევითი, განსაზღვრავს სორტირების წესს ჯგუფში (ხშირად გამოიყენებაORDER BY-თან ერთად).WITH ROLLUP: არჩევითი, დამატებით ხატავს საბოლოო გამოთვლების ხაზებს (MySQL-ისთვის).
-
[HAVING having_condition]:HAVING: ფილტრავსGROUP BY-ით შექმნილ ჯგუფებს მითითებული პირობით. განსხვავდებაWHERE-დან, რადგან შეუძლია გამოიყენოს აგრეგატული ფუნქციები.
-
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]:ORDER BY: სორტირებს შედეგების ხაზებს.col_name | expr | position: სვეტი, გამოთვლა ან სვეტის პოზიცია სორტირებისთვის.ASC: ზრდადობით (ნაგულისხმევი):DESC: კლებადობით.
-
[LIMIT [offset,] row_count | row_count OFFSET offset]:LIMIT: შეზღუდავს დაბრუნებულ ხაზების რაოდენობას. შეიძლება გამოყენებულ იქნას გვერდის განლაგებისთვის.offset: გადახვევა დასაწყისიდან, გამოტოვებული ხაზების რაოდენობა.row_count: მაქსიმალური ხაზების რაოდენობა.
-
[FOR UPDATE | LOCK IN SHARE MODE]:- არჩევითი სვეტების ბლოკირება, რომლებიც გამოიყენება ტრანზაქციებში პარალელური წვდომის მართვისთვის:
FOR UPDATE: იღებს ექსკლუზიურ ბლოკირებას არჩეულ ხაზებზე, ხელს უშლის მათ შეცვლას სხვა ტრანზაქციებიდან.LOCK IN SHARE MODE: იღებს განაწილებულ ბლოკირებას, რომელიც საშუალებას აძლევს სხვა ტრანზაქციებს წაიკითხონ ხაზები, მაგრამ არა შეცვალონ ისინი (MySQL-ისთვის). სხვა მონაცემთა ბაზებში შეიძლება გამოყენებულ იქნას მსგავსი მექანიზმები (FOR SHARE).
საერთო ჯამში, SELECT ოპერაციის ნაწილები გამოიყენება შემდეგი წესით:
FROMJOINWHEREGROUP BYHAVINGSELECTDISTINCTORDER BYLIMITFOR UPDATE/LOCK IN SHARE MODE