Лекция · 5.4

Біркестелік дерекқор құру (MySQL)

Теорияны білдік, енді нақты деректер қорын ӨЗ ҚОЛЫҢМЕН құрудың кезегі келді. Бұл сабақта ДҚБЖ ретінде ең танымал MySQL-ді қолданып, деректер қоры мен кестені SQL тілінде жобадан бастап нақты жазба енгізуге дейін жеткіземіз.

MySQL, Apache, PHP

Деректер қорын құру және оны web-бетпен байланыстыру үшін бір ғана MySQL жеткіліксіз — оған қоса веб-сервер де керек. Осы құралдардың бәрі бір орнату жинағында біріктірілген — OpenServer.

ҚұралҚызметі
phpMyAdminMySQL-мен жұмыс істеуге арналған визуалды веб-интерфейс
ApacheHTTP web-сервер — клиенттен сұраныс келгенде жауап қайтарады
PHPWeb-серверде орындалатын сценарийлер жазуға арналған тіл
📜
Тарихи факт: MySQL атауындағы «My» бөлігі — оны жасаған Майкл Видениустың (Michael Widenius) қызының есімінен алынған. SQL — Structured Query Language («құрылымдасқан сұраныс тілі») дегенді білдіреді.
CREATE DATABASE және CREATE TABLE
Команда
CREATE DATABASE — деректер қорын құрады. CREATE TABLE — кесте құрады, өріс аты мен деректер типін көрсетеді.
Есеп (оңай): деректер қоры құру

Берілді: musical_instruments атты деректер қоры керек.

Жауабы: CREATE DATABASE musical_instruments;

Есеп (орта): instruments кестесін құру

Берілді: код, атауы, түрі, жасалу күні, ішек саны, фото өрістерінен тұратын кесте.

CREATE TABLE instruments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20),
    type VARCHAR(20),
    data DATE,
    num_string INT(10),
    foto VARCHAR(20)
);

Түсіндірме: AUTO_INCREMENT — әр жаңа жазбаға автоматты өсетін нөмір береді; PRIMARY KEY — осы өрісті бастапқы кілт етеді.

MySQL деректер типтері

MySQL-де бүтін санды сақтауға арналған БЕС түрлі тип бар — олардың айырмашылығы жады көлемінде:

ТипТаңбалы диапазон
TINYINT−128 – 127 (1 байт)
SMALLINT−32768 – 32767
INT−2147483648 – 2147483647
BIGINTӨте үлкен (8 байт)
💾
Жады үнемдеу ережесі: MySQL типке қарай 1 байттан (TINYINT) 8 байтқа (BIGINT) дейін жады бөледі — нақты керек мөлшерге сай ЕҢ КІШІ типті таңдаған дұрыс.

Мәтіндік типтердің де екі негізгісі бар:

ТипСипаттамасы
CHAR(n)БЕКІТІЛГЕН ұзындықты жол (мыс. ел коды), бос орынмен толтырылады
VARCHAR(n)АЙНЫМАЛЫ ұзындықты жол, толтырылмайды
TEXT255 таңбадан ҰЗЫН мәтін үшін (макс. 65 535 таңба)

Ал уақыт (даталық) типтер:

ТипФормат
DATEYYYY-MM-DD
DATETIMEYYYY-MM-DD HH:MI:SS
YEARYYYY
Есеп (қиын): тұлға кестесін жобалау

Берілді: тұлға туралы ақпарат (аты-тегі, жынысы, туған күні, мекенжайы).

Неге «мекенжай» бір өріс болмайды? Жобалау кезінде «мекенжай» секілді ҚҰРАМДЫ өрісті бөлшектеу керек — көше/қала/облыс/ел бөлек өрістерге бөлінеді, себебі кейін ТЕК қаласы бойынша іздеу керек болуы мүмкін.

CREATE TABLE person (
    person_id SMALLINT UNSIGNED,
    fname VARCHAR(20),
    lname VARCHAR(20),
    gender CHAR(1),
    birth_date DATE,
    city VARCHAR(20),
    country VARCHAR(20),
    CONSTRAINT pk_person PRIMARY KEY (person_id)
);

Түсіндірме: CONSTRAINT pk_person PRIMARY KEY (person_id)person_id өрісін бастапқы кілт етіп белгілейтін шектеу.

Деректерді енгізу мен алу
Команда
INSERT INTO — кестеге жаңа жазба қосады. SELECT — жазбаларды алады/көрсетеді.
⚠️
Деректерді енгізу ережелері: жол (мәтін) мәндер БІР ТЫРНАҚШАҒА алынады ('Домбыра'); сандық мәндер ТЫРНАҚШАСЫЗ (2); күн мәні 'ГГГГ-АА-КК' форматында, тырнақшамен.
Есеп (орта): жазба енгізу
INSERT INTO instruments VALUES
    (1, 'Dombyra', 'Shertpeli', '2018-12-25', 2, 'dombra.jpg');

Барлық жазбаны көру:

SELECT * FROM instruments;
🎯 ҰБТ байланысы
SQL негізгі командаларының синтаксисі мен деректер типтерінің дұрыс таңдалуы жиі тексеріледі.
1
CHAR — бекітілген ұзындық, VARCHAR — айнымалы ұзындық.
2
INSERT-те жол мәндер тырнақшамен, сан мәндер тырнақшасыз жазылады.
3
AUTO_INCREMENT + PRIMARY KEY — автоматты бірегей кілт жасайды.
Сабақ қорытындысы
  • MySQL + Apache + PHP — веб-негізді деректер қорымен жұмыс істеу үшін керек негізгі құралдар.
  • CREATE DATABASE — ДҚ құру, CREATE TABLE — кесте құру командалары.
  • INT, VARCHAR, DATE — сандық, мәтіндік, күн типтерінің негізгі мысалдары.
  • INSERT INTO — жазба қосу, SELECT — жазбаны алу командалары.