Asosiy sql buyruqlari. Ma'lumotlarga kirish mexanizmi. Strukturaviy so'rovlar tili SQL. SQL tarixi va standartlari. Oracle serveri tomonidan SQL buyruqlarini qayta ishlash. O'chirish so'rovlari

Relyatsion ma'lumotlar bazalari va jadvallar haqidagi har qanday kontseptual ma'lumotlar faqat ma'lumotlar bilan qanday ishlashni bilsangiz foydali bo'ladi. SQL tili ma'lumotlar bazasiga ma'lumotlarni qo'shish, o'zgartirish va o'chirish uchun tuzilgan buyruqlardan iborat. Ushbu buyruqlar PostgreSQL serveri bilan ishlash uchun asos bo'lib xizmat qiladi.

Ushbu bo'lim SQL buyruqlarining "anatomiyasi" haqida. U buyruqlarning strukturaviy tarkibiy qismlarini o'rganadi, har bir komponentning funktsiyalarini va ularning o'zaro munosabatlarini tavsiflaydi. Standart PostgreSQL buyruq qatori mijozi, psql, berilgan misollardagi buyruqlar natijalarini chop etadi.

Ko'pgina SQL buyruqlar misollari Booktown ma'lumotlar bazasiga xosdir. Barcha psql chiqishi booktown=# shakli bilan prefikslangan.

Ba'zi misollar testdb test ma'lumotlar bazasidan foydalanadi. Odatiy bo'lib, psql so'rovi faqat ma'lumotlar bazasi nomini va =# belgilarini ko'rsatadi, bu tizim yangi buyruq berishga tayyorligini bildiradi (garchi SQL kiritish holati kuzatilganda = belgisi dinamik ravishda o'zgarishini ko'rasiz). Kitob psql mijoz chiqishi bilan qulay bo'lishingizga yordam berish uchun SQL kiritish va chiqish bilan birga ushbu so'rovni taqdim etadi.

Psql mijozi 4-bobda batafsil tavsiflangan. Bu yerda faqat SQL buyruqlari misollarining uslubini aniqlashtirish uchun aytilgan.

Eslatma
Booktown ma'lumotlar bazasi sxemasi (misol yozuvlari bilan birga) CDdagi booktown.sql faylida joylashgan. Ushbu ma'lumotlar bazasini o'rnatish uchun buyruq satriga psql - U postgres shablonini kiriting. - f /mnt/cdrom/booktown.sql, bu erda /mnt/cdrom - o'rnatilgan CDga yo'l va postgres - PostgreSQL super foydalanuvchi nomi.
.

SQL buyruqlar anatomiyasi

SQL buyruqlari har doim harakat (fe'l) bilan boshlanadi - bajarilayotgan operatsiyani tavsiflovchi so'z yoki so'zlar guruhi. Bundan tashqari, SQL buyrug'i odatda uning ma'nosini aniqlaydigan bir yoki bir nechta bo'limlarni o'z ichiga oladi. Jadvalda 3.2 SQL ning asosiy harakatlarini sanab o'tadi.

3.2-jadval. Asosiy PostgreSQL harakatlari.

Harakat tavsifi
MA'LUMOTLAR BAZASI YARATING Yangi ma'lumotlar bazasini yaratish
INDEKS YARATING Jadval ustunida yangi indeks yaratish
TARTIBLIK YARATING Mavjud ma'lumotlar bazasida yangi ketma-ketlikni yaratish
JADVAL YARATISH Mavjud ma'lumotlar bazasida yangi jadval yaratish
TRIGGER YARATISH Yangi tetik ta'rifini yarating
KOʻRISH YARATISH Mavjud jadval uchun yangi ko'rinish yarating
TANLASH Jadvaldan yozuvlarni tanlash
KIRITMOQ Jadvalga bir yoki bir nechta yangi yozuvlarni kiritish
YANGILANISH Mavjud yozuvlardagi ma'lumotlarni o'zgartirish
OʻCHIRISH Jadvaldan mavjud yozuvlarni olib tashlash
TO'CHIRISH MA'LUMOTLAR BAZASI Mavjud ma'lumotlar bazasini yo'q qilish
DROP INDEX Mavjud jadvaldan ustun indeksini olib tashlash
TO'CHIRISH TARTIBI Mavjud ketma-ketlik generatorini yo'q qilish
JADVALNI QILISH Mavjud jadvalni yo'q qilish
TRIGGERNI TO'CHIRISH Mavjud tetik ta'rifini yo'q qilish
KO'RISH Mavjud ko'rinishni yo'q qilish
FOYDALANUVCHI YARATING Tizimda yangi PostgreSQL foydalanuvchi hisobini yaratish
FOYDALANUVCHI ALTER Mavjud PostgreSQL foydalanuvchi hisobini o'zgartirish
FOYDALANUVCHI TO'CHIRISH Mavjud PostgreSQL foydalanuvchi hisobini o'chirish
Grant Ma'lumotlar bazasi ob'ektiga kirish huquqini berish
BEKOR QILISh Ma'lumotlar bazasi ob'ektiga kirish huquqlarini olib tashlash
FUNKSIYA YARATISH Ma'lumotlar bazasida yangi SQL funksiyasini yaratish
TILI YARATING Ma'lumotlar bazasida yangi til ta'rifini yaratish
OPERATOR YARATISH Ma'lumotlar bazasida yangi SQL bayonotini yaratish
TUR YARATING Ma'lumotlar bazasida yangi SQL ma'lumotlar turini yaratish

Strukturalangan so'rovlar tili 1970-yillarning boshida IBM tomonidan ishlab chiqilgan. 1986 yilda SQL birinchi marta ANSI tashkilotlari tomonidan standartlashtirildi.

SQL ma'lumotlar bazasini boshqarish uchun kuchli va ayni paytda oddiy tildir. Bu deyarli barcha zamonaviy ma'lumotlar bazalari tomonidan qo'llab-quvvatlanadi. SQL ikkita buyruqlar to'plamiga bo'linadi: DDL (ma'lumotlarni aniqlash tili) va DML (ma'lumotlarni manipulyatsiya qilish tili). DDL buyruqlari yangi ma'lumotlar bazalari, jadvallar va ustunlar yaratish uchun, DML buyruqlari esa ma'lumotlarni o'qish, yozish, saralash, filtrlash, o'chirish uchun ishlatiladi.

Ushbu maqolada DML buyruqlari batafsil ko'rib chiqiladi, chunki ular tez-tez ishlatiladi.

DDL buyruqlari

CREATE - yangi jadvallar, ustunlar va indekslar yaratish uchun ishlatiladi.

DROP - ustunlar va indekslarni olib tashlash uchun ishlatiladi.

ALTER - jadvallarga yangi ustunlar qo'shish va ma'lum ustunlarni o'zgartirish uchun ishlatiladi.

DML buyruqlari

SELECT - eng ko'p ishlatiladigan buyruq va ma'lumotlar bazasi jadvalidan ma'lumotlar to'plamini olish uchun ishlatiladi. SELECT buyrug'i quyidagi sintaksisga ega:

TANLASH maydon_roʻyxati1 FROM jadval_nomi ]

