SQL va MySQL: farqi nimada?
SQL va MySQL'ni farqlash har bir yangi boshlovchini chalg'itadi. Bu qo'llanma real misollar va loyiha kodi yordamida ular qanday birga ishlashini ko'rsatib, masalani bir yo'la oydinlashtiradi.
Muallif: Ekene Eze
SQL va MySQL: farqi nimada?
SQL (Structured Query Language) — relational ma'lumotlar bazalari bilan ishlash uchun qo'llaniladigan standart til. MySQL esa SQL buyruqlarini tushunadigan va bajaradigan open source ma'lumotlar bazasi tizimi. Ammo gap faqat shu bilan tugamaydi. Ularning nomlari doim adashtiriladi va agar endigina boshlayotgan bo'lsangiz, nimani o'rganish kerakligi, har biri nima qilishi va real loyihalarda ular qanday birga ishlashini tushunib olish chalkash bo'lishi mumkin.
Ushbu qo'llanmada sizni ularning asosiy farqlari bilan tanishtiraman, har biridan qachon va nima uchun foydalanish kerakligini tushuntiraman hamda real ilovalarda ular qanday birgalikda ishlashini ko'rsataman.
Agar siz SQL'ni o'rganmoqchi bo'lgan yangi boshlovchi yoki karyerasining boshidagi dasturchi bo'lsangiz, roadmap.sh'dagi SQL asoslarni o'rganish uchun ajoyib joy. Murakkabroq mavzularga o'tish uchun roadmap.sh taklif qiladigan SQL kursiga nazar tashlang.
Quyida SQL va MySQL'ning qisqacha yonma-yon taqqoslanishi keltirilgan
SQL va MySQL o'rtasidagi farqlar
| SQL | MySQL |
|---|---|
| Relational Database Management System'larni (RDBMS) boshqarish uchun mo'ljallangan dasturlash tili. | SQL'dan foydalanadigan relational database management system. |
| Ma'lumotlar bazalaridagi ma'lumotlarga query yuborish va ularni qayta ishlash uchun ishlatiladi. | Ma'lumotlarni tartibli tarzda saqlash, o'chirish, o'zgartirish va olish imkonini beradi. |
| Oddiy standartga amal qiladi va muntazam yangilanib turmaydi. | Ko'plab variantlarga ega va muntazam yangilanib turadi. |
| Dasturlash tili bo'lgani uchun litsenziyalashga bo'ysunmaydi. | Open-source ma'lumotlar bazasi; shu sababli bepul, lekin qo'shimcha imkoniyatlarga ega premium yoki tijoriy versiyalari ham bo'lishi mumkin. |
SQL'ga oid asosiy atamalar
SQL va MySQL ta'riflarini muhokama qilishdan oldin, ushbu qo'llanmada ishlatiladigan ba'zi asosiy atamalar bilan tanishib olishingiz kerak.
Ma'lumotlar bazasi
Ma'lumotlar bazasi — elektron shaklda saqlanadigan va ma'lumotlarga oson murojaat qilish mumkin bo'ladigan tarzda tuzilgan ma'lumotlarning tartiblangan to'plami.
Relational Database Management System (RDBMS)
Relational database management system ma'lumotlar bazasidagi ma'lumotlarni boshqa ma'lumotlarga bo'lgan bog'liqligi asosida aniqlash va ularga murojaat qilish imkonini beradi. U qayta ishlash va query'larni samarali qilish uchun ma'lumotlarni jadvallardagi satr va ustunlarda saqlaydi.
Storage engine
Storage engine — database management system ma'lumotlar bazasidagi ma'lumotlarni yaratish, o'qish va yangilash uchun foydalanadigan dasturiy ta'minot.
Open source
Open source dasturiy ta'minotning kodi ochiq bo'lib, undan istalgan kishi foydalanishi, uni o'zgartirishi yoki tarqatishi mumkin.

