Деректер қоры (ДҚ) деректерді ұйымдастыруға, сақтауға және басқаруға арналған негізгі құрал болып табылады.
SQL (Structured Query Language) — реляциялық деректер қорларымен (РДҚ) жұмыс істеуге арналған программалау тілі.
Бұл мақалада біз деректер қорларының негіздерін, SQL архитектурасын, негізгі командалар мен олардың күрделі мысалдарын қарастырамыз.
Деректер қорларының негіздері
Деректер қоры — бұл деректерді тиімді басқаруға және жылдам қол жеткізуге мүмкіндік беретін ұйымдасқан ақпарат сақтау жүйесі. Реляциялық деректер қорлары (РДҚ) — деректерді кестелер түрінде ұйымдастыру арқылы ең кең тараған деректер қорының түрі.
Реляциялық модель
Реляциялық модель деректер теориясының жиынтықтары мен реляциялық алгебраның математикалық тұжырымдамаларына негізделген. Деректер кестелер түрінде ұйымдастырылады (relation), мұнда жолдар жазбаларды (tuple), ал бағандар атрибуттарды (attribute) білдіреді.
Негізгі түсініктер
- Кесте (Table): Жолдар мен бағандардан тұратын негізгі деректер құрылымы.
- Жол (Row): Кестедегі бір жазба.
- Баған (Column): Жазбаның атрибуты немесе өрісі.
- Бастапқы кілт (Primary Key): Кестедегі жолдың бірегей идентификаторы.
- Сыртқы кілт (Foreign Key): Екі кестенің арасындағы байланысты орнататын өріс.
- Индекс (Index): Кестедегі жолдарды іздеуді жылдамдататын деректер құрылымы.
SQL архитектурасы
SQL бірнеше ішкі тілдерден тұрады, олардың әрқайсысы деректер қорымен жұмыс істеудің белгілі бір аспектілеріне жауап береді. SQL негізгі элементтеріне DDL (Data Definition Language), DML (Data Manipulation Language), DCL (Data Control Language) және TCL (Transaction Control Language) жатады.
DDL (Деректерді анықтау тілі)
DDL деректер қорының құрылымдарын, мысалы, кестелерді, индекстерді және схемаларды анықтау және басқару үшін қолданылады. DDL негізгі командаларына мыналар кіреді:
CREATE TABLE
: Жаңа кестені құру.ALTER TABLE
: Бар кестенің құрылымын өзгерту.DROP TABLE
: Кестені жою.
Күрделі деректер типтері мен шектеулерді пайдаланып кесте құру мысалы:
CREATE TABLE orders (
order_id INT PRIMARY KEY AUTO_INCREMENT,
customer_id INT NOT NULL,
order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
total_amount DECIMAL(15, 2) CHECK (total_amount > 0),
status ENUM('Pending', 'Shipped', 'Delivered', 'Cancelled') NOT NULL,
CONSTRAINT fk_customer
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
ON DELETE CASCADE
ON UPDATE CASCADE
);
DML (Деректерді манипуляциялау тілі)
DML кестелердегі деректермен манипуляциялау үшін қолданылады. DML негізгі командаларына мыналар кіреді:
SELECT
: Кестеден деректерді алу.INSERT
: Кестеге жаңа жазбаларды кірістіру.UPDATE
: Бар жазбаларды жаңарту.DELETE
: Жазбаларды жою.
Күрделі шарттар мен агрегаттық функцияларды пайдаланып деректерді таңдау мысалы:
SELECT customer_id, COUNT(order_id) AS order_count, SUM(total_amount) AS total_spent
FROM orders
WHERE status = 'Delivered'
GROUP BY customer_id
HAVING total_spent > 1000
ORDER BY total_spent DESC;
DCL (Деректерге қолжетімділікті басқару тілі)
DCL деректер мен деректер қоры объектілеріне қолжетімділікті басқару үшін қолданылады. DCL негізгі командаларына мыналар кіреді:
GRANT
: Пайдаланушыға немесе рольге құқық беру.REVOKE
: Пайдаланушыдан немесе рольден құқықтарды қайтарып алу.
Құқық берудің мысалы:
GRANT SELECT, INSERT ON orders TO user_name;
TCL (Транзакцияларды басқару тілі)
TCL деректер қорындағы транзакцияларды басқару үшін қолданылады, бұл атомарлық, келісімділік, оқшаулау және тұрақтылық (ACID) қамтамасыз етеді. TCL негізгі командаларына мыналар кіреді:
BEGIN TRANSACTION
: Транзакцияның басталуы.COMMIT
: Транзакцияны бекіту.ROLLBACK
: Транзакцияны қайтару.
Транзакцияны пайдалану мысалы:
BEGIN TRANSACTION;
UPDATE accounts
SET balance = balance - 100
WHERE account_id = 1;
UPDATE accounts
SET balance = balance + 100
WHERE account_id = 2;
IF @@ERROR != 0
BEGIN
ROLLBACK;
END
ELSE
BEGIN
COMMIT;
END;
Күрделі SQL командалары мен мысалдары
Күрделі SQL командаларын және олардың деректер қорын басқарудағы қолданылуын қарастырайық.
Ішкі сұраулар (Subqueries)
Ішкі сұраулар негізгі сұрауға қажетті деректерді қайтару үшін орындалатын сұраулар.
Корреляциялық ішкі сұрауды пайдалану мысалы:
SELECT e1.employee_id, e1.first_name, e1.last_name, e1.salary
FROM employees e1
WHERE e1.salary > (SELECT AVG(e2.salary) FROM employees e2 WHERE e2.department_id = e1.department_id);
Бұл сұрау әр бөлімдегі орташа жалақыдан жоғары жалақы алатын қызметкерлерді таңдайды.
Жалпы кестелік өрнектер (CTE)
CTE күрделі сұрауларда пайдаланылатын уақытша нәтижелер жинағын жасауға мүмкіндік береді.
CTE қолдану мысалы:
WITH DepartmentSales AS (
SELECT department_id, SUM(total_amount) AS total_sales
FROM orders
GROUP BY department_id
)
SELECT d.department_name, ds.total_sales
FROM departments d
JOIN DepartmentSales ds ON d.department_id = ds.department_id
WHERE ds.total_sales > 10000;
Бұл сұрау сатылымы 10000-нан асатын бөлімдердің атауларын және олардың сатылымдарын шығарады.
Сақталған процедуралар (Stored Procedures)
Сақталған процедуралар бірнеше рет шақыруға болатын SQL командалар жинағын орындауға мүмкіндік береді.
Сақталған процедураны құру және шақыру мысалы:
CREATE PROCEDURE GetCustomerOrders (
IN customerId INT
)
BEGIN
SELECT order_id, order_date, total_amount, status
FROM orders
WHERE customer_id = customerId;
END;
CALL GetCustomerOrders(1);
Бұл процедура көрсетілген клиент үшін тапсырыстарды шығарады.
Триггерлер (Triggers)
Триггерлер белгілі бір оқиғалар кезінде автоматты түрде SQL командаларын орындайды, мысалы, деректерді кірістіру, жаңарту немесе жою кезінде.
Триггерді құру мысалы:
CREATE TRIGGER before_order_insert
BEFORE INSERT ON orders
FOR EACH ROW
BEGIN
IF NEW.total_amount <= 0 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Total amount must be greater than zero';
END IF;
END;
Бұл триггер жаңа тапсырыс кірістірілмес бұрын оның сомасының нөлден үлкен екенін тексереді.
Қорытынды
SQL деректер қорлары деректерді ұйымдастыру, сақтау және басқару үшін негізгі құрал болып табылады.
Реляциялық модельдің, SQL құрылымының және күрделі командаларды пайдаланудың негіздерін түсіну деректермен тиімді жұмыс істеуге, олардың тұтастығын және қолжетімділігін қамтамасыз етуге мүмкіндік береді.
Осы білімдер мен техникаларды меңгеру арқылы жоғары өнімділік пен сенімділікке ие деректерді басқару жүйелерін құруға болады.
Реклама Google |
![]() |
Назар аударыңыз! Бұл мақала ресми құжат емес.Ақпаратты сақтықпен және сынақ ортасында пайдалану керек.
Заманауи сақтық көшірме жасау, репликациялау, деректерді синхрондау және төлемдік бағдарламадан қорғау жүйелерін құру туралы сұрақтарыңыз болса, қазіргі заманғы деректердің сақтық көшірмесін жасау және қалпына келтіру технологиялары бойынша кеңес алу үшін біздің компанияға хабарласыңыз . Біздің компанияның осы салада 20 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- Proxmox гипервизорын жаңа физикалық серверге көшіру
- OpenShift қолдану арқылы Docker контейнерлерін пайдалану — терең талдау
- Wazuh-ты Proxmox қауіпсіздігін бақылау үшін пайдалану - Терең талдау Кіріспе
- Fail2Ban-ды zVirt-те орнату, баптау және пайдалану
- Graylog Community Edition-ді Proxmox-қа орнату, баптау және пайдалану
- Elasticsearch-ті Proxmox жүйесіне орнату, баптау және пайдалану
- Kibana-ны Proxmox-қа орнату, баптау және пайдалану
- Logstash-ты Proxmox-қа орнату, баптау және пайдалану
- Proxmox логтарын талдау үшін ИИ мүмкіндіктері
- Ceph-ті OpenStack-те орнату, баптау және пайдалану