Kvadrat qavs ichidagi operatorlar ixtiyoriy va vertikal satr belgilangan iboralardan biri mavjud bo'lishi kerakligini anglatadi, lekin ikkalasi ham emas.

Masalan, "do'stlar" jadvalining "ism" va "telefon" maydonlaridan ma'lumotlarni olish uchun oddiy so'rov yarataylik:

TANLASH ism, telefon FROM do'stlar

Agar siz jadvalning barcha maydonlarini olishingiz kerak bo'lsa, ularni ro'yxatga kiritish shart emas, shunchaki yulduzcha (*) qo'ying:

TANLASH * FROM do'stlar

Ko'rsatilgan ro'yxatdagi takroriy yozuvlarni chiqarib tashlash uchun DISTINCT kalit so'zidan foydalaning:

DISTINCT TANLASH nomi FROM do'stlar

Agar siz alohida yozuvni olishingiz kerak bo'lsa, WHERE bandi ishlatiladi. Masalan, biz "do'stlar" jadvalidan "Vasya Pupkin" telefon raqamini olishimiz kerak:

TANLASH * FROM do'stlar QAYERDA nomi = "Vasya qovoq"

yoki aksincha, 44-65-01 telefoni kimga tegishli ekanligini aniqlashimiz kerak:

TANLASH * FROM do'stlar QAYERDA telefon = "44-65-01"

Bundan tashqari, siz joker belgilardan foydalanishingiz mumkin, shu bilan qidiruv naqshlarini yaratishingiz mumkin. Buning uchun LIKE operatoridan foydalaniladi. LIKE operatorida quyidagi almashtirish operatorlari mavjud:

* - bir yoki bir nechta belgilardan iborat qatorga mos keladi;

Har qanday belgiga mos keladi;

Muayyan to'plamdagi bitta belgiga mos keladi;

Masalan, "Vasya" so'zini o'z ichiga olgan "ism" maydonidan yozuvlarni olish uchun so'rov quyidagicha ko'rinadi:

dan * dan tanlang do'stlar QAYERDA nomi LIKE "*Vasya*"

ORDER BY bandi ma'lumotlarni qaytarish tartibini aniqlash uchun ishlatiladi. Ushbu operatorsiz qaytarilgan ma'lumotlarning tartibini oldindan aytib bo'lmaydi. ASC va DESC kalit so'zlari saralash yo'nalishini aniqlash imkonini beradi. ASC o'sish tartibida, DESC esa kamayish tartibida tartiblaydi.

Misol uchun, alifbo tartibida "nom" maydonidan yozuvlar ro'yxatini olish so'rovi quyidagicha ko'rinadi:

dan * dan tanlang do'stlar Buyurtma berish nomi

E'tibor bering, ASC kalit so'zi shart emas, chunki u sukut bo'yicha.

INSERT - bu buyruq jadvalga yangi yozuv qo'shish uchun ishlatiladi. U quyidagicha yozilgan:

INSERT INTO jadval_nomi QIYMATLAR ( qiymat_roʻyxati)

E'tibor bering, qiymatlar ro'yxatidagi qiymat turlari jadval maydonlarining qiymat turlariga mos kelishi kerak, masalan:

INSERT INTO do'stlar QIYMATLAR ( "Anka pulemyotchi", "32-09-81" )

Ushbu misol ko'rsatilgan qiymatlar bilan do'stlar jadvaliga yangi yozuv qo'shadi.

UPDATE - Bu buyruq jadvaldagi ma'lumotlarni yangilash uchun ishlatiladi va ko'pincha WHERE bandi bilan birgalikda ishlatiladi. UPDATE buyrug'i quyidagi sintaksisga ega:

YANGILANISH jadval_nomi SET maydon_nomi = ma'nosi

Agar siz WHERE bandini o'tkazib yuborsangiz, jadvaldagi barcha belgilangan maydonlardagi ma'lumotlar yangilanadi. Masalan, Vasya Pupkunning telefon raqamini o'zgartiramiz:

YANGILANISH do'stlar SET telefon = "55-55-55" QAYERDA nomi = "Vasya qovoq"

DELETE - siz allaqachon tushunganingizdek, bu buyruq jadvaldagi yozuvlarni o'chirish uchun ishlatiladi. UPDATE kabi, DELETE buyrug'i odatda WHERE bandi bilan ishlatiladi; agar bu band o'tkazib yuborilsa, belgilangan jadvaldagi barcha ma'lumotlar o'chiriladi. DELETE buyrug'i sintaksisi quyidagicha:

OʻCHIRISH jadval_nomi

Masalan, keling, bu zerikarli Vasya Qovoqni stolimizdan olib tashlaymiz :) :

OʻCHIRISH do'stlar QAYERDA nomi = "Vasya qovoq"

Yakun

Ushbu maqolada men SQL-ning asosiy operatorlari haqida gapirdim, ular ma'lumotlar bazalari bilan ishlash uchun etarli; Qolgan operatorlar haqida boshqa safar batafsilroq gaplashaman.

SQL yoki Strukturaviy so'rovlar tili - relyatsion ma'lumotlar bazasi tizimidagi (RDBMS) ma'lumotlarni boshqarish uchun ishlatiladigan til. Ushbu maqolada har bir dasturchi bilishi kerak bo'lgan tez-tez ishlatiladigan SQL buyruqlari ko'rib chiqiladi. Ushbu material ish intervyusidan oldin SQL bo'yicha bilimlarini oshirishni istaganlar uchun juda mos keladi. Buni amalga oshirish uchun maqolada keltirilgan misollarni ko'rib chiqing va ma'lumotlar bazalarini juftlikda o'rganganingizni unutmang.

E'tibor bering, ba'zi ma'lumotlar bazasi tizimlari har bir bayonot oxirida nuqta-vergulni talab qiladi. Nuqtali vergul SQL-dagi har bir bayonotning oxiri uchun standart ko'rsatkichdir. Misollar MySQL-dan foydalanadi, shuning uchun nuqta-vergul qo'yilishi kerak.

Misollar uchun ma'lumotlar bazasini o'rnatish