SQL nima?
SQL — Structured Query Language'ning qisqartmasi. Bu Oracle, PostgreSQL, MySQL va SQL Server Express kabi relational ma'lumotlar bazalari bilan ishlash uchun qo'llaniladigan standart data query tili. Ma'lumotlarni olish, qo'shish va o'zgartirish uchun yoziladigan ko'pchilik database query'lari SQL syntax'iga asoslanadi.

Agar database administrator yoki dasturchi bo'lib ishlasangiz, SQL sizga ma'lumotlarni yaratish, o'qish, yangilash va o'chirish imkonini beradi — bular CRUD operatsiyalari deb ham ataladi. Shuningdek, SQL'dan ma'lumotlar bazasi unumdorligini qo'llab-quvvatlash va optimallashtirish uchun ham foydalanishingiz mumkin.
Aytaylik, to'rtta ustunli — userid, firstname, lastname and age — quyidagi ko'rinishdagi Users jadvali berilgan:

Quyidagi buyruq yordamida SQL orqali jadvaldagi barcha foydalanuvchilarni olishingiz mumkin:
SELECT * FROM Users;
Yuqoridagi kod Users jadvalidagi barcha ma'lumotlarni oladigan oddiy SQL statement. Biroq barcha ma'lumotlar o'rniga jadvaldan faqat muayyan ustunlarni ham olishingiz mumkin. Quyidagi kod parchasi Users jadvalidagi har bir foydalanuvchining FirstName va LastName qiymatlarini qanday olishni ko'rsatadi.
SELECT FirstName, LastName FROM Users;
Query natijasi quyidagicha ko'rinadi:

SQL'ning xususiyatlari
Bu bo'limda SQL'ning eng o'ziga xos xususiyatlaridan ba'zilarini ko'rsatamiz, jumladan:

- Tushunish oson: SQL SELECT, CREATE va UPDATE kabi tanish inglizcha fe'llardan foydalanadi, bu esa uning syntax'ini hatto dasturchi bo'lmaganlar uchun ham intuitiv qiladi. Ustun va jadvallar odatda ma'noli nomlarga ega bo'ladi, SQL statement'larini esa inglizcha gaplar kabi o'qish mumkin.
CREATE TABLE Users (UserId int, FirstName varchar(255), LastName varchar(255));
Yuqoridagi kodda, hatto texnik bilimga ega bo'lmagan ingliz tilida so'zlashuvchi ham, shunchaki o'qib, SQL statement nima qilayotganini tushuna oladi. U UserId, FirstName va LastName ustunlariga ega Users nomli jadval yaratadi.
-
Yuqori unumdorlik: SQL ma'lumotlarni qisqa vaqt ichida qo'shish, o'zgartirish va o'chirish imkonini beradi. Shuningdek, undan katta hajmdagi ma'lumotlarni tez va samarali olish uchun ham foydalanish mumkin.
-
Portability: SQL'dan MySQL, PostgreSQL, Microsoft SQL Server va boshqa ko'plab RDBMS'larda foydalanish mumkin.
-
Xavfsizlik: SQL database management system'dagi muayyan ma'lumotlarni faqat ruxsat berilgan foydalanuvchilar ko'ra olishini ta'minlab, ma'lumotlar bazasi tizimlarining xavfsizligini ta'minlaydi. Masalan, foydalanuvchining jadvalga kirishini taqiqlamoqchi bo'lsangiz, quyidagi koddan foydalanishingiz mumkin:
REVOKE SELECT ON Salaries FROM 'user123'@'localhost';
MySQL nima?
MySQL — Oracle'ga tegishli open source relational database management system. U ma'lumotlarni satr va ustunlardan iborat jadvallarda saqlaydi va boshqaradi hamda query'larni bajarish uchun SQL'dan foydalanadi.
MySQL'ning xususiyatlari
MySQL'ning asosiy xususiyatlari quyidagilar:

