2-bo‘lim
MySQL bilan ishlashni boshlash
XAMPP orqali MySQL ni ishga tushirish, konsol va phpMyAdmin, birinchi baza yaratish va SQL yozuv qoidalari.
Ushbu bo‘lim mundarijasi
Nazariyadan amaliyotga o'tamiz. Bu bo'lim oxirida sizda ishlaydigan ma'lumotlar bazasi bo'ladi.
MySQL ni ishga tushirish #
XAMPP allaqachon o'rnatilgan bo'lsa:
- XAMPP Control Panel ni oching
- MySQL qatoridagi
Starttugmasini bosing - Holat yashil rangga aylanishi kerak
Eng ko'p uchraydigan sabab - 3306-port band. Yechimlari:
- Boshqa MySQL/MariaDB o'rnatilgan bo'lsa, uni to'xtating
- Skype yoki boshqa dastur portni egallagan bo'lishi mumkin
- XAMPP
Config→my.inida portni 3307 ga o'zgartiring
Xato jurnalini Logs tugmasi orqali ko'rishingiz mumkin.
Ikki xil ishlash usuli #
Konsol orqali ulanish #
cd C:\xampp\mysql\bin
mysql -u root
Parol o'rnatilgan bo'lsa:
mysql -u root -p
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.4.32-MariaDB
MariaDB [(none)]>
Har safar cd C:\xampp\mysql\bin yozmaslik uchun bu papkani tizim PATH iga qo'shing.
Shundan keyin istalgan joydan mysql -u root deb yozish yetarli bo'ladi.
Windows: Win + R → sysdm.cpl → Advanced → Environment Variables
→ Path → Edit → New → C:\xampp\mysql\bin
phpMyAdmin orqali #
Brauzerda http://localhost/phpmyadmin manzilini oching. Bu grafik interfeys - jadvallarni ko'rish, tahrirlash va so'rovlarni sinash uchun qulay.
phpMyAdmin qulay, lekin u SQL ni yashiradi - tugmalarni bosasiz, so'rov o'zi yoziladi. Konsolda esa har bir so'rovni o'zingiz yozasiz va shu orqali tilni haqiqatan o'rganasiz.
Amalda ham ishlab chiqarish serverlarida phpMyAdmin bo'lmaydi - faqat konsol.
Birinchi buyruqlar #
-- Mavjud bazalar ro'yxati
SHOW DATABASES;
-- Yangi baza yaratish
CREATE DATABASE maktab
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- Baza bilan ishlashni boshlash
USE maktab;
-- Joriy bazadagi jadvallar
SHOW TABLES;
-- Joriy baza nomi
SELECT DATABASE();
-- MySQL versiyasi
SELECT VERSION();
-- Bazani o'chirish (ehtiyot bo'ling!)
DROP DATABASE maktab;
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| phpmyadmin |
+--------------------+
4 rows in set (0.002 sec)
utf8mb4 ni albatta ko'rsating-- YOMON: o'zbekcha harflar buzilishi mumkin
CREATE DATABASE maktab;
-- YAXSHI
CREATE DATABASE maktab
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
MySQL dagi eski utf8 to'liq emas - u faqat 3 baytli belgilarni qo'llab-quvvatlaydi.
utf8mb4 esa emojilar va barcha Unicode belgilarini to'g'ri saqlaydi.
O'zbek lotin alifbosidagi o', g' belgilari va Kirill yozuvi uchun bu majburiy.
SQL yozuv qoidalari #
-- 1. Har bir buyruq nuqta-vergul bilan tugaydi
SELECT * FROM talabalar;
-- 2. Kalit so'zlar registrga sezgir emas
select * from talabalar; -- ishlaydi
SELECT * FROM talabalar; -- lekin shunday yozish qabul qilingan
-- 3. Bir necha satrga bo'lish mumkin
SELECT ism, yosh
FROM talabalar
WHERE yosh > 20
ORDER BY ism;
-- 4. Izohlar
-- Bir satrli izoh
# MySQL da bu ham ishlaydi
/* Ko'p
satrli izoh */
| Element | Uslub | Misol |
|---|---|---|
| Kalit so'zlar | KATTA harf | SELECT, FROM, WHERE |
| Jadval va ustun nomlari | kichik harf | talabalar, tugilgan_sana |
| So'zlar orasi | pastki chiziq | oxirgi_kirish |
| Jadval nomi | ko'plikda | talabalar, buyurtmalar |
Bu majburiy emas, lekin kodni ancha o'qishli qiladi.
MariaDB [maktab]> SELECT * FROM talabalar
->
->
-> belgisi "buyruq hali tugamadi" degani. Nuqta-vergul qo'yib Enter bosing.
Buyruqni butunlay bekor qilish uchun \c yozing.
Ishchi bazamizni yaratish #
Butun darslik davomida maktab bazasi bilan ishlaymiz:
CREATE DATABASE IF NOT EXISTS maktab
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE maktab;
Birinchi jadvalni yaratamiz:
CREATE TABLE talabalar (
id INT AUTO_INCREMENT PRIMARY KEY,
ism VARCHAR(120) NOT NULL,
yosh INT,
shahar VARCHAR(60),
baho DECIMAL(4,1)
);
Tekshiramiz:
SHOW TABLES;
DESCRIBE talabalar;
+------------------+
| Tables_in_maktab |
+------------------+
| talabalar |
+------------------+
+--------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| ism | varchar(120) | NO | | NULL | |
| yosh | int(11) | YES | | NULL | |
| shahar | varchar(60) | YES | | NULL | |
| baho | decimal(4,1) | YES | | NULL | |
+--------+--------------+------+-----+---------+----------------+
Ma'lumot qo'shamiz:
INSERT INTO talabalar (ism, yosh, shahar, baho) VALUES
('Husanboy Qodirov', 25, 'Namangan', 4.6),
('Sardor Aliyev', 25, 'Toshkent', 3.8),
('Malika Yusupova', 21, 'Buxoro', 4.9),
('Bekzod Rasulov', 23, 'Toshkent', 3.2);
Va birinchi so'rovimizni yozamiz:
SELECT * FROM talabalar;
+----+------------------+------+-----------+------+
| id | ism | yosh | shahar | baho |
+----+------------------+------+-----------+------+
| 1 | Husanboy Qodirov | 25 | Namangan | 4.6 |
| 2 | Sardor Aliyev | 25 | Toshkent | 3.8 |
| 3 | Malika Yusupova | 21 | Buxoro | 4.9 |
| 4 | Bekzod Rasulov | 23 | Toshkent | 3.2 |
+----+------------------+------+-----------+------+
4 rows in set (0.001 sec)
Tabriklaymiz - siz ma'lumotlar bazasi bilan ishlashni boshladingiz!
Foydali konsol buyruqlari #
| Buyruq | Vazifasi |
|---|---|
SHOW DATABASES; | Bazalar ro'yxati |
USE baza; | Bazani tanlash |
SHOW TABLES; | Jadvallar ro'yxati |
DESCRIBE jadval; | Jadval tuzilmasi |
SHOW CREATE TABLE jadval; | To'liq yaratish so'rovi |
SELECT DATABASE(); | Joriy baza |
STATUS; | Ulanish ma'lumotlari |
\c | Buyruqni bekor qilish |
exit; yoki \q | Chiqish |
Ustunlar ko'p bo'lsa jadval buzilib ketadi. ; o'rniga \G yozing:
SELECT * FROM talabalar WHERE id = 1\G
*************************** 1. row ***************************
id: 1
ism: Husanboy Qodirov
yosh: 22
shahar: Samarqand
baho: 4.6
SQL faylini bajarish #
Uzun so'rovlarni faylga yozib, keyin bajarish qulay:
maktab.sql:
CREATE DATABASE IF NOT EXISTS maktab
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE maktab;
CREATE TABLE talabalar (
id INT AUTO_INCREMENT PRIMARY KEY,
ism VARCHAR(120) NOT NULL,
yosh INT,
shahar VARCHAR(60),
baho DECIMAL(4,1)
);
INSERT INTO talabalar (ism, yosh, shahar, baho) VALUES
('Husanboy Qodirov', 25, 'Namangan', 4.6),
('Sardor Aliyev', 25, 'Toshkent', 3.8);
Bajarish:
mysql -u root < maktab.sql
Yoki konsol ichidan:
SOURCE D:/loyihalar/maktab.sql;
SQL fayllarini loyihangizda versiya nazoratida saqlang. Shunda:
- Bazani istalgan kompyuterda bir buyruq bilan tiklash mumkin
- O'zgarishlar tarixi ko'rinadi
- Jamoadagilar bir xil tuzilma bilan ishlaydi
Bu darslikdagi barcha misollarni bitta .sql faylda to'plab boring.
- XAMPP da MySQL ni ishga tushiring.
- Konsol orqali ulaning va
SHOW DATABASES;bajaring. kutubxonanomli baza yarating (utf8mb4bilan).- Unda
kitoblarjadvalini yarating:id,nomi,muallif,yil,sahifalar. DESCRIBEbilan tuzilmani tekshiring.- Kamida 5 ta kitob qo'shing.
SELECT * FROM kitoblar;bilan hammasini chiqaring.- Barcha buyruqlarni
kutubxona.sqlfayliga saqlang va uni qaytadan bajarib ko'ring. - phpMyAdmin da ham shu bazani oching - farqni ko'ring.
Xulosa #
- MySQL XAMPP Control Panel orqali ishga tushiriladi.
- Konsol (
mysql -u root) va phpMyAdmin - bir xil bazaga ikki xil kirish yo'li. - Baza yaratishda
utf8mb4ni ko'rsatish o'zbekcha matn uchun majburiy. - Har bir SQL buyrug'i nuqta-vergul bilan tugaydi.
- Kalit so'zlar KATTA, jadval nomlari kichik harfda yozish - qabul qilingan uslub.
SHOW,USE,DESCRIBE- eng ko'p ishlatiladigan yordamchi buyruqlar.- SQL fayllarini saqlab borish bazani istalgan vaqtda tiklash imkonini beradi.
Keyingi bo'limda ma'lumot turlari va jadval yaratishni batafsil o'rganamiz.
O‘qish tarixini saqlamoqchimisiz?
Tizimga kirsangiz, tugatgan bo‘limlaringiz saqlanadi va qoldirgan joyingizdan davom etasiz.
Xatolik topdingizmi?
Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.