Jamoalar qanday ishlashini ko'rsatish uchun ma'lumotlar bazasini yarating. Ishlash uchun ikkita faylni yuklab olishingiz kerak bo'ladi: DLL.sql va InsertStatements.sql. Shundan so'ng, terminalni oching va MySQL konsoliga quyidagi buyruq yordamida kiring (maqolada MySQL tizimda allaqachon o'rnatilgan deb taxmin qilinadi):

Mysql -u root -p

Keyin parolingizni kiriting.

Quyidagi buyruqni bajaring. Keling, ma'lumotlar bazasini "universitet" deb ataymiz:

MA'LUMOTLAR BAZASINI YARATING universitet; USE universiteti; MANBA; SOURCE Ma'lumotlar bazalari bilan ishlash buyruqlari1. Mavjud ma'lumotlar bazalarini ko'rish MA'LUMOT BAZALARINI KO'RSATISH; 2. Yangi ma'lumotlar bazasini yaratish CREATE DATABASE; 3. USE dan foydalanish uchun ma'lumotlar bazasini tanlash; 4. .sql faylidan SQL buyruqlarini import qilish SOURCE ; 5. Ma'lumotlar bazasini o'chirish DROP DATABASE ; Jadvallar bilan ishlash 6. SHOW TABLES ma'lumotlar bazasida mavjud jadvallarni ko'rish;

7. Yangi jadval yaratish CREATE TABLE ( , , PRIMARY KEY (), FOREIGN KEY () REFERANSLAR ()); CREATE TABLE dan foydalanishda yaxlitlik cheklovlari

Jadvaldagi ma'lum ustunlar uchun cheklovlar yaratishingiz kerak bo'lishi mumkin. Jadvalni yaratishda siz quyidagi cheklovlarni o'rnatishingiz mumkin:

  • jadval katakchasi NULL qiymatiga ega bo'lishi mumkin emas;
  • birlamchi kalit - PRIMARY KEY (col_name1, col_name2, ...) ;
  • chet el kaliti - FOREIGN KEY (col_namex1, …, col_namexn) REFERANSLAR jadval_nomi(col_namex1, …, col_namexn) .

Siz bir nechta asosiy kalitlarni belgilashingiz mumkin. Bunday holda siz kompozit asosiy kalitni olasiz.

Misol

"Instruktor" jadvalini yarating:

CREATE TABLE instruktor (ID CHAR(5), nomi VARCHAR(20) NOT NULL, dept_name VARCHAR(20), maosh NUMERIC(8,2), PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERENCES bo'limi(dept_name));

8. Jadval ma'lumotlari

Jadval ustunlari haqidagi turli ma'lumotlarni (qiymat turi, kalit yoki yo'q) quyidagi buyruq yordamida ko'rishingiz mumkin:

TA'SFRI BERING;

9. Jadvalga ma'lumotlarni qo'shish INSERT INTO (, , , …) VALUES (, , , …);

Jadvaldagi har bir ustunga ma'lumot qo'shsangiz, ustun nomlarini ko'rsatishingiz shart emas.

QIYMATLARGA QO'SHISH (, , , ...);

10. Jadval ma'lumotlarini yangilash UPDATE SET = , = , ... QAYERDA ; 11. Jadvaldagi barcha ma'lumotlarni o'chirish DELETE FROM ; 12. Jadvalni olib tashlash DROP TABLE ; So'rovlar yaratish buyruqlari13. TANLASH

SELECT ma'lum bir jadvaldan ma'lumotlarni olish uchun ishlatiladi:

SELECT , , ... FROM ;

Quyidagi buyruq jadvaldagi barcha ma'lumotlarni ko'rsatishi mumkin:

SELECT * FROM ;

14. DISTINCT ni tanlang

Jadval ustunlari ikki nusxadagi ma'lumotlarni o'z ichiga olishi mumkin. Faqat takrorlanmaydigan ma'lumotlarni olish uchun SELECT DISTINCT-dan foydalaning.

SELECT DISTINCT , , … FROM ;

15. QAYERDA

Soʻrovda shartlarni belgilash uchun SELECTda WHERE kalit soʻzidan foydalanishingiz mumkin:

TANLASH, , ... QAYERDAN;

So'rovda quyidagi shartlar ko'rsatilishi mumkin:

  • matnni taqqoslash;
  • raqamli qiymatlarni solishtirish;
  • mantiqiy operatorlar AND (va), OR (yoki) va EMAS (inkor).
Misol

Quyidagi buyruqlarni sinab ko'ring. QAYERDA ko'rsatilgan shartlarga e'tibor bering:

SELECT * FROM kurs WHERE dept_name=’Komp. Sci.'; * QAYoDA kursdan kredit>3 ni tanlang; TANLASH * Kursdan WHERE dept_name="Comp. Sci." VA kreditlari>3;

16. GRUP BY

GROUP BY operatori ko'pincha chiqish qiymatlarini guruhlash uchun COUNT, MAX, MIN, SUM va AVG kabi jamlash funktsiyalari bilan ishlatiladi.

TANLASH, , … GROUP BY dan;

Misol

Keling, har bir fakultet uchun kurslar sonini ko'rsatamiz:

COUNT (kurs_identifikatori), bo'lim_nomini kurs GROUP BY bo'lim_nomi bo'yicha TANGLASH;

17. EGA

HAVING kalit so'zi SQL ga qo'shildi, chunki WHERE ni yig'ish funktsiyalari bilan ishlatib bo'lmaydi.

, , ... GURUHDAN TANLASH ORQALI

Misol

Keling, bir nechta kursga ega bo'lgan fakultetlar ro'yxatini ko'rsatamiz:

COUNT (kurs_identifikatori), boʻlim_nomi SOYGAN (kurs_identifikatori) boʻlgan kurs GURUHI BOʻYICHA boʻlim_nomini tanlang>1;

18. Buyurtma berish

ORDER BY so'rov natijalarini kamayish yoki o'sish tartibida saralash uchun ishlatiladi. ORDER BY, agar ASC yoki DESC belgilanmagan bo'lsa, o'sish tartibida tartiblanadi.

TANLASH , , … TARTIBI BO’YICHA , , … ASC|DESC;

Misol

Kurslar roʻyxatini kreditlarning oʻsish va kamayish tartibida koʻrsatamiz:

TANLASH * Kurs TARTIBI BO'YICHA kreditlar; TANLASH * Kurs TARTIBI BO'YICHA kreditlar DESC;

19. Orasida

BETWEEN ma'lum diapazondan ma'lumotlar qiymatlarini tanlash uchun ishlatiladi. Raqamli va matn qiymatlari, shuningdek sanalardan foydalanish mumkin.

TANLASH , , … QERDAN VA O'RTASIDA ;

Misol

Keling, maoshi 50 000 dan ortiq, lekin 100 000 dan kam bo'lgan o'qituvchilar ro'yxatini ko'rsatamiz:

50000 dan 100000 gacha bo'lgan ish haqi instruktordan * TANLASH;

20. LAYK

LIKE operatori WHERE da shunga o'xshash qiymat uchun qidiruv sxemasini belgilash uchun ishlatiladi.

LIKE-da ikkita bepul operator qo'llaniladi:

  • % (hech biri, bir yoki bir nechta belgilar);
  • _ (bitta belgi).
TANLASH, , ... QERDAN LIKE; Misol

Nomlarida "to" bo'lgan kurslar ro'yxati va nomlari "CS-" bilan boshlanadigan kurslar ro'yxatini ko'rsatamiz:

* Kursdan ‘%to%’ sarlavhasini TANLASH; * Kursdan QAYERDA kurs_id "CS-___" LIKE NI TANLASH;

21. IN

IN dan foydalanib, WHERE bandi uchun bir nechta qiymatlarni belgilashingiz mumkin:

TANLASH , , … FROM WHERE IN (, , …);

Misol

Keling, Comp mutaxassisligi bo'yicha talabalar ro'yxatini ko'rsatamiz. Sci., Fizika va Elek. Ing.:

SELECT * FROM student WHERE dept_name IN ('Comp. Sci.', 'Fisics', 'Elect. Eng.');

22. QO'SHILING

JOIN ikki yoki undan ortiq jadvallarni umumiy atributlardan foydalangan holda ulash uchun ishlatiladi. Quyidagi rasmda SQL-ga qo'shilishning turli usullari ko'rsatilgan. Chap tashqi birlashma va o'ng tashqi birlashma o'rtasidagi farqga e'tibor bering:

TANLASH , , … JOIN ON = ;

1-misol

Biz barcha kurslar ro'yxatini va fakultetlar haqida tegishli ma'lumotlarni ko'rsatamiz:

TANLASH * Kursdan JOIN bo'limi ON course.dept_name=department.dept_name;

2-misol

Biz barcha kerakli kurslar ro'yxatini va ular haqida ma'lumotlarni ko'rsatamiz:

prereq.course_id, sarlavha, bo'lim_nomi, kreditlar, prereq_idni prereq FROM CHAP TAShQI QO'SHILMA kursini ON prereq.course_id=course.course_id;

3-misol

Biz barcha kurslar ro'yxatini, ular talab qilinadimi yoki yo'qmi, ko'rsatamiz:

Kurs.kurs_identifikatori, sarlavha, bo'lim_nomi, kreditlar, prereq_idni prereq FROM O'RGHT TAShQI JOIN kursidan TANILASH prereq.course_id=course.course_id;

23. Ko'rish

View - ifodani bajarish natijasida yaratilgan virtual SQL jadvali. U qatorlar va ustunlarni o'z ichiga oladi va oddiy SQL jadvaliga juda o'xshaydi. Ko'rish har doim ma'lumotlar bazasidan eng so'nggi ma'lumotlarni ko'rsatadi.

CREATE VIEW AS SELECT , , ... FROM WHERE yaratish; DROP VIEW ni olib tashlash; Misol

Keling, 3 kreditli kurslardan iborat ko'rinish yarataylik:

24. Agregat funktsiyalari

Ushbu funktsiyalar ko'rib chiqilayotgan ma'lumotlar bilan bog'liq umumiy natijani olish uchun ishlatiladi. Quyidagi agregat funktsiyalar keng tarqalgan:

  • COUNT (col_name) - qatorlar sonini qaytaradi;
  • SUM (col_name) - ushbu ustundagi qiymatlar yig'indisini qaytaradi;
  • AVG (col_name) - berilgan ustunning o'rtacha qiymatini qaytaradi;
  • MIN (col_name) - berilgan ustunning eng kichik qiymatini qaytaradi;
  • MAX (col_name) - berilgan ustunning eng katta qiymatini qaytaradi.
25. Ichki ichki so‘rovlar

Ichki quyi so'rovlar - bu SQL so'rovlari bo'lib, ular boshqa so'rovga kiritilgan SELECT , FROM va WHERE bandlarini o'z ichiga oladi.

Misol

Keling, 2009 yil kuzida va 2010 yil bahorida o'qitiladigan kurslarni topamiz:

SELECT DISTINCT course_id FROM bo'limi WHERE semestr = 'Kuz' AND year= 2009 AND course_id IN (SELECT course_id FROM bo'limi WHERE semestr = 'Bahor' AND year= 2010);

