{"id":26924084,"url":"https://github.com/temirovuz/sql_about","last_synced_at":"2026-05-16T17:40:38.186Z","repository":{"id":250560385,"uuid":"834792899","full_name":"temirovuz/SQL_About","owner":"temirovuz","description":"SQL haqida uzbekcha talqinda SQLdagi barcha kerakli buyruqlarni nima vazifani bajarishi haqida malumot va misollar keltirilgan. Hurmat bilan Temirov Muhammad :)","archived":false,"fork":false,"pushed_at":"2024-08-03T07:57:58.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-08T21:37:24.966Z","etag":null,"topics":["mysql","postgresql","sql"],"latest_commit_sha":null,"homepage":"https://temirov.uz/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/temirovuz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-28T11:32:10.000Z","updated_at":"2024-08-07T09:23:55.000Z","dependencies_parsed_at":"2025-10-08T21:37:26.489Z","dependency_job_id":"efc84e90-1094-4f37-9320-820ce33173d0","html_url":"https://github.com/temirovuz/SQL_About","commit_stats":null,"previous_names":["temirovuz/sql_about"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/temirovuz/SQL_About","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temirovuz%2FSQL_About","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temirovuz%2FSQL_About/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temirovuz%2FSQL_About/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temirovuz%2FSQL_About/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/temirovuz","download_url":"https://codeload.github.com/temirovuz/SQL_About/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/temirovuz%2FSQL_About/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33112493,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mysql","postgresql","sql"],"created_at":"2025-04-02T01:53:11.214Z","updated_at":"2026-05-16T17:40:38.168Z","avatar_url":"https://github.com/temirovuz.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e **SQL (Structured Query Language)** - bu ma'lumotlar bazasi bilan ishlash uchun mo'ljanlangan dasturlash tili.\n\u003e SQL yordamida ma'lumotla bazasida ma'lumotlarni yaratish o'zgargartirish qidirish va o'chirish mumkin.\n\n__________\n\n\u003e **Ma'lumotlar bazasi (Database)** - bu ma'lumotlarni tizimli ravishda saqlash boshqarish va ulardan foydalanish uchun\n\u003e mo'ljallangan tuzilma. Ma'lumotlar bazasi yordamida katta hajmli ma'lumotlarni samarali saqlash qidirish va ulardan\n\u003e foydalanish imkoniyatini yaratadi.\n\n____\n\n\u003e **SQL va MyAQL o'rtasidagi farq**\n\u003e * **SQL** — bu ma'lumotlar bazasi bilan ishlash uchun til.\n\u003e * **MySQL** — bu SQL tilini qo'llab-quvvatlaydigan ma'lumotlar bazasini boshqarish tizimi.\n\n### SQL quidagicha asosiy buyruqlarni o'z ichiga oladi.\n\n| SQL so'rovi         | So'rov tarifi                                                                                                                                                           | Misol                                                                                                                                                |\n|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **SELECT**          | Bir yoki bir nechta jadvallardan ma'lumotlarni oladi.                                                                                                                   | **SELECT** name **FROM** users;                                                                                                                      |\n| **INSERT**          | Jadvalga yangi malumot qo'shadi.                                                                                                                                        | **INSERT INTO** users (name, age) **VALUES** ('Muhammad', 23);                                                                                       |\n| **UPDATE**          | Jadvaldagi mavjud malumotni o'zgartiradi.                                                                                                                               | **UPDATE** users **SET** age 31 **WHERE** name = 'Muhammad';                                                                                         |\n| **DELETE**          | Jadvaldan malumotni olib tashlaydi.                                                                                                                                     | **DELETE FROM** users **WHERE** name = 'Muhammad';                                                                                                   |\n| **CREATE TABLE**    | Ma'lumotlar bazasida yangi jadval yaratadi.                                                                                                                             | **CREATE TABLE** users (id INT PRIMARY KEY, name VARCHAR(100), age INT);                                                                             |\n| **ALTER TABLE**     | Mavjud jadval o'zgartiradi. Yangi column qoshadi yiki mavjud columni o'chiradi                                                                                          | **ALTER TABLE** users **ADD** email= 'temirov-muhammad@mail.ru';                                                                                     |\n| **DROP TABLE**      | Jadvalni o'chiradi.                                                                                                                                                     | **DROP TABLE** users;                                                                                                                                |\n| **CREATE DATABASE** | SQLda yangi ma'lumotlar bazasini yaratadi                                                                                                                               | **CREATE DATABASE** temirov;                                                                                                                         |\n| **DROP DATABASE**   | Ma'lumotlar bazasini o'chiradi.                                                                                                                                         | **DROP DATABASE** temirov;                                                                                                                           |\n| **WHERE**           | Ma'lumotlarni filtrlaydigan shartlarni belgilash uchun ishlatiladi.                                                                                                     | **SELECT** name **FROM** users **WHERE** age \u003e 20;                                                                                                   |\n| **ORDER BY**        | Ma'lumotlarni tartiblash uchun ishlatiladi.                                                                                                                             | **SELECT** name **FROM** users **ORDER BY** name ASC-DESC;                                                                                           |\n| **GROUP BY**        | Maa'lumotlarni guruhlash uchun ishlatiladi. COUNT, SUM, AVG, MAX, MIN bilan birgalikda qo'llaniladi.                                                                    | **SELECT** name **COUNT(*) AS** count_users **FROM** users **GROUP BY** name;                                                                        |\n| **HAVING**          | klauzasi agregat funksiyalar COUNT, SUM, AVG, MAX, MIN yordamida hisoblangan qiymatlar asosida filtr qo'yish imkonini beradi.                                           | **SELECT** name **COUNT(*) AS** count_users **FROM** users **GROUP BY** name **HAVING COUNT(*) \u003e 1**;                                                |\n| **INNER JOIN**      | Ikki jadvalni umumiy ustunlar bo'yicha birlashtiradi va faqat mos keladigan qatorlarni qaytaradi                                                                        | **SELECT** users.name, orders.amount **FROM** users **INNER JOIN** orders **ON** users.id = orders.user.id;                                          |\n| **LEFT JOIN**       | Birinchi jadvaldagi barcha qatorlarni qaytaradi va ikkinchi jadvaldan mos keladigan qatorlarni qaytaradi.                                                               | **SELECT** users.name, orders.amount **FROM** users **LEFT JOIN** orders **ON** users.id = orders.user.id;                                           |\n| **RIGHT JOIN**      | Ikkinchi jadvaldagi barcha qatorlarni qaytaradi va birinchi jadvaldan mos keladigan qatorlarni qaytaradi.                                                               | **SELECT** users.name, orders.amount **FROM** users **RIGHT3 JOIN** orders **ON** users.id = orders.user.id;                                         |\n| **CROSS JOIN**      | Ikkala jadvaldagi har bir qator kombinatsiyasini qaytaradi (Kartezian mahsuloti).                                                                                       | **SELECT** users.name, sciences.name **FROM** users **CROSS JOIN** sciences;                                                                         |\n| **FULL OUTER JOIN** | Birinchi va ikkinchi jadvallardagi barcha qatorlarni qaytaradi.                                                                                                         | **SELECT** users.name, orders.amount **FROM** users **FULL OUTER JOIN** orders **ON** users.id = orders.user.id;                                     |\n| **UNION**           | Birlashtirilgan natijalar to'plamida faqat noyob (distinct) qatorlarni qaytaradi.                                                                                       | **SELECT** name, birthday **FROM** users **UNION SELECT** name, birthday **FROM** students;                                                          |\n| **UNION ALL**       | Birlashtirilgan natijalar to'plamida hamma qatorlarni qaytaradi. Ikkalasidagini hammasini.                                                                              | **SELECT** name, birthday **FROM** users **UNION ALL SELECT** name, birthday **FROM** students;                                                      |\n| **SUBQUERY**        | Subquery asosiy so'rov uchun kerakli ma'lumotlarni olishda yordam beradi va odatda SELECT, INSERT, UPDATE, yoki DELETE buyrug'ida qo'llaniladi.                         | **SELECT** age **FROM** users **WHERE** age = (**SELECT MAX(age)** **FROM** users);                                                                  |\n| **EXISTS**          | Subquery natijalarining mavjudligini tekshirish va murakkab so'rovlarni bajarish uchun kuchli vositadir.                                                                | **SELECT** name **FROM** users s **WHERE EXISTS** (**SELECT 1** **FROM** students s **WHERE** u.student_id = s.student_id);                          |\n| **ANY**             | SQLda subquery natijalari bilan mos keladigan qatorlarni tanlashda foydali va moslashuvchan vositadir                                                                   | **SELECT** name **FROM** users s **WHERE** student_id =  **AYN(SELECT student_id** **FROM** students s **WHERE** u.grades \u003e 80);                     |\n| **ALL**             | Subquerydan qaytarilgan barcha qiymatlar bilan solishtirish uchun ishlatiladi.                                                                                          | **SELECT** name **FROM** users s **WHERE** student_id =  **ALL(SELECT student_id** **FROM** students s **WHERE** u.grades \u003e 80);                     |\n| **LIKE**            | Satrlarni belgilangan shablon yoki naqshga mos kelishini tekshirish uchun ishlatiladi. Bu operator ko'pincha SELECT, UPDATE, DELETE va WHERE klauzalarida qo'llaniladi. | **SELECT** name **FROM** users **WHERE** name **LIKE** 'A%';                                                                                         |\n| **IN**              | Biror ustun qiymatining biror to'plam yoki subquerydan qaytarilgan natijalar orasida mavjudligini tekshirish uchun ishlatiladi.                                         | **SELECT** name **FROM** users **WHERE** name **IN**('Muhammad', 'Temur')';                                                                          |\n| **BETWEEN**         | Ikki chegaraviy qiymatlar oralig'ida (inclusive) joylashganligini tekshirish uchun ishlatiladi.                                                                         | **SELECT** name **FROM** users **WHERE** age **BETWEEN** 20 **AND** 35;                                                                              |\n| **LIMIT**           | So'rov natijalaridan qaytariladigan qatorlar sonini cheklash uchun samarali vositadir.                                                                                  | **SELECT** name **FROM** users **LIMIT** 5;                                                                                                          |\n| **OFFSET**          | Natija to'plamining qaysi qatorlardan boshlab olinishi kerakligini belgilaydi..                                                                                         | **SELECT** name **FROM** users **LIMIT** 5 **OFFSET** 2;                                                                                             |\n| **TRUNCATE TABLE**  | Jadvaldagi barcha qatorlarni tez va samarali tarzda o'chirish uchun ishlatiladi.                                                                                        | **TRUNCATE TABLE** users;                                                                                                                            |\n| **CASE**            | Shartli mantiqni amalga oshirish uchun ishlatiladi. U shartlar asosida turli natijalarni qaytarishga imkon beradi.                                                      | **SELECT** name, grades **CASE WHEN** grades = 5 **THEN** 'Excellent' **CASE WHEN** grades = 4 **THEN** 'Good' **ELSE** 'Bad' **END FROM** students; |\n\n\u003e **SQLda** foydalanuvchi tomonidan aniqlangan **funksiyalar (user-defined functions, UDF)** yordamida ma'lum bir\n\u003e hisob-kitob yoki operatsiyalarni qayta-qayta bajarish uchun kod yozish mumkin. Bu funksiyalar sizga murakkab\n\u003e hisob-kitoblarni yoki ma'lumotlarni manipulyatsiya qilishni soddalashtirishga yordam beradi.\n\u003e ![Test-javobini-%-da-hisoblash](https://github.com/user-attachments/assets/7f2b788a-e58a-4a65-a97d-d2a9f9acde37)\n\u003e ![Test-javobini-%-da-hisoblash (1)](https://github.com/user-attachments/assets/dd8948b3-cdeb-48aa-a546-ee1b9b5a3942)\n\u003e ![NATIJA-github com_temirovuz](https://github.com/user-attachments/assets/128290ef-e577-437b-ad89-17db7009827f)\n\n\n\u003e **View**'lar murakkab so'rovlarni **soddalashtirish** va ulardan **qayta foydalanishni osonlashtirish** uchun\n\u003e ishlatiladi. Misol uchun, ko'p jadvalni birlashtirib yoki murakkab shartlar bilan filtrlaydigan so'rovni har safar\n\u003e yozmasdan, bitta view orqali amalga oshirish mumkin.\n\n![View-example](https://github.com/user-attachments/assets/175faa3e-369a-4151-b4e8-840f1eaf3fc5)\n\n\u003e **Transaction Control Language (TCL)** SQLning bir qismi bo'lib, **transactionlarni** boshqarish uchun ishlatiladi.\n\u003e Transaction — bu bir nechta SQL buyruqlari to'plamidir, ular bitta birlik sifatida bajariladi. Transactionlar\n\u003e ma'lumotlar bazasida bir qator operatsiyalarni amalga oshiradi va ular **muvaffaqiyatli** bajarilgan taqdirda barcha\n\u003e o'zgarishlar **doimiy bo'ladi** yoki **biror xato yuz berganda** barcha o'zgarishlar **bekor** qilinadi.\n\n![Bank-Hisoblaridan-Pul-O'tkazish (1)](https://github.com/user-attachments/assets/142e2b66-2a3e-45b6-9af9-01e729bf22ba)\n\n\u003e **Stored Procedure** — bu SQL buyruqlari va **mantiqiy kodlar to'plami** bo'lib, **bir marta yaratiladi** va\n\u003e keyinchalik **ko'p marta chaqirilishi** mumkin. Stored Procedurelar ma'lumotlar bazasida saqlanadi va SQL Server yoki\n\u003e boshqa DBMS (ma'lumotlar bazasi boshqarish tizimi) tomonidan bajariladi.\n\n![Stored-Procedure-yaratishva-chaqirish-github com_temirovuz](https://github.com/user-attachments/assets/2ca299c3-f928-45f3-bbc9-842379f430af)\n\n\u003e **Aggregat funksiyalar** SQL'da bir nechta satrlarni **bitta umumiy natijaga birlashtirish** uchun ishlatiladigan\n\u003e funksiyalardir. Bu funksiyalar odatda **statistik** yoki **yig'indi ma'lumotlarni** chiqarish uchun ishlatiladi.\n\n1. **COUNT()** - satrlar sonini hisoblash.\n1. **SUM()** - ustundagi qiymatlar yig'indisini hisoblash.\n1. **AVG()** - stundagi qiymatlar o'rtachasini hisoblash.\n1. **MIN()** - ustundagi eng kichik qiymatni topish.\n1. **COUNT** - ustundagi eng katta qiymatni topish.\n\n![Aggregate-funksiyalar-github com_temirovuz](https://github.com/user-attachments/assets/cf276604-1be5-4ae3-b1d6-f5e042f9acda)\n## [🗯TELEGRAM](https://t.me/temirov)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemirovuz%2Fsql_about","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftemirovuz%2Fsql_about","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftemirovuz%2Fsql_about/lists"}