SQL Statement წარმოადგენს პირობების, საკვანძო სიტყვებისა და პარამეტრების ერთობლიობას, რომელიც უზრუნველყოფს რაიმე კონკრეტულ ფუნქციას.
ყველაზე მარტივ SQL query-ად შეგვიძლია მივიჩნიოთ ყველა სვეტისა და მწკრივის სელექცია.
ამის უზრუნველსაყოფად ვიყენებთ SELECT პირობას, რომელსაც ვაწვდით ასტერისკის სიმბოლოს
(* ნიშნავს, რომ ყველა სვეტი იგულისხმება სელექციაში) და FROM პირობას,
რომელსაც ვაწვდით ცხრილის სახელს.
გასათვალისწინებელია შემდეგი:
FROM პირობა მოსდევს SELECT პირობას* ნიშნავს ყველა სვეტსFROM პირობაშიSELECT *
FROM Students;
(10 rows affected) Total execution time: 00:00:00.003
| StudentID | FirstName | LastName | Age | Major |
|---|---|---|---|---|
| 1 | Davit | Giorgadze | 20 | Computer Science |
| 2 | Ana | Beridze | 21 | Business Administration |
| 3 | Luka | Khutsishvili | 22 | Computer Science |
| 4 | Mariam | Lomidze | 19 | Psychology |
| 5 | Sandro | Kapanadze | 23 | Computer Science |
| 6 | Salome | Gelashvili | 20 | Law |
| 7 | Giorgi | Nadaraya | 21 | Economics |
| 8 | Tamar | Kiknadze | 22 | Computer Science |
| 9 | Dato | Chkheidze | 24 | Computer Science |
| 10 | Nino | Jibuti | 20 | Architecture |
SELECT *
FROM Table_Name;
სპეციფიკური სვეტების სელექციისათვის SELECT პირობას უნდა მივუთითოთ სვეტების სახელების სია
(ასტერისკის ნაცვლად). სიაში თითოეული სვეტი ერთმანეთისგან გამოიყოფა მძიმით.
-- ერთი სვეტის (FirstName) სელექცია
SELECT FirstName
FROM Students;
(10 rows affected) Total execution time: 00:00:00.004
| FirstName |
|---|
| Davit |
| Ana |
| Luka |
| Mariam |
| Sandro |
| Salome |
| Giorgi |
| Tamar |
| Dato |
| Nino |
-- ორი სვეტის (FirstName და LastName) სელექცია
SELECT FirstName, LastName
FROM Students;
(10 rows affected) Total execution time: 00:00:00.004
| FirstName | LastName |
|---|---|
| Davit | Giorgadze |
| Ana | Beridze |
| Luka | Khutsishvili |
| Mariam | Lomidze |
| Sandro | Kapanadze |
| Salome | Gelashvili |
| Giorgi | Nadaraya |
| Tamar | Kiknadze |
| Dato | Chkheidze |
| Nino | Jibuti |
-- სამი სვეტის (FirstName, LastName და Major) სელექცია
SELECT FirstName, LastName, Major
FROM Students;
(10 rows affected) Total execution time: 00:00:00.004
| FirstName | LastName | Major |
|---|---|---|
| Davit | Giorgadze | Computer Science |
| Ana | Beridze | Business Administration |
| Luka | Khutsishvili | Computer Science |
| Mariam | Lomidze | Psychology |
| Sandro | Kapanadze | Computer Science |
| Salome | Gelashvili | Law |
| Giorgi | Nadaraya | Economics |
| Tamar | Kiknadze | Computer Science |
| Dato | Chkheidze | Computer Science |
| Nino | Jibuti | Architecture |
გასათვალისწინებელია შემდეგი:
SELECT პირობაშიSELECT პირობაში მივუთითებთ)SELECT Column1, Column2, ...
FROM Table_Name;
განსხვავებული (უნიკალური) მნიშვნელობების გამოსატანად გამოიყენება SELECT DISTINCT პირობა.
იგი გამორიცხავს დუბლირებულ მნიშვნელობებს.
მოცემულ ცხრილში Major სვეტის მნიშვნელობები შეიცავს დუბლირებულ მნიშვნელობებს
(Computer Science პროგრამაზე 5 სტუდენტია). იმისათვის, რომ გავიგოთ განსხვავებული Major-ების
შესახებ ინფორმაცია, გამოვიყენოთ SELECT DISTINCT:
SELECT DISTINCT Major
FROM Students;
(6 rows affected) Total execution time: 00:00:00.002
| Major |
|---|
| Architecture |
| Business Administration |
| Computer Science |
| Economics |
| Law |
| Psychology |
SELECT DISTINCT Column_Name
FROM Table_Name;
ცხრილში მწკრივების იდენტიფიცირება შესაძლებელია მნიშვნელობებით, რომლებსაც ისინი შეიცავენ. ამიტომ მნიშვნელოვანია სხვადასხვა კატეგორიის მნიშვნელობების სინტაქსურად ჩაწერის გაგება.
რიცხვითი მნიშვნელობები ჩაიწერება პირდაპირ, ბრჭყალების გარეშე:
WHERE Age = 20
WHERE Age > 22
WHERE Age <= 21
გასათვალისწინებელია:
.) მითითებაა შესაძლებელისტრიქონული მნიშვნელობები ჩაიწერება ბრჭყალებში:
WHERE Major = 'Computer Science'
WHERE LastName = 'Beridze'
თარიღის მნიშვნელობები ასევე ჩაიწერება ბრჭყალებში:
WHERE EnrollmentDate = '2023-09-01'
WHERE BirthDate < '2005-01-01'
შედარების ფრაზა მოიცავს სვეტის სახელს, შედარების ოპერატორსა და მნიშვნელობას. ყველა შედარება გვიბრუნებს ჭეშმარიტ ან მცდარ შედეგს.
| ოპერატორი | მნიშვნელობა |
|---|---|
= | ტოლია |
<> | არ უდრის |
< | ნაკლებია |
> | მეტია |
<= | ნაკლები ან ტოლია |
>= | მეტი ან ტოლია |
შედარებები უნდა მიეთითოს WHERE პირობაში, რომელიც მოდის FROM-ის შემდეგ:
-- იმ სტუდენტების სელექცია, რომელთა ასაკი 22 წელზე მეტია
SELECT *
FROM Students
WHERE Age > 22;
(2 rows affected) Total execution time: 00:00:00.002
| StudentID | FirstName | LastName | Age | Major |
|---|---|---|---|---|
| 5 | Sandro | Kapanadze | 23 | Computer Science |
| 9 | Dato | Chkheidze | 24 | Computer Science |
-- იმ სტუდენტების FirstName, LastName, Major ჩვენება, რომელთა ასაკი 20 წელს უდრის
SELECT FirstName, LastName, Major
FROM Students
WHERE Age = 20;
(3 rows affected) Total execution time: 00:00:00.003
| FirstName | LastName | Major |
|---|---|---|
| Davit | Giorgadze | Computer Science |
| Salome | Gelashvili | Law |
| Nino | Jibuti | Architecture |
SELECT Column1, Column2, ...
FROM Table_Name
WHERE Column_Name operator value;
სორტირებული ცხრილის სელექციისათვის გამოიყენება ORDER BY პირობა. Query-ში ეს არ არის
სავალდებულო პირობა, თუმცა გამოყენების დროს ის უნდა იყოს ბოლო პირობა query-ში.
-- სორტირება LastName-ის მიხედვით (ზრდადობის მიხედვით)
SELECT *
FROM Students
ORDER BY LastName;
(10 rows affected) Total execution time: 00:00:00.005
| StudentID | FirstName | LastName | Age | Major |
|---|---|---|---|---|
| 2 | Ana | Beridze | 21 | Business Administration |
| 9 | Dato | Chkheidze | 24 | Computer Science |
| 6 | Salome | Gelashvili | 20 | Law |
| 1 | Davit | Giorgadze | 20 | Computer Science |
| 10 | Nino | Jibuti | 20 | Architecture |
| 5 | Sandro | Kapanadze | 23 | Computer Science |
| 3 | Luka | Khutsishvili | 22 | Computer Science |
| 8 | Tamar | Kiknadze | 22 | Computer Science |
| 4 | Mariam | Lomidze | 19 | Psychology |
| 7 | Giorgi | Nadaraya | 21 | Economics |
გასათვალისწინებელია:
ORDER BY-ს არ ახლავს ASC ან DESC, სორტირება ავტომატურად განხორციელდება ზრდადობის (ASC) მიხედვით-- სორტირება Age-ის მიხედვით (კლებადობის მიხედვით)
SELECT *
FROM Students
ORDER BY Age DESC;
(10 rows affected) Total execution time: 00:00:00.005
| StudentID | FirstName | LastName | Age | Major |
|---|---|---|---|---|
| 9 | Dato | Chkheidze | 24 | Computer Science |
| 5 | Sandro | Kapanadze | 23 | Computer Science |
| 8 | Tamar | Kiknadze | 22 | Computer Science |
| 3 | Luka | Khutsishvili | 22 | Computer Science |
| 2 | Ana | Beridze | 21 | Business Administration |
| 7 | Giorgi | Nadaraya | 21 | Economics |
| 6 | Salome | Gelashvili | 20 | Law |
| 1 | Davit | Giorgadze | 20 | Computer Science |
| 10 | Nino | Jibuti | 20 | Architecture |
| 4 | Mariam | Lomidze | 19 | Psychology |
-- სორტირება LastName-ისა (ზრდადობის) და Age-ის (კლებადობის) მიხედვით
SELECT *
FROM Students
ORDER BY LastName ASC, Age DESC;
(10 rows affected) Total execution time: 00:00:00.005
| StudentID | FirstName | LastName | Age | Major |
|---|---|---|---|---|
| 2 | Ana | Beridze | 21 | Business Administration |
| 9 | Dato | Chkheidze | 24 | Computer Science |
| 6 | Salome | Gelashvili | 20 | Law |
| 1 | Davit | Giorgadze | 20 | Computer Science |
| 10 | Nino | Jibuti | 20 | Architecture |
| 5 | Sandro | Kapanadze | 23 | Computer Science |
| 3 | Luka | Khutsishvili | 22 | Computer Science |
| 8 | Tamar | Kiknadze | 22 | Computer Science |
| 4 | Mariam | Lomidze | 19 | Psychology |
| 7 | Giorgi | Nadaraya | 21 | Economics |
შესაძლებელია სორტირება სვეტის პოზიციის მიხედვით:
-- სვეტის პოზიციის გამოყენებით სორტირება (სორტირება Major-ის მიხედვით)
SELECT FirstName, LastName, Major
FROM Students
ORDER BY 3;
(10 rows affected) Total execution time: 00:00:00.005
| FirstName | LastName | Major |
|---|---|---|
| Nino | Jibuti | Architecture |
| Ana | Beridze | Business Administration |
| Luka | Khutsishvili | Computer Science |
| Sandro | Kapanadze | Computer Science |
| Davit | Giorgadze | Computer Science |
| Tamar | Kiknadze | Computer Science |
| Dato | Chkheidze | Computer Science |
| Giorgi | Nadaraya | Economics |
| Salome | Gelashvili | Law |
| Mariam | Lomidze | Psychology |
SELECT Column1, Column2, ...
FROM Table_Name
[WHERE condition]
ORDER BY Column_Name [DESC];
სორტირების გამოყენების დროს მნიშვნელობას იძენს მხოლოდ პირველი რამდენიმე მწკრივის გამოჩენა,
რათა ვნახოთ Top მნიშვნელობები. MySQL-ში ამისათვის გამოიყენება LIMIT N (სადაც N რიცხვია).
-- 5 ყველაზე ასაკიანი სტუდენტი
SELECT *
FROM Students
ORDER BY Age DESC
LIMIT 5;
(5 rows affected) Total execution time: 00:00:00.005
| StudentID | FirstName | LastName | Age | Major |
|---|---|---|---|---|
| 9 | Dato | Chkheidze | 24 | Computer Science |
| 5 | Sandro | Kapanadze | 23 | Computer Science |
| 3 | Luka | Khutsishvili | 22 | Computer Science |
| 8 | Tamar | Kiknadze | 22 | Computer Science |
| 2 | Ana | Beridze | 21 | Business Administration |
-- ყველაზე ასაკიანი სტუდენტი Computer Science პროგრამაზე
SELECT FirstName, LastName, Age, Major
FROM Students
WHERE Major = 'Computer Science'
ORDER BY Age DESC
LIMIT 1;
(1 row affected) Total execution time: 00:00:00.006
| FirstName | LastName | Age | Major |
|---|---|---|---|
| Dato | Chkheidze | 24 | Computer Science |
SELECT Column1, Column2, ...
FROM Table_Name
[WHERE condition]
ORDER BY Column_Name [DESC]
LIMIT N;
Aliases არის მომხმარებლის მიერ სვეტისთვის მინიჭებული სახელი.
სვეტების Aliases-თვის გამოიყენება საკვანძო სიტყვა AS.
-- Major სვეტის Program-ად გამოტანა
SELECT FirstName, LastName, Major AS Program
FROM Students
WHERE Major = 'Computer Science';
(5 rows affected) Total execution time: 00:00:00.002
| FirstName | LastName | Program |
|---|---|---|
| Davit | Giorgadze | Computer Science |
| Luka | Khutsishvili | Computer Science |
| Sandro | Kapanadze | Computer Science |
| Tamar | Kiknadze | Computer Science |
| Dato | Chkheidze | Computer Science |
-- რამდენიმე სვეტისთვის Alias-ების მინიჭება
SELECT FirstName AS UserName, LastName AS Surname
FROM Students;
(10 rows affected) Total execution time: 00:00:00.004
| UserName | Surname |
|---|---|
| Davit | Giorgadze |
| Ana | Beridze |
| Luka | Khutsishvili |
| Mariam | Lomidze |
| Sandro | Kapanadze |
| Salome | Gelashvili |
| Giorgi | Nadaraya |
| Tamar | Kiknadze |
| Dato | Chkheidze |
| Nino | Jibuti |
-- Top 2 ყველაზე ასაკიანი სტუდენტი CS-ზე, სახელი და გვარი გაერთიანებულად
SELECT FirstName, LastName, CONCAT(FirstName, ' ', LastName) AS Oldest_Students_CS
FROM Students
WHERE Major = 'Computer Science'
ORDER BY Age DESC
LIMIT 2;
(2 rows affected) Total execution time: 00:00:00.005
| FirstName | LastName | Oldest_Students_CS |
|---|---|---|
| Dato | Chkheidze | Dato Chkheidze |
| Sandro | Kapanadze | Sandro Kapanadze |
-- AS საკვანძო სიტყვის გამოყენება არ არის სავალდებულო
SELECT FirstName USER_NAME
FROM Students;
(10 rows affected) Total execution time: 00:00:00.034
| USER_NAME |
|---|
| Davit |
| Ana |
| Luka |
| Mariam |
| Sandro |
| Salome |
| Giorgi |
| Tamar |
| Dato |
| Nino |
გასათვალისწინებელია:
SELECT პირობაშიORDER BY პირობაშიAS საკვანძო სიტყვის გამოყენება არ არის სავალდებულოSELECT Column_Name AS Alias_Name
FROM Table_Name;