Kirill Pozdeev, tarjimon

Yandex xizmatlarni shaxsiylashtirish uchun ma'lumotlaringiz va mashina o'rganishingizdan qanday foydalanadi -.

SQL (ˈɛsˈkjuˈɛl; inglizcha strukturali so‘rovlar tili – “strukturalangan so‘rovlar tili”) relyatsion ma’lumotlar bazasidagi ma’lumotlarni yaratish, o‘zgartirish va boshqarish uchun ishlatiladigan deklarativ dasturlash tilidir.

Turli ma'lumotlar bazalari uchun SQL standartlariga muvofiqligi:

SQL (Structured Query Language - tuzilgan so'rovlar tili). SQL, birinchi navbatda, saqlangan ma'lumotlarni tavsiflash, saqlangan ma'lumotlarni olish va ma'lumotlarni o'zgartirish uchun mo'ljallangan axborot mantiqiy tilidir.

SQL dasturlash tili emas. SQL murakkablashgani sari u ko'proq amaliy dasturlash tiliga aylandi va foydalanuvchilar endi vizual so'rovlar quruvchilardan foydalanishlari mumkin.

SQL katta-kichik harflarni sezmaydigan tildir. SQL-dagi satrlar bitta tirnoq ichiga olingan.

SQL tili - bu bayonotlar to'plami. SQL bayonotlari quyidagilarga bo'linadi:

    Data Definition Language (DDL) - ANSIda sxemalarni tavsiflash tili, ma'lumotlar bazasida ob'ektlarni (jadvallar, indekslar, ko'rinishlar va boshqalar) yaratuvchi buyruqlardan iborat (CREATE, DROP, ALTER va boshqalar).

    Ma'lumotlarni manipulyatsiya qilish operatorlari (Data Manipulation Language, DML) istalgan vaqtda jadvallarda qanday qiymatlar taqdim etilishini aniqlaydigan buyruqlar to'plamidir (INSERT, DELETE, SELECT, UPDATE va boshqalar).

    ma'lumotlarga kirishni aniqlash bayonotlari (Data Control Language, DCL) - foydalanuvchiga ma'lum harakatlarni amalga oshirishga ruxsat berish yoki bermaslikni aniqlaydigan vositalardan iborat (TRANSFOR/REVOKE, LOCK/UNLOCK).

    Transaction Control Language (TCL) operatorlari

Afsuski, bu atamalar barcha ilovalarda universal ishlatilmaydi. Ular ANSI tomonidan ta'kidlangan va kontseptual darajada foydalidir, lekin ko'pchilik SQL dasturlari ularni alohida ko'rib chiqish uchun kam ish qiladi, shuning uchun ular SQL buyruqlarining funktsional toifalariga aylanadi.

QO'SHILISh bo'limini tanlang

    Oddiy JOIN (=kesishma JOIN =INNER JOIN) - faqat ikkala jadvalning umumiy yozuvlarini ko'rsatishni anglatadi. Yozuvlar qanday taqsimlangan deb hisoblanishi birlashma ifodasidagi maydonlar bilan belgilanadi. Masalan, quyidagi yozuv: FROM t1 JOIN t2 ON t1. id = t2. id

    Bu ikkala jadvalda mavjud bo'lgan bir xil identifikatorli yozuvlar ko'rsatilishini anglatadi.

    LEFT JOIN (yoki LEFT OUTER JOIN) chap jadvaldagi barcha yozuvlarni (birlashma ifodasida birinchi keladigan) o‘ng jadvalda mos yozuvlar mavjudligidan qat’iy nazar ko‘rsatishni bildiradi. Agar o'ng jadvalda hech qanday yozuv bo'lmasa, bo'sh qiymat NULL o'rnatiladi.

    RIGHT JOIN (yoki RIGHT OUTER JOIN) LEFT JOIN dan farqli ravishda ishlaydi - u o'ng (ikkinchi) jadvaldagi barcha yozuvlarni va faqat chap (birinchi) jadvalga mos keladiganlarni ko'rsatadi.

    JOIN birikmalarining boshqa turlari: MINUS - ayirish; FULL JOIN – to‘liq qo‘shilish; CROSS JOIN - "Har kim hamma bilan" yoki Dekart mahsuloti operatsiyasi.

SELECT JOIN SUBSTRING INSERT INTO users_auth VALUES (standart, "root" , MD5("root"));

    INSERT IGNORE Agar siz INSERT buyrug'ida bir nechta qiymatlarga ega bo'lgan qatorlar bilan IGNORE kalit so'zini belgilasangiz, ushbu jadvaldagi ASOSIY yoki UNIQUE kalitlari takrorlangan har qanday qatorlar e'tiborga olinmaydi va kiritilmaydi. Agar siz IGNORE ni belgilamasangiz, mavjud kalit uchun takroriy qiymatga ega bo'lgan qatorga duch kelganda, bu kiritish operatsiyasi to'xtatiladi.

NARXLAR QIYMATLARIGA E'BOR QILISHNI QO'SHISH (SUFORAT, 1, 1111, "Fr", 50, 50, 1, 1)

REPLACE buyrug'i INSERT buyrug'idan faqat shunisi bilan farq qiladiki, agar jadvalda indekslangan maydonda (noyob indeks) yangi yozuv bilan bir xil qiymatga ega yozuv mavjud bo'lsa, u holda eski yozuv yangisini qo'shishdan oldin o'chiriladi.

YANGILANISH< tablename>SET ( | ) .,. .< COLUMN name> = < VALUE expresslon>[QAYERDA< predlcate>| HOZIRGI QAYERDA< cursor name>(*faqat ilova uchun*) ] ; YANGILANISh tengdoshlari SET zonasi= "voip" ; # tengdoshlar jadvalining zona ustunidagi barcha satrlarni yangilash UPDATE stat SET whp= "13x13x13" WHERE id = 1 ; YANGILANISh mamlakatlari SET nm_ukr= ( SELECT del_countries. ukrain FROM del_countries WHERE mamlakatlar. nm_en= del_countries. english );

WordPress-dan foydalanish, sozlash: wp_posts jadvalida qatorning barcha holatlarini o'chirib tashlang

YANGILANISH wp_posts SET post_content = ALGILASH (post_content, "" , "" );

OʻCHIRISH

[ QAYERDA | WHERE CORRENT OF (*faqat ilova*) ];

Tengdoshlardan O'chirish; // Peers jadvalining barcha mazmunini o'chiradi. FinRDAN O'CHIRISH qayerda kun Like "20120415%"; // ratesheet_id YO'Q NARXLARDAN O'CHIRISH (tariflar jadvallaridan identifikatorni tanlang);

ALTER

    Ustun uchun standart qiymatni o'zgartirish. Ustun uchun yangi standart qiymat o'rnatish uchun quyidagi buyruqdan foydalaning: ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77 ; OR ALTER TABLE nases ALTER COLUMN zonasi SET DEFAULT "voip" ;

    E'tibor bering, ushbu buyruqni bajarish jadvaldagi mavjud qatorlarga ta'sir qilmaydi; buyruq faqat kelajakdagi INSERT buyruqlari uchun standart qiymatni o'zgartiradi. Har qanday standart qiymatni olib tashlash uchun foydalaning

    ALTER TABLE mahsulotlari ALTER COLUMN narxi DROP DEFAULT;

    Buyruq standart qiymatni null ga o'rnatish bilan bir xil ishni bajaradi. Standart qiymatni o'chirish uni nolga o'rnatganligi sababli, mavjud standart qiymat o'chirilsa, hech qanday xatolik haqida xabar berilmaydi.

    Ustun uchun standart qiymat sifatida ishlaydi. Bunday holda, vaqtni kuzatish ustunida vaqt tamg'asi ma'lumotlar turi mavjud, ya'ni uning standart qiymati o'rnatilgan now() funksiyasiga o'rnatilishi mumkin, ya'ni. ustunga yangi qator qo'shganda joriy sana va vaqt yoziladi ALTER TABLE timetracking ALTER COLUMN date_wd SET DEFAULT now();

    Cheklov qo'shish. Cheklov qo'shish uchun ushbu cheklovni belgilash uchun jadval sintaksisi qo'llaniladi. Masalan: ALTER TABLE mahsulotlari ADD CHECK (nomi ""); ALTER TABLE mahsulotlari QO'SHISH CHEKLASH ba'zi_nomlar UNIQUE (mahsulot_no); ALTER TABLE mahsulotlari CHETIY KALYT QO'SHISH (mahsulot_guruhi_identifikatori) MA'LUMOTLAR mahsulot_guruhlari;

    Jadval cheklovi sifatida yozilmaydigan bo'sh bo'lmagan cheklovni qo'shish uchun sintaksisdan foydalaning:

    ALTER TABLE mahsulotlari ALTER COLUMN product_no SET NOT NULL;

    Belgilangan cheklov darhol amalga oshiriladi, shuning uchun cheklovni qo'shishdan oldin jadvaldagi ma'lumotlar uni qondirishi kerak.

Birlashtirish funktsiyalari

Standart SQLda 5 ta agregat funksiya mavjud:

    COUNT - funktsiya ma'lum mezonlarga javob beradigan qatorlar sonini qaytaradi.,

    SUM - ma'lum bir ustundagi qiymatlarning yig'indisini (jami) qaytaradi. NULL qiymatli ustun qatorlari SUM funktsiyasi tomonidan e'tiborga olinmaydi.

    AVG - ustundagi o'rtacha qiymat,

Birlashtirish funktsiyalari SELECT so'rov bandida maydon nomlari sifatida ishlatiladi, bitta istisno: maydon nomlari argument sifatida ishlatiladi. SUM va AVG funksiyalari faqat raqamli maydonlar bilan ishlashi mumkin. COUNT, MAX, MIN funksiyalari raqamli va belgilar maydonlari bilan ishlaydi. Belgilar maydonlariga qo'llanilganda, MAX va MIN funktsiyalari belgilarning ASCII ekvivalentlari bilan ishlashi mumkin.

Count(Books.ID) AS [Kitoblar soni] FROM Kitoblardan SELECT;

CROUP BY dan foydalanish yozuvlar guruhlariga agregat funktsiyalarni qo'llash imkonini beradi.

Count(Books.ID) [Kitoblar soni] sifatida [Yozuvchi] GURUHIDAN TANGLASH;

Koʻrishlar (VIEW)

VIEW - bu ma'lumotlar ob'ekti bo'lib, uning egasi haqida hech qanday ma'lumotni o'z ichiga olmaydi. Bu so'rovni bajarish orqali mazmuni boshqa jadvallardan olinadigan jadval turi.

Asosiy jadvallar - bu ma'lumotlarni o'z ichiga olgan jadvallar. Biroq, jadvalning yana bir turi mavjud: - ko'rinishlar (VIEW). Ko'rinishlar - mazmuni tanlangan yoki boshqa jadvallardan olingan jadvallar. Ular so'rovlar va DML bayonotlarida xuddi asosiy jadvallar kabi ishlaydi, lekin o'z ma'lumotlarini o'z ichiga olmaydi. Ko'rinishlar aslida asosiy jadvalda saqlangan ma'lumotlarni ko'radigan oynalarga o'xshaydi.

    CREATE VIEW buyrug'i. Ko'rinish CREATE VIEW buyrug'i bilan yaratiladi. U CREATE VIEW so'zlaridan, yaratilishi kerak bo'lgan ko'rinishning nomidan, AS (QANDAY) so'zidan va so'ngra so'rovdan iborat. Londonstaff ko'rinishini yarataylik: CREATE VIEW Londonstaff AS SELECT * FROM Salespeople WHERE city = "London";

    Bu ko'rinish har qanday boshqa jadval kabi ishlatiladi. U boshqa jadvallar va ko'rinishlarga so'ralishi, o'zgartirilishi, kiritilishi, o'chirilishi va ularga qo'shilishi mumkin. Taqdim etish uchun so'rov.

    Ushbu ilova turli xil SQL buyruqlarining qisqartirilgan tavsiflarini o'z ichiga oladi. Maqsad sizga tez va aniq ma'lumotnoma va SQL ta'rifini berishdir.

    Ushbu ilovaning birinchi bo'limi SQL buyruqlarini yaratish uchun ishlatiladigan elementlarni belgilaydi; ikkinchisi - sintaksis tafsilotlari va buyruqlarning o'zlari qisqacha tavsiflangan jumlalar.

    Bu erda standart konventsiyalar (BNF shartlari deb ataladi):

  • Kalit so'zlar bosh harf bilan yoziladi.
  • SQL va boshqa maxsus shartlar burchakli qavslar ichiga olinadi va kursiv bilan yoziladi.()
  • Buyruqlarning ixtiyoriy qismlari kvadrat qavs ichida ([ va ]) olinadi.
  • Ellips (....) buyruqning oldingi qismi istalgan sonda takrorlanishi mumkinligini bildiradi.
  • Vertikal chiziq (|) o'zidan oldingi narsani keyingisi bilan almashtirish mumkinligini anglatadi.
  • Jingalak qavslar (( va )) boshqa belgilarni (masalan, vertikal chiziqlar yoki ellipslar) baholash uchun ularning ichidagi hamma narsani bir butun sifatida ko'rib chiqish kerakligini ko'rsatadi.
  • Ikki nuqta va teng belgisi (:: =) keyingi narsa o'zidan oldingi narsaning ta'rifi ekanligini bildiradi.

    Bunga qo'shimcha ravishda, biz keyingi ketma-ketlikni (.,..) ishlatamiz, undan oldingi narsa bir necha marta takrorlanishi mumkin, bunda alohida hodisalar vergul bilan ajratiladi. Rasmiy standartning bir qismi bo'lmagan atributlar tavsifda (*nostandart*) sifatida belgilanadi.

    DIQQAT: Biz bu yerda ishlatadigan terminologiya rasmiy ANSI terminologiyasi emas. Rasmiy terminologiya juda chalkash bo'lishi mumkin, shuning uchun biz uni biroz soddalashtirdik. Shu sababli, biz ba'zan ANSIdan farq qiladigan shartlardan foydalanamiz yoki bir xil shartlardan foydalanamiz, lekin biroz boshqacha. Masalan, bizning C ta'rifimiz C ning standart ta'rifining ANSI kombinatsiyasidan farq qiladi. SQL Elementlari

    Bu bo'lim SQL buyruqlar elementlarini belgilaydi.

    Ular ikki toifaga bo'linadi: Tilning asosiy elementlari va Tilning funktsional elementlari.

    Asosiy elementlar til bloklari yaratilgan; SQL buyruqni tekshirganda, u birinchi navbatda buyruq matnidagi har bir belgini shu elementlar nuqtai nazaridan baholaydi. Ajratuvchi buyruqning bir qismini boshqasidan ajratadi; chegaralovchilar orasidagi hamma narsa modul sifatida ko'rib chiqiladi. Ushbu bo'linishga asoslanib, SQL buyruqni sharhlaydi.

    Funktsional elementlar modul sifatida talqin qilinishi mumkin bo'lgan kalit so'zlardan tashqari turli xil elementlardir. Bular buyruqning chegaralovchilar bilan ajratilgan qismlari bo'lib, SQLda alohida ma'noga ega. Ulardan ba'zilari ma'lum buyruqlar uchun maxsus bo'lib, bu buyruqlar bilan birga keyinroq ushbu ilovada tasvirlanadi.

    Bu erda sanab o'tilgan elementlar tavsiflangan barcha buyruqlar uchun umumiydir.

    Funktsional elementlar bir-biri bilan yoki hatto o'z shartlarida belgilanishi mumkin. Masalan, Bizning oxirgi va eng murakkab holat predikati Inside o'z ta'rifi predikatini o'z ichiga oladi. Buning sababi shundaki, AND yoki OR dan foydalanilgan predikat mustaqil ravishda ishlay oladigan istalgan miqdordagi predikatlarni o'z ichiga olishi mumkin. Tilning ushbu funksional elementining xilma-xilligi va murakkabligi tufayli biz sizga ushbu ilovaning alohida bo'limida B predikatini taqdim etdik. U jamoalarning boshqa funktsional qismlarini muhokama qilishda doimo hozir bo'ladi.

    TILNING ASOSIY ELEMENTLARI

    ELEMENTLARNING TA'RIFI | | -- bo'shliqni amalga oshirish-belgilangan belgilar qatorining oxiri [( | = B AND


    Bepul dasturlar va foydali maslahatlar dunyosi
    2024 whatsappss.ru