SQL (Structured Query Language) - бұл реляциялық деректер базаларындағы мәліметтерді басқару және өңдеу үшін арналған бағдарламалау тілі.
Бұл мақалада біз SQL-дің негізгі тұжырымдамаларын қарастырып, мәліметтер базасымен жұмыс істеу дағдыларын жетілдіру үшін практикалық мысалдар ұсынамыз.
SQL негізгі ұғымдары
1. Реляциялық деректер базалары
Реляциялық деректер базалары (RDBMS) мәліметтерді жолдар мен бағандардан тұратын кестелерде сақтайды. Жолдар жазбалар (немесе кортеждер), ал бағандар - осы жазбалардың атрибуттары. Кестелер бір-бірімен сыртқы кілттер (foreign keys) арқылы байланысуы мүмкін.
2. SQL сұраныстары
SQL сұраныстарын бірнеше санатқа бөлуге болады:
- DDL (Data Definition Language): Деректер базасының құрылымын анықтайды.
CREATE TABLE
,ALTER TABLE
,DROP TABLE
- DML (Data Manipulation Language): Кестелердегі мәліметтерді басқарады.
SELECT
,INSERT
,UPDATE
,DELETE
- DCL (Data Control Language): Мәліметтерге қол жеткізуді басқарады.
GRANT
,REVOKE
- TCL (Transaction Control Language): Деректер базасындағы транзакцияларды басқарады.
COMMIT
,ROLLBACK
,SAVEPOINT
3. Негізгі SQL командалары
- SELECT: Деректер базасынан мәліметтерді таңдау үшін қолданылады.
- INSERT: Кестеге жаңа жазбалар қосады.
- UPDATE: Бар жазбаларды жаңартады.
- DELETE: Кестеден жазбаларды жояды.
SQL практикасы
Кесте құру
Мәліметтер типтері мен шектеулерді (constraints) ескере отырып, employees
кестесін құрамыз. Бастапқы және сыртқы кілттерді қолдану мысалы:
CREATE TABLE departments (
id INT PRIMARY KEY,
department_name VARCHAR(100) NOT NULL
);
CREATE TABLE employees (
id INT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
hire_date DATE DEFAULT CURRENT_DATE,
department_id INT,
FOREIGN KEY (department_id) REFERENCES departments(id)
);
Мәліметтерді енгізу
Мәліметтерді енгізу кезінде транзакцияны пайдаланып, операциялардың атомарлығын қамтамасыз етеміз:
BEGIN TRANSACTION;
INSERT INTO departments (id, department_name) VALUES
(1, 'HR'),
(2, 'IT'),
(3, 'Finance');
INSERT INTO employees (id, first_name, last_name, email, hire_date, department_id) VALUES
(1, 'John', 'Doe', Бұл электронды пошта мекен-жайы спам-боттардан қорғалған, оны қарау үшін Сізде Javascript қосылған. ', '2020-01-15', 2),
(2, 'Jane', 'Smith', Бұл электронды пошта мекен-жайы спам-боттардан қорғалған, оны қарау үшін Сізде Javascript қосылған. ', '2019-04-23', 3),
(3, 'Emily', 'Davis', Бұл электронды пошта мекен-жайы спам-боттардан қорғалған, оны қарау үшін Сізде Javascript қосылған. ', '2018-07-11', 2);
COMMIT;
Мәліметтерді таңдау
employees
кестесінен барлық мәліметтерді таңдау үшін шарттар мен сұрыптауды көрсететін SELECT
командасын пайдаланамыз:
SELECT id, first_name, last_name, email, hire_date
FROM employees
WHERE hire_date > '2019-01-01'
ORDER BY hire_date DESC;
Мәліметтерді сүзу
Мәліметтерді сүзу үшін әртүрлі операторлармен (салыстыру операторлары, логикалық операторлар, LIKE, IN) WHERE
операторын қолданамыз:
SELECT first_name, last_name, email
FROM employees
WHERE email LIKE '%@example.com%'
AND department_id IN (2, 3);
Мәліметтерді жаңарту
Белгілі бір жазбаларды жаңарту үшін шартпен бірге UPDATE
командасын пайдаланамыз:
UPDATE employees
SET email = Бұл электронды пошта мекен-жайы спам-боттардан қорғалған, оны қарау үшін Сізде Javascript қосылған. '
WHERE id = 1;
Мәліметтерді жою
Мәліметтердің тұтастығын қамтамасыз ету үшін DELETE
командасы мен транзакцияны пайдаланып жазбаларды жоямыз:
BEGIN TRANSACTION;
DELETE FROM employees
WHERE id = 3;
COMMIT;
Мәліметтерді жинақтау
Синтетикалық ақпарат алу үшін жинақтау функцияларын орындаймыз (мысалы, COUNT
, SUM
, AVG
, MAX
, MIN
):
SELECT department_id, COUNT(*) AS num_employees, AVG(hire_date) AS avg_hire_date
FROM employees
GROUP BY department_id;
Мәліметтерді сұрыптау
Мәліметтерді сұрыптау үшін ORDER BY
операторын сұрыптау бағытын көрсете отырып қолданамыз:
SELECT * FROM employees
ORDER BY last_name ASC, first_name ASC;
Кестелерді біріктіру
Бірнеше кестелермен жұмыс істеу үшін әртүрлі біріктірулерді (JOIN) қолданамыз. INNER JOIN
мысалы:
SELECT e.first_name, e.last_name, d.department_name
FROM employees e
INNER JOIN departments d ON e.department_id = d.id;
Индекстер
Индекстер сұраныстардың өнімділігін арттырады. email
өрісінде іздеуді жеделдету үшін индекс жасаймыз:
CREATE INDEX idx_email ON employees(email);
Ең жақсы тәжірибелер
- Деректерді нормализациялау: Деректерді артықшылық пен қайталануды болдырмау үшін логикалық байланысқан кестелерге бөліңіз. Нормализация мысалы:
employees
жәнеdepartments
сияқты нысандар үшін бөлек кестелер жасаңыз.- Кестелер арасындағы байланысты орнату үшін сыртқы кілттерді қолданыңыз.
CREATE TABLE departments (
id INT PRIMARY KEY,
department_name VARCHAR(100) NOT NULL
);
CREATE TABLE employees (
id INT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
hire_date DATE DEFAULT CURRENT_DATE,
department_id INT,
FOREIGN KEY (department_id) REFERENCES departments(id)
);
- Индекстерді пайдалану:
WHERE
,JOIN
жәнеORDER BY
шарттарында жиі қолданылатын бағандар үшін индекстер жасаңыз. Индекс жасау мысалы:
CREATE INDEX idx_last_name ON employees(last_name);
- Транзакциялар: Операциялардың атомарлығын және деректердің тұтастығын қамтамасыз ету үшін транзакцияларды пайдаланыңыз. Транзакция мысалы:
BEGIN TRANSACTION;
-- Екі кестеге мәліметтер енгізу
INSERT INTO departments (id, department_name) VALUES (4, 'Marketing');
INSERT INTO employees (id, first_name, last_name, email, hire_date, department_id) VALUES
(4, 'Michael', 'Brown', Бұл электронды пошта мекен-жайы спам-боттардан қорғалған, оны қарау үшін Сізде Javascript қосылған. ', '2021-05-10', 4);
COMMIT;
- Параметрленген сұраныстар: SQL-инъекцияларынан қорғану үшін параметрленген сұраныстарды пайдаланыңыз.
sqlite3
кітапханасын пайдалану мысалы:
import sqlite3
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
employee_id = 1
new_email = Бұл электронды пошта мекен-жайы спам-боттардан қорғалған, оны қарау үшін Сізде Javascript қосылған. '
cursor.execute('''
UPDATE employees
SET email = ?
WHERE id = ?
''', (new_email, employee_id))
conn.commit()
conn.close()
- Кіріс мәліметтерін тексеру: Мәліметтерді деректер базасына енгізбес бұрын әрдайым тексеріп, растаңыз. Қолдану деңгейінде мәліметтерді тексеру мысалы (Python):
def validate_employee_data(first_name, last_name, email):
if not first_name or not last_name or not email:
raise ValueError("Барлық өрістер толтырылуы керек")
if '@' жоқ email:
raise ValueError("Жарамсыз электрондық пошта мекенжайы")
# Мәліметтерді тексеру функциясын қолдану мысалы
try:
validate_employee_data('John', 'Doe', Бұл электронды пошта мекен-жайы спам-боттардан қорғалған, оны қарау үшін Сізде Javascript қосылған. ')
# Мәліметтерді базаға енгізу
except ValueError as e:
print(f"Қате: {e}")
Қорытынды
Біз реляциялық деректер базаларымен жұмыс істеу үшін қажетті SQL негізгі тұжырымдамаларын және командаларын қарастырып, егжей-тегжейлі код мысалдарын келтірдік. Ең жақсы тәжірибелерді ұстану мәліметтерді тиімді және қауіпсіз басқаруға көмектеседі.
Жаттығу жасаңыз, өз кестелеріңізді құрыңыз, оларды мәліметтермен толтырыңыз және сұраныстармен тәжірибе жасаңыз, осылайша SQL бойынша дағдыларыңызды жетілдіресіз.
Реклама Google |
![]() |
Назар аударыңыз! Бұл мақала ресми құжат емес.Ақпаратты сақтықпен және сынақ ортасында пайдалану керек.
Заманауи сақтық көшірме жасау, репликациялау, деректерді синхрондау және төлемдік бағдарламадан қорғау жүйелерін құру туралы сұрақтарыңыз болса, қазіргі заманғы деректердің сақтық көшірмесін жасау және қалпына келтіру технологиялары бойынша кеңес алу үшін біздің компанияға хабарласыңыз . Біздің компанияның осы салада 20 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- Proxmox гипервизорын жаңа физикалық серверге көшіру
- OpenShift қолдану арқылы Docker контейнерлерін пайдалану — терең талдау
- Wazuh-ты Proxmox қауіпсіздігін бақылау үшін пайдалану - Терең талдау Кіріспе
- Fail2Ban-ды zVirt-те орнату, баптау және пайдалану
- Graylog Community Edition-ді Proxmox-қа орнату, баптау және пайдалану
- Elasticsearch-ті Proxmox жүйесіне орнату, баптау және пайдалану
- Kibana-ны Proxmox-қа орнату, баптау және пайдалану
- Logstash-ты Proxmox-қа орнату, баптау және пайдалану
- Proxmox логтарын талдау үшін ИИ мүмкіндіктері
- Ceph-ті OpenStack-те орнату, баптау және пайдалану