SQL-ში რა ტიპები joins
იყენებდით და ახსენით, როგორ მუშაობენ ისინი?
პასუხი:
INNER JOIN
: აბრუნებს სტრიქონებს ორივე ცხრილიდან შესატყვისი მონაცემებით.LEFT JOIN
: აბრუნებს ყველა სტრიქონს მარცხენა ცხრილიდან და შესატყვის რიგებს მარჯვენა ცხრილიდან.RIGHT JOIN
: აბრუნებს ყველა სტრიქონს მარჯვენა ცხრილიდან და შესატყვის რიგებს მარცხენა ცხრილიდან.FULL JOIN
: აბრუნებს ყველა სტრიქონს ორივე ცხრილიდან, მათ შორის, შეუსაბამო მწკრივებს.
ახსენით ACID ცნებები SQL-ში და მათი როლი ტრანზაქციის მენეჯმენტში
პასუხი: ACID ნიშნავს Atomicity, Consistency, Isolation, Durability
. ეს არის არსებითი თვისებები ტრანზაქციის მენეჯმენტში SQL-ში:
Atomicity
უზრუნველყოფს, რომ ტრანზაქცია ან სრულად დამუშავდეს ან საერთოდ არ დამუშავდეს.Consistency
უზრუნველყოფს, რომ მონაცემები უნდა შეესაბამებოდეს განსაზღვრულ წესებს, შეზღუდვებსა და პირობებს.Isolation
უზრუნველყოფს, რომ ერთდროულმა ტრანზაქციებმა ხელი არ შეუშალოს ერთმანეთს.Durability
უზრუნველყოფს, რომ ტრანზაქციის დასრულების შემდეგ, მონაცემთა ბაზაში ცვლილებები ინახება უსაფრთხოდ და მუდმივად.
რა განსხვავებაა ROW_NUMBER(), RANK(), DENSE_RANK()
ფუნქციებს შორის SQL-ში?
პასუხი: ROW_NUMBER(), RANK(), DENSE_RANK()
ყველა გამოიყენება შეკითხვის შედეგში რიგების ნუმერაციისთვის, მაგრამ მათ აქვთ შემდეგი განსხვავებები:
ROW_NUMBER()
: ანიჭებს უწყვეტ რიცხვებს სტრიქონებს შეკითხვის შედეგში, დუბლიკატების განხილვის გარეშე.RANK()
: ანიჭებს რიცხვებს რიგებს შეკითხვის შედეგში და გამოტოვებს შემდეგ რიცხვს კავშირების შემთხვევაში.DENSE_RANK()
: ანიჭებს რიცხვებს რიგებს მოთხოვნის შედეგში და არ გამოტოვებს შემდეგ რიცხვს კავშირების შემთხვევაში.
როგორ გამოვიყენოთ window functions
SQL-ში და მივცეთ მაგალითი.
პასუხი: Window functions
ნებადართულია გამოთვლების შესრულება დაკავშირებული მწკრივების კომპლექტზე ძირითადი მოთხოვნის შედეგის შეცვლის გარეშე. მაგალითად, ჩვენ შეგვიძლია გამოვიყენოთ ფანჯრის ფუნქციები გაშვებული ჯამების გამოსათვლელად ან შედეგების ნაკრების ზედა N სტრიქონების დასაბრუნებლად.
SELECT ProductID, UnitPrice,
SUM(UnitPrice) OVER(ORDER BY ProductID) AS RunningTotal
FROM Products;
როგორ გამოვიყენოთ რეგულარული გამონათქვამები SQL-ში შაბლონების შესატყვისად
პასუხი: SQL-ში რეგულარული გამონათქვამები გამოიყენება რთული ტექსტური შაბლონების საძიებლად. ისინი ხშირად გამოიყენება ოპერატორთან LIKE
ან ფუნქციებთან, როგორიცაა REGEXP_LIKE
(Oracle-ში) ან REGEXP_MATCHES
(PostgreSQL-ში).
SELECT * FROM Employees WHERE LastName LIKE '%son%';
როგორ გამოვიყენოთ JSON ფუნქციები SQL-ში JSON მონაცემებთან მუშაობისთვის
პასუხი: JSON ფუნქციები SQL-ში საშუალებას იძლევა მონაცემთა ბაზაში JSON ფორმატში მონაცემების მოთხოვნა, ჩასმა, განახლება და წაშლა.
მაგალითად, ჩვენ შეგვიძლია გამოვიყენოთ ფუნქციები, როგორიცაა JSON_VALUE, JSON_QUERY, JSON_MODIFY(SQL Server-ში) ან ოპერატორები, როგორიცაა ->, ->>, #>, #>> და ა.შ.(PostgreSQL) JSON თვისებების მანიპულირებისთვის.
SELECT JSON_VALUE(CustomerInfo, '$.Name') AS CustomerName
FROM Customers;
გაფართოებული ტექნიკა SQL შეკითხვის ოპტიმიზაციისა და მონაცემთა ბაზის მუშაობის დარეგულირებისთვის
პასუხი: SQL მოთხოვნებისა და მონაცემთა ბაზის მუშაობის ოპტიმიზაციისთვის, ჩვენ შეგვიძლია გამოვიყენოთ ისეთი ტექნიკა, როგორიცაა:
- ინდექსების გამოყენება ხშირად მოთხოვნილი სვეტებისთვის.
- ოპტიმიზაცია
JOIN
დაWHERE
დებულებები მონაცემთა ეფექტური აღდგენისთვის. - საჭიროების შემთხვევაში ფანჯრის ფუნქციების და პაგინაციის გამოყენება.
- თავიდან აცილება
SELECT
* მხოლოდ საჭირო სვეტების მისაღებად. - ზოგიერთ შემთხვევაში შეკითხვის მინიშნებების გამოყენება.
- მონაცემთა ნორმალიზაციის უზრუნველყოფა და დუბლიკატების ამოღება.
- შესრულების მონიტორინგის ხელსაწყოების გამოყენება მონაცემთა ბაზის თვალყურის დევნებისთვის და დაზუსტებისთვის.
ახსენით როგორ გამოვიყენოთ SET
ოპერაციები (UNION, INTERSECT, EXCEPT)
SQl-ში
პასუხი: SET
ოპერაციები (UNION, INTERSECT, EXCEPT)
გამოიყენება სხვადასხვა მოთხოვნების შედეგების ნაკრების გაერთიანებისა და მანიპულირებისთვის.
UNION
: აერთიანებს ორი ან მეტი მოთხოვნის შედეგებს მონაცემთა ერთ ნაკრებში და შლის დუბლიკატებს.INTERSECT
: აბრუნებს სტრიქონებს, რომლებიც გამოჩნდება შეკითხვის შედეგების ორივე ნაკრებში.EXCEPT
: აბრუნებს რიგებს, რომლებიც გამოჩნდება პირველი შეკითხვის შედეგების კომპლექტში, მაგრამ არა მეორეში.
როგორ გამოვიყენოთ შეკითხვის ფუნქციები, როგორიცაა LEAD, LAG, FIRST_VALUE, LAST_VALUE
SQL
პასუხი: შეკითხვის ფუნქციები, როგორიცაა, LEAD, LAG, FIRST_VALUE, LAST_VALUE
გამოიყენება მნიშვნელობების მოსაპოვებლად შესაბამისი რიგებიდან იმავე მოთხოვნის შედეგის ფარგლებში.
LEAD
: იღებს სვეტის მნიშვნელობას შემდეგი მწკრივიდან შეკითხვის შედეგში.LAG
: იღებს სვეტის მნიშვნელობას წინა მწკრივიდან შეკითხვის შედეგში.FIRST_VALUE
: ამოიღებს სვეტის პირველ მნიშვნელობას შეკითხვის შედეგში.LAST_VALUE
: ამოიღებს სვეტის ბოლო მნიშვნელობას შეკითხვის შედეგში.