SQL (Structured Query Language) — бұл реляциялық мәліметтер базасындағы (RDBMS) мәліметтерді басқаруға және өңдеуге арналған бағдарламалау тілі.
Бұл қазіргі заманғы көптеген дерекқор басқару жүйелерінде (DBMS) қолданылатын стандартты тіл болып табылады, мысалы, MySQL, PostgreSQL, SQLite, Microsoft SQL Server және Oracle Database.
Бұл мақалада біз SQL сұрауларының негізгі түрлерін, олардың синтаксисін және күрделі мысалдарын қарастырамыз.
SQL Сұрауларының негізгі түрлері
1. Мәліметтерді таңдау сұраулары (SELECT)
SELECT сұраулары дерекқордан мәліметтерді алуға қолданылады. Олар нақты бағандар мен жолдарды таңдауға, сондай-ақ мәліметтерді сүзуге, сұрыптауға және агрегаттауға мүмкіндік береді. Күрделі сұрауларға жиі ішкі сұраулар (subqueries), терезе функциялары (window functions) және жалпы кестелік өрнектер (CTE - Common Table Expressions) қолданылады.
Ішкі сұрау және терезе функциясы бар мысал:
WITH user_activity AS (
SELECT user_id, COUNT(*) AS login_count
FROM logins
WHERE login_date > '2023-01-01'
GROUP BY user_id
)
SELECT u.first_name, u.last_name, ua.login_count,
RANK() OVER (ORDER BY ua.login_count DESC) AS rank
FROM users u
JOIN user_activity ua ON u.id = ua.user_id
WHERE ua.login_count > 5;
Бұл мысалда CTE 2023 жылдан бастап пайдаланушылардың кіру санын есептеу үшін пайдаланылады, содан кейін нәтижелер users
кестесімен біріктіріледі және осы деректерге пайдаланушылардың кіру саны бойынша ранжирлеу үшін терезе функциясы RANK қолданылады.
2. Мәліметтерді енгізу сұраулары (INSERT)
INSERT сұраулары кестеге жаңа жазбаларды қосуға қолданылады. Олар қарапайым немесе күрделі, мәндерді есептеу үшін ішкі сұрауларды пайдалана алады.
Ішкі сұрау бар мысал:
INSERT INTO high_value_customers (user_id, total_spent)
SELECT user_id, SUM(amount) AS total_spent
FROM orders
WHERE order_date > '2023-01-01'
GROUP BY user_id
HAVING SUM(amount) > 10000;
Бұл сұрау high_value_customers
кестесіне пайдаланушылардың идентификаторларын және олардың тапсырыстарының жалпы сомасын қосады, егер бұл сома көрсетілген кезеңде 10000-нан асса.
3. Мәліметтерді жаңарту сұраулары (UPDATE)
UPDATE сұраулары кестедегі бар мәліметтерді өзгертеді. Олар жаңартылатын жолдарды анықтау үшін ішкі сұраулар мен күрделі шарттарды пайдалана алады.
Ішкі сұрау бар мысал:
UPDATE users
SET status = 'inactive'
WHERE id IN (
SELECT u.id
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE o.order_id IS NULL
AND u.registration_date < '2023-01-01'
);
Бұл мысалда пайдаланушылардың статусы 'inactive' болып жаңартылады, егер олар 2023 жылғы 1 қаңтарға дейін тіркелген болса және ешқандай тапсырыс жасамаған болса.
4. Мәліметтерді жою сұраулары (DELETE)
DELETE сұраулары кестеден жазбаларды жоюға қолданылады. Олар шартты болуы мүмкін және жойылатын жолдарды нақты анықтау үшін ішкі сұрауларды қамти алады.
Ішкі сұрау бар мысал:
DELETE FROM users
WHERE id IN (
SELECT u.id
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE o.order_id IS NULL
AND u.registration_date < '2023-01-01'
);
Бұл сұрау 2023 жылғы 1 қаңтарға дейін тіркелген және ешқандай тапсырыс жасамаған барлық пайдаланушыларды жояды.
Агрегациялық функциялар
SQL көптеген агрегаттық функцияларды қолдайды, олар көптеген жолдармен операцияларды орындауға және бір мәнді қайтаруға пайдалы. Олардың кейбіреулері COUNT, SUM, AVG, MAX және MIN. Терезе функциялары агрегаттық функцияларды жолдар жиынына қолдануға және осы жиынның әрбір жолы үшін нәтижені қайтаруға мүмкіндік береді.
Терезе функциясы бар мысал:
SELECT department, employee_id, salary,
AVG(salary) OVER (PARTITION BY department) AS avg_salary
FROM employees;
Бұл сұрау әрбір департамент бойынша орташа жалақыны есептейді және оны әрбір қызметкер туралы мәліметтермен бірге қайтарады.
Кестелерді біріктіру (JOIN)
SQL бірнеше кестеден деректерді өзара байланысты бағандар негізінде біріктіруге мүмкіндік беретін түрлі біріктіру (JOIN) түрлерін қолдайды. Күрделі біріктірулер бірнеше кестелерді қамтуы және ішкі сұрауларды пайдалануы мүмкін.
Күрделі біріктіру мысалы:
SELECT o.order_id, u.first_name, u.last_name, p.product_name, od.quantity
FROM orders o
JOIN users u ON o.user_id = u.id
JOIN order_details od ON o.order_id = od.order_id
JOIN products p ON od.product_id = p.id
WHERE o.order_date > '2023-01-01';
Бұл сұрау orders
, users
, order_details
және products
кестелерін біріктіріп, 2023 жылғы 1 қаңтардан кейін жасалған тапсырыстар туралы мәліметтерді, пайдаланушыларды, өнімдерді және тапсырыс берілген тауарлар санын алады.
Қорытынды
SQL реляциялық мәліметтер базасындағы мәліметтермен жұмыс істеу үшін қуатты және икемді тіл болып табылады.
Мәліметтерді таңдау, енгізу, жаңарту және жою сияқты негізгі операциялар ақпаратты тиімді басқаруға мүмкіндік береді.
Агрегаттық функциялар және кестелерді біріктіру мүмкіндіктері SQL-ді мәліметтерді талдау және күрделі сұрауларды құру үшін таптырмас құрал етеді. SQL негіздері мен күрделі аспектілерін меңгеру әр түрлі қосымшалар мен жүйелерде мәліметтермен жұмыс істеу үшін кең мүмкіндіктер ашады.
Реклама Google |
![]() |
Назар аударыңыз! Бұл мақала ресми құжат емес.Ақпаратты сақтықпен және сынақ ортасында пайдалану керек.
Заманауи сақтық көшірме жасау, репликациялау, деректерді синхрондау және төлемдік бағдарламадан қорғау жүйелерін құру туралы сұрақтарыңыз болса, қазіргі заманғы деректердің сақтық көшірмесін жасау және қалпына келтіру технологиялары бойынша кеңес алу үшін біздің компанияға хабарласыңыз . Біздің компанияның осы салада 20 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- Proxmox гипервизорын жаңа физикалық серверге көшіру
- OpenShift қолдану арқылы Docker контейнерлерін пайдалану — терең талдау
- Wazuh-ты Proxmox қауіпсіздігін бақылау үшін пайдалану - Терең талдау Кіріспе
- Fail2Ban-ды zVirt-те орнату, баптау және пайдалану
- Graylog Community Edition-ді Proxmox-қа орнату, баптау және пайдалану
- Elasticsearch-ті Proxmox жүйесіне орнату, баптау және пайдалану
- Kibana-ны Proxmox-қа орнату, баптау және пайдалану
- Logstash-ты Proxmox-қа орнату, баптау және пайдалану
- Proxmox логтарын талдау үшін ИИ мүмкіндіктері
- Ceph-ті OpenStack-те орнату, баптау және пайдалану