- Open source: MySQL — open source RDBMS. Undan bepul foydalanishingiz va source code'ini ehtiyojlaringizga moslab o'zgartirishingiz mumkin.
- Cross-platform moslik: MySQL Linux, Windows va UNIX operatsion tizimlari kabi turli platformalarda ishlay oladi.
- Muntazam yangilanish va rivojlanish: MySQL tuzatishlar va muntazam yangilanishlarni taqdim etadigan ulkan dasturchilar hamjamiyatiga ega.
- Vositalar: MySQL workbench ma'lumotlar bazalarini boshqarish uchun GUI taqdim etadi.
Ular real loyihalarda qanday namoyon bo'ladi?
Real loyiha ustida ishlaganingizda, masalan, e-commerce ilovasini yaratib, buyurtma va foydalanuvchi ma'lumotlarini saqlashda, MySQL kabi ma'lumotlar bazasi tizimini tanlashingiz kerak bo'ladi. Backend service'ingizni MySQL ma'lumotlar bazasiga ulashingiz va xom SQL buyruqlarini yozishingiz yoki Object Relation Mapper'dan (ORM) foydalanishingiz kerak bo'ladi.
Keling, Python yordamida yaratilgan oddiy CRUD ilovasida SQL va MySQL qanday birgalikda ishlashini ko'rib chiqamiz.
-
Avvalo kerakli vositalarni o'rnatib, muhitingizni sozlashingiz kerak. Zarur vositalar quyidagilar:
- Python (3.8+ versiya)
- MySQL server
- pip (Python package manager)
- MySQL ma'lumotlar bazasiga ulanish uchun MySQL driver
MySQL driver'ni o'rnatish uchun quyidagi buyruqni ishga tushiring:
pip install mysql-connector-python -
Keyin ma'lumotlar bazangizning foydalanuvchi nomi va parolidan foydalanib, MySQL ma'lumotlar bazangizga ulanish yarating. So'ngra
application.pynomli fayl yarating va unga quyidagi kodni joylashtiring.import mysql.connector db = mysql.connector.connect( host="localhost", user="<username>", password="<password>" ) -
Quyidagi kod yordamida
usersDatabasema'lumotlar bazasini yarating:cursor = db.cursor() cursor.execute("CREATE DATABASE usersDatabase")Yuqoridagi kodda ma'lumotlar bazasini yaratish uchun SQL buyrug'i ko'rsatilgan bo'lib, uni MySQL driver bajaradi.
-
So'ngra quyidagi kodda ko'rsatilganidek,
Create TableSQL buyrug'i yordamidaUsersjadvalini yarating.cursor.execute("CREATE TABLE users (id int, firstName VARCHAR(255), lastName VARCHAR(255))") -
Keyin
Usersjadvaliga yozuv qo'shing:db = mysql.connector.connect( host="localhost", user="<yourusername>", password="<yourpassword>", database="usersDatabase" ) cursor = db.cursor() sqlStatement = "INSERT INTO users (id, firstName, lastName) VALUES (%s, %s, %s)" value = (1, "John", "Doe") cursor.execute(sqlStatement, value) db.commit()Yuqoridagi kodda
Usersjadvaliga qiymat qo'shadigan SQL buyrug'iINSERT INTObilan belgilanadi vacursor.execute(...)yordamida bajariladi. Kodning qolgan qatorlari Python MySQL driver'iga xos. Nihoyat, o'zgarishlarni MySQL ma'lumotlar bazasiga kiritish uchundb.commit()chaqiriladi; aks holda ma'lumotlar bazaga yozilmaydi. -
Keling,
Usersjadvalidan foydalanuvchi ma'lumotlarini o'qiymiz. Buning uchun quyidagi kodda ko'rinib turganidek,SELECTstatement'idan foydalanamiz:db = mysql.connector.connect( host="localhost", user="<yourusername>", password="<yourpassword>", database="usersDatabase" ) cursor = db.cursor() cursor.execute("SELECT * FROM users") result = cursor.fetchall() print(result)Yuqoridagi kodda MySQL ma'lumotlar bazasidagi
Usersjadvalidan SQL yordamida foydalanuvchilarni olamiz va natijani console'ga chiqaramiz. -
Foydalanuvchi ma'lumotlarini SQL'ning
UPDATEstatement'i yordamida yangilashimiz mumkin. Buning uchun kod quyida ko'rsatilgan:db = mysql.connector.connect( host="localhost", user="<yourusername>", password="<yourpassword>", database="usersDatabase" ) cursor = db.cursor() sql = "UPDATE users SET firstName = 'Jane' WHERE id = 1" cursor.execute(sql) db.commit()Yuqoridagi koddagi SQL buyrug'i
UPDATE,SETvaWHERESQL statement'lari yordamida ma'lumotlar bazasini yangilash uchun ishlatiladi. -
Ma'lumotlarni o'chirish uchun SQL'ning
DELETEstatement'idan foydalanamiz.db = mysql.connector.connect( host="localhost", user="<yourusername>", password="<yourpassword>", database="usersDatabase" ) cursor = db.cursor() sql = "DELETE FROM users WHERE id = 1" cursor.execute(sql) db.commit()
SQL va MySQL'dan kichikdan tortib yirik miqyosdagi ilovalargacha foydalanishingiz mumkin, masalan:
- Foydalanuvchi ma'lumotlarini MySQL ma'lumotlar bazasida saqlaydigan veb-sayt
- Buyurtmalar, ombor zaxiralari va foydalanuvchilarni MySQL ma'lumotlar bazasida saqlaydigan e-commerce sayt
- Har kuni amalga oshirilgan yetkazib berishlar sonini MySQL ma'lumotlar bazasida saqlaydigan logistika ilovasi
MySQL va SQL'ning muqobillari
Loyihangizga qarab, MySQL'dan boshqa relational database management system'dan foydalanishni xohlashingiz mumkin. Boshqa mashhur tizimlar qatoriga quyidagilar kiradi:
- PostgreSQL: Ishonchliligi, scalability'si va ochiq texnik standartlarni qo'llab-quvvatlashi bilan tanilgan mashhur open source RDBMS.
- Microsoft SQL Server: Microsoft'ning mustahkam, enterprise darajadagi RDBMS'i.
- Oracle database: Yirik miqyosdagi ilovalar uchun ishlatiladigan kuchli ma'lumotlar bazasi tizimi. Undan foydalanish uchun tijoriy litsenziya talab qilinadi.
- Amazon Aurora: AWS tomonidan boshqariladigan cloud'ga asoslangan ma'lumotlar bazasi tizimi.
- MariaDB: MySQL'ning bevosita o'rnini bosadigan open source relational ma'lumotlar bazasi. U MySQL'ni yaratgan dasturchilarning o'zlari tomonidan ishlab chiqilgan.
- SQLite: Kichik miqyosdagi ilovalar uchun mos, yengil, faylga asoslangan ma'lumotlar bazasi.
Agar SQL'ga asoslangan ma'lumotlar bazalarining muqobillarini o'rganayotgan bo'lsangiz, NoSQL yoki graph ma'lumotlar bazalariga e'tibor qaratishingiz mumkin. Keng tarqalgan non-relational ma'lumotlar bazalaridan ba'zilari:
- MongoDB: Ma'lumotlarni JSON formatlarida saqlaydigan document ma'lumotlar bazasi. U moslashuvchan schema'ga ega va query operatsiyalari uchun SQL'dan foydalanmaydi.
- Redis: Ma'lumotlarni key-value juftliklarida saqlaydigan in-memory store. U ko'pincha keshlash va real time analytics uchun ishlatiladi.
- Neo4j: Ma'lumotlarni jadvallar yoki hujjatlar o'rniga node'lar, relationship'lar va property'lar sifatida saqlaydigan graph ma'lumotlar bazasi.
To'g'ri ma'lumotlar bazasi tizimini tanlash
To'g'ri ma'lumotlar bazasi tizimini tanlash nimani yaratayotganingiz, jamoangiz ehtiyojlari va qanday ma'lumotlar bilan ishlayotganingizga bog'liq. Loyihangiz uchun to'g'ri ma'lumotlar bazasi tizimini tanlashda quyidagi omillarni hisobga olish kerak.
-
Ma'lumotlar tuzilmasi va turi: Dasturchi sifatida ma'lumotlaringiz qanday tuzilganini va entity'laringiz o'rtasidagi bog'lanishlarni bilishingiz kerak. Agar o'zaro bog'langan entity'lar ko'p bo'lsa, masalan many-to-many yoki one-to-many relationship'lar mavjud bo'lsa, relational ma'lumotlar bazalarini ko'rib chiqishingiz kerak, ammo asosan one-to-one relationship'lar bo'lsa, document ma'lumotlar bazasi yetarli.
-
Query murakkabligi: Agar ma'lumotlaringiz murakkab bo'lsa va ularni join'lar yoki subquery'lar yordamida birlashtirmoqchi bo'lsangiz, relational ma'lumotlar bazalaridan foydalanishni ko'rib chiqishingiz kerak. Biroq oddiy entity'lar ustida oddiy CRUD operatsiyalarini bajarayotgan yoki key orqali murojaat qilayotgan bo'lsangiz, document ma'lumotlar bazalarini tanlaganingiz ma'qul.
-
Narx va litsenziyalash: Bu hisobga olinishi kerak bo'lgan muhim omil, chunki u resurslaringizni boshqarishga yordam beradi. Kichik va o'rta hajmdagi ilovalar ustida ishlayotgan bo'lsangiz, ma'lumotlar bazasi tizimlarining open-source versiyalaridan foydalanish kifoya. Agar ko'proq imkoniyatlar va yuqoriroq xavfsizlik darajasi kerak bo'lsa, litsenziyalangan versiya yaxshiroq tanlov.
-
Dasturchining tajribasi: Shuningdek, ma'lumotlar bazasi tizimlari bilan qanchalik tanish ekaningizni ham hisobga olishingiz kerak. SQL'ni bilsangiz, boshqa relational ma'lumotlar bazalari bilan ishlash sizga osonroq bo'ladi. Qaysi ma'lumotlar bazasi tizimidan foydalanishga qaror qilsangiz ham, u bilan yaxshi tanish ekaningizga ishonch hosil qiling
Avval nimani o'rganish kerak: SQL'nimi yoki MySQL'nimi?
SQL'dan boshlashingiz kerak, chunki u asos hisoblanadi va uni bilganingizdan so'ng istalgan relational database management system bilan ishlay olasiz. SQL syntax'i ingliz tilida so'zlashuvchilar uchun tushunarli, shuning uchun u database management'ni o'rganishda ko'pincha birinchi qadam bo'ladi.
SQL asoslarini bilib olganingizdan so'ng MySQL'ni o'rganishga o'tishingiz mumkin. MySQL bo'yicha bilimlaringizni PostgreSQL, Microsoft SQL Server va boshqa relational ma'lumotlar bazasi tizimlariga ham ko'chira olasiz.
Keyin nima qilish kerak: samarali o'quv yo'liga amal qiling
SQL va MySQL'ni o'rganish dastlab juda og'ir tuyulishi mumkin, ammo hammasini birdaniga mukammal egallashingiz shart emas. Shuningdek, SQL va MySQL o'rtasida tanlov qilishingiz ham shart emas. SQL'dan boshlab, asosiy buyruqlarni o'rganishingiz mumkin, keyin esa MySQL'ga o'tganingizda u sizga tushunarli bo'ladi.
SQL'ni o'rganish sizni istalgan relational database management system, jumladan MySQL bilan ishlashga tayyorlaydi. SQL va MySQL real ilovada qanday birga ishlashini allaqachon ko'rdingiz. Endi roadmap'ning SQL yo'nalishiga amal qilib, ko'proq narsani o'rganishingiz mumkin. SQL'ni mukammal egallash bo'yicha keng qamrovli kurs uchun roadmap'ning SQL kursini ham ko'rib chiqishingiz mumkin.