MySQL kursi
Eng mashhur relational database. SQL, jadvallar, munosabatlar va optimizatsiya.
Boshlang'ich · 60 ta dars · ~5 hafta
Mavzular: SQL asoslari, CRUD, JOIN, Subquery, Index, Transaction, Stored Procedure, Trigger, View, Optimization
Kirish va O'rnatish
- MySQL nima? Relational DB tushunchasi, boshqa DB lar bilan farqi
- O'rnatish — Windows, Mac, Linux, Docker bilan
- MySQL Workbench va CLI — asosiy ishlatish
- Ma'lumot turlari — INT, VARCHAR, TEXT, DATE, BOOLEAN, ENUM, JSON
DDL — Tuzilma Boshqarish
- CREATE DATABASE, CREATE TABLE — sintaksis va qoidalar
- Constraints — PRIMARY KEY, NOT NULL, UNIQUE, DEFAULT, CHECK
- FOREIGN KEY — CASCADE, SET NULL, RESTRICT
- ALTER TABLE — ustun qo'shish, o'zgartirish, o'chirish. DROP
DML — Ma'lumot Boshqarish
- INSERT — bir va bir nechta qator, INSERT IGNORE, ON DUPLICATE KEY
- SELECT — WHERE, AND, OR, NOT, BETWEEN, IN, LIKE, IS NULL
- ORDER BY, LIMIT, OFFSET — saralash va sahifalash
- UPDATE va DELETE — shartlar bilan, xavfli holatlar
- Aggregate funksiyalar — COUNT, SUM, AVG, MIN, MAX
- GROUP BY va HAVING — guruhlash va filtrlash
JOIN va Munosabatlar
- INNER JOIN — ikkita jadval birlashtirish
- LEFT JOIN, RIGHT JOIN — farqi va qachon ishlatiladi
- FULL JOIN, CROSS JOIN, SELF JOIN
- One-to-Many munosabat — loyihalash va so'rovlar
- Many-to-Many munosabat — junction table, so'rovlar
- One-to-One munosabat — qachon kerak
Subquery va CTE
- Subquery — WHERE, FROM, SELECT ichida
- Correlated Subquery — EXISTS, NOT EXISTS
- CTE — WITH, rekursiv CTE
- UNION, UNION ALL, INTERSECT, EXCEPT
Funksiyalar
- String funksiyalar — CONCAT, LENGTH, SUBSTRING, REPLACE, TRIM
- Number funksiyalar — ROUND, CEIL, FLOOR, MOD, ABS
- Date funksiyalar — NOW, DATE_FORMAT, DATEDIFF, DATE_ADD
- Conditional — IF, CASE WHEN, COALESCE, NULLIF, IFNULL
- Window Functions — ROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD
Index va Performance
- Index nima, qanday ishlaydi, qachon kerak
- Index turlari — PRIMARY, UNIQUE, COMPOSITE, FULLTEXT
- EXPLAIN va EXPLAIN ANALYZE — so'rovni tahlil qilish
- Slow Query Log — sekin so'rovlarni topish
- Query optimizatsiya — N+1, covering index, qoidalar
- Table Partitioning — katta jadvallarni bo'lish
Transaction va Qulflar
- Transaction — ACID, BEGIN, COMMIT, ROLLBACK
- Isolation Levels — READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE
- Locking — Row lock, Table lock, Deadlock va yechimi
- SAVEPOINT — qisman rollback
View, Stored Procedure, Trigger
- VIEW — yaratish, yangilash, o'chirish, qachon kerak
- Stored Procedure — IN, OUT, INOUT parametrlar
- Stored Function — Procedure dan farqi, qachon ishlatiladi
- Trigger — BEFORE, AFTER, INSERT, UPDATE, DELETE
- Event Scheduler — avtomatik vazifalar
- Cursor — satr-satr ishlash
Ma'lumotlar Bazasini Loyihalash
- Normalizatsiya — 1NF, 2NF, 3NF, BCNF
- Denormalizatsiya — qachon va nima uchun
- ER Diagram — jadvallar va munosabatlarni chizish
- Naming Convention va Schema Design best practices
Xavfsizlik va Boshqaruv
- User yaratish, GRANT, REVOKE — huquqlarni boshqarish
- SQL Injection — qanday ishlaydi, qanday himoyalanish
- Backup va Restore — mysqldump, mysqlpump
- Replication — Master-Slave, asoslar
- Connection Pool — nima uchun kerak, sozlash
MySQL va Dasturlash Tillari
- Node.js — mysql2 moduli, CRUD, parametrli so'rovlar
- Node.js — Transaction, xatolarni boshqarish
- Sequelize ORM — model, migration, association
- Prisma ORM — schema, migration, CRUD
- TypeORM — entity, repository, relation
- Real loyiha — to'liq DB schema loyihalash va yozish