SQL asoslari

DDL, DML va JOINlar haqida bilib oling

Strukturalangan so'rovlar tili zamonaviy ma'lumotlar bazasi arxitekturasining asosiy qurilish bloklaridan biri hisoblanadi. SQL barcha muhim platformalarda relational database tuzish va boshqarish uchun ishlatiladigan usullarni belgilaydi. Bir qarashda, til qo'rqinchli va murakkab ko'rinishi mumkin, ammo bu qiyin emas.

SQL-ning asosiy tamoyillariga kirish bu ma'lumotlar bazalarini yaratish va o'zgartirish uchun ishlatiladigan asosiy buyruqlar qisqacha ko'rib chiqiladi.

SQL haqida

SQLning to'g'ri talaffuzi ma'lumotlar bazasi doirasidagi shubhali masala. SQL standartida, Amerika milliy standartlar instituti rasmiy talaffuz "as queue el" deb e'lon qildi. Biroq, ko'plab ma'lumotlar bazasi mutaxassislari "davomi" so'zining talaffuzini oldilar. Tanlash sizniki.

SQL ko'plab lazzatlarga ega. Oracle ma'lumotlar bazalari o'ziga xos PL / SQL dan foydalanadi. Microsoft SQL Server Transact-SQL dan foydalanadi. Barcha o'zgarishlar ANSI SQL sanoat standartiga asoslangan. Ushbu tanlovda har qanday zamonaviy relatsion ma'lumotlar bazasi tizimida ishlaydigan ANSI-mos SQL buyruqlar ishlatiladi.

DDL va DML

SQL buyruqlar ikki asosiy sub tiliga bo'linadi. Ma'lumotni aniqlash tili (DDL) ma'lumotlar bazalari va ma'lumotlar bazasi moslamalarini yaratish va yo'q qilish uchun ishlatiladigan buyruqlarni o'z ichiga oladi. Ma'lumotlar bazasi tuzilishi DDL bilan aniqlanganidan so'ng ma'lumotlar bazasi ma'murlari va foydalanuvchilari o'z ichiga olgan ma'lumotlarni kiritish, olish va o'zgartirish uchun Data Manipulation Language (DML) dan foydalanishlari mumkin.

Ma'lumotni aniqlash tili buyruqlari

Ma'lumotni aniqlash tili ma'lumotlar bazalari va ma'lumotlar bazasi obyektlarini yaratish va yo'q qilish uchun ishlatiladi. Ushbu buyruqlar ma'lumotlar bazasi loyihasining o'rnatish va o'chirish bosqichlarida ma'lumotlar bazasi ma'murlari tomonidan ishlatiladi. Bu erda to'rtta asosiy DDL buyruqlar tuzilishi va ulardan foydalanishga qarash:

YARATMOQ. Kompyuterda ma'lumotlar bazasini boshqarish tizimini o'rnatish juda ko'p mustaqil ma'lumotlar bazalarini yaratish va boshqarish imkonini beradi. Misol uchun, savdo bo'limi uchun mijozlar bilan aloqalar ma'lumotlar bazasini va kadrlar bo'limi uchun kadrlar bazasini saqlab qolishingiz mumkin. CREATE buyrug'i sizning platformangizda ushbu ma'lumotlar bazalarini yaratish uchun ishlatiladi. Misol uchun, buyruq:

CREATE DATABASE xodimlari

Sizning DMS laringizda "xodimlar" deb nomlangan bo'sh ma'lumotlar bazasini yaratadi. Ma'lumotlar bazasini yaratganingizdan so'ng, keyingi qadam ma'lumotlarni o'z ichiga olgan jadvallarni yaratishdir. Buning uchun CREATE buyrug'ining yana bir variantini ishlatish mumkin. Buyruq:

CREATE TABLE private_info (first_name char (20) not null, last_name char (20) not null, employee_id int null)

joriy ma'lumotlar bazasida "personal_info" nomli jadval o'rnatadi. Masalan, jadvalda uchta atributlar mavjud: first_name, last_name, and employee_id va qo'shimcha ma'lumot.

FOYDALANING. USE buyrug'i Sizning DBA'laringizda ishlashni istagan ma'lumotlar bazasini belgilash imkonini beradi. Misol uchun, agar siz hozirda savdo ma'lumotlar bazasida ishlayotgan bo'lsangiz va ishchilar bazasiga ta'sir qiladigan ba'zi buyruqlar chiqarishni xohlasangiz, ularni quyidagi SQL buyrug'i bilan boshlang:

FOYDALANISH xodimlari

Ma'lumotni manipulyatsiya qiluvchi SQL buyruqlar berishdan avval siz ishlayotgan ma'lumotlar bazasini doimo his qilish juda muhimdir.

ALTER. Ma'lumotlar bazasida jadval yaratganingizdan so'ng uning ta'rifini o'zgartirishni xohlashingiz mumkin. ALTER buyrug'i siz jadvalni tahrirlash va qayta tiklamasdan o'zgartirishlar kiritishga imkon beradi. Quyidagi buyruqni ko'rib chiqing:

ALTER TABLE personal_info Ish haqi pulni qo'shish null

Ushbu misol, personal_info stoliga yangi xislat beradi - bu xodimning ish haqi. "Pul" argumenti ishchining ish haqi dollar va sent formatida saqlanganligini bildiradi. Va nihoyat, "bo'sh" kalit so'z ma'lumotlar bazasiga ushbu sohada biron bir xodim uchun hech qanday qiymat berilmasligini aniq ko'rsatib beradi.

DROP. Ma'lumotni aniqlash tilining yakuniy buyrug'i, DROP bizni ma'lumotlar bazasi ob'ektlarini barcha ma'lumotlar bazasini olib tashlash imkonini beradi. Misol uchun, biz yaratgan shaxsiy_info jadvalini butunlay olib tashlashni istasak, biz quyidagi buyruqni ishlatamiz:

DROP TABLE Shaxsiy_info

Xuddi shunday, quyida berilgan buyruq barcha xodimlar bazasini olib tashlash uchun ishlatiladi:

DROP DATABASE xodimlari

Ushbu buyruqni ehtiyotkorlik bilan foydalaning. DROP buyrug'i ma'lumotlar bazasidan barcha ma'lumotlar tuzilmalarini olib tashlaydi. Shaxsiy yozuvlarni olib tashlashni istasangiz, Data Manipulation Language ning Delete buyrug'ini ishlating.

Ma'lumot manipulyatsiyasi tillari buyruqlar

Data Manipulation Language (DML) ma'lumotlar bazasi ma'lumotlarini olish, kiritish va o'zgartirish uchun ishlatiladi. Ushbu buyruqlar bazaning muntazam ishlashi vaqtida barcha ma'lumotlar bazasi foydalanuvchilari tomonidan ishlatiladi.

KIRITMOQ. SQLda INSERT buyrug'i mavjud jadvalga yozuvlar qo'shish uchun ishlatiladi. Oldingi bo'limdagi personal_info misoliga qaytib, HR bo'limimizga yangi ma'lumotlar bazasini qo'shish kerakligini tasavvur qiling. Siz shunga o'xshash buyruqni ishlatishingiz mumkin:

Shaxsiy_info qiymatiga INSERT ('bart', 'simpson', 12345, $ 45000)

Yozuv uchun belgilangan to'rtta qiymat mavjudligini unutmang. Ular jadvalning atributlariga ular belgilangan tartibda mos keladi: first_name, last_name, employee_id va ish haqi.

SELECT. Applications buyrug'i SQL-da eng ko'p ishlatiladigan buyruqlar. Ma'lumotlar bazasi foydalanuvchilari operatsion ma'lumotlar bazasidan xohlagan ma'lumotni olishlarini ta'minlaydi. Bir necha misolni ko'rib chiqing, yana personal_info jadvalini ishlaydigan ma'lumotlar bazasidan foydalaning.

Quyida ko'rsatilgan buyruqlar personal_info jadvalidagi barcha ma'lumotlarni oladi. Yulduz belgisi SQLda joker belgilar sifatida ishlatilishini unutmang. Buning ma'nosi "Shaxsiy_info stolidan hamma narsani tanlang" degan ma'noni anglatadi.

SELECT * FROM personal_info

Shu bilan bir qatorda, foydalanuvchilar ma'lumotlar bazasidan olingan atributlarni cheklashni xohlashadi. Misol uchun, Inson resurslari bo'limi kompaniyadagi barcha xodimlarning familiyalari ro'yxatini talab qilishi mumkin. Quyidagi SQL buyrug'i faqat shu ma'lumotni olishi kerak:

Last_name FROM personal_info tanlang

WHERE punkti belgilangan mezonlarga muvofiq keladigan yozuvlarni cheklash uchun ishlatilishi mumkin. Yuqori lavozim maoshi yuqori lavozimdagi xodimlarning kadrlarini tekshirishga qiziqishi mumkin. Quyidagi buyruq, $ 50,000 dan yuqori ish haqi qiymatiga ega bo'lgan yozuvlar uchun personal_info da joylashgan barcha ma'lumotlarni oladi:

SEVDÄ°YOR * personal_info dan qaerda ish haqi> $ 50000

UPDATE. UPDATE buyrug'i umumjahon yoki alohida ravishda jadvalda joylashgan ma'lumotlarni o'zgartirish uchun ishlatilishi mumkin. Kompaniya barcha xodimlarga har yili o'zlarining ish haqi miqdorining 3 foizga ko'payishi uchun mablag 'sarflashini ta'kidlang. Quyidagi SQL buyrug'i ma'lumotlar bazasida saqlangan barcha xodimlarga buni tezroq amalga oshirish uchun ishlatilishi mumkin:

UPDATE personal_info MODE = ish haqi * 1.03

Bart Simpson yangi ishchi vazifasini bajarishdan tashqarida va orqasida ishlashni namoyish qilganda, rahbar o'zining yutuqlarini 5000 dollarga ko'tarish bilan tan olishni xohlaydi. WHERE kalimasi Bart uchun bu yuksalish uchun alohida ajratish uchun ishlatilishi mumkin:

UPDATE personal_info MODE = ish haqi + $ 5000 WHERE employee_id = 12345

DELETE. Va nihoyat, DELETE buyrug'ini ko'rib chiqaylik. Ushbu buyruqning sintaksisi boshqa DML buyruqlari bilan o'xshashligini topasiz. Afsuski, bizning so'nggi korporativ daromadlarimiz bo'yicha hisobotimiz kutilgan narsalarni to'liq qondirmadi va Bart Bartning ishdan bo'shatildi. DELETE buyrug'i bilan WHERE so'zini shaxsiy_info stolidagi yozuvni o'chirish uchun ishlatish mumkin:

Personal_info-dan qaerdan xizmatdosh employees_id = 12345

JOINS

Endi siz SQL asoslarini o'rgandingiz, tilning eng kuchli konsepsiyalaridan biri - JOIN bayonotiga o'tish vaqti keldi. JOIN bayonoti sizning ma'lumotlaringizning katta hajmlarini samarali ishlashi uchun bir nechta jadvallarda ma'lumotlarni birlashtirishga imkon beradi. Ushbu ma'lumotlar bazaning haqiqiy kuchini qaerda joylashganligi.

Ikkita jadvaldagi ma'lumotlarni birlashtirish uchun asosiy JOIN jarayonidan foydalanishni o'rganish uchun, PERSONAL_INFO jadvalidan foydalanib, misol bilan davom eting va qo'shimchaga qo'shimcha jadval qo'shing. Quyidagi so'z bilan yaratilgan DISCIPLINARY_ACTION deb atalgan jadvalingiz borligini tasavvur qiling:

CREATE TABLE disciplinary_action (action_id int null, employee_id int null, sharh char (500))

Ushbu jadval kompaniyaning xodimlariga nisbatan intizomiy choralar natijalarini o'z ichiga oladi. Siz xodimning ishchi raqamidan tashqarida ishlaydigan hech qanday ma'lumoti yo'qligini bilib olasiz. DISCIPLINARY_ACTION va PERSONAL_INFO jadvallaridan ma'lumotlarni birlashtirishni istagan juda ko'p stsenariylarni tasavvur qilish oson.

Sizda 40 ming dollardan ortiq ish haqi bo'lgan barcha xodimlarga nisbatan qo'llaniladigan intizomiy harakatlar ro'yxatini tuzish vazifasi topshirildi. JOIN operatsiyasidan foydalanish, bu holda, bu to'g'ridir. Ushbu ma'lumotni quyidagi buyruq yordamida olishimiz mumkin:

Shaxsiy_info.first_name, personal_info.last_name, disciplinary_action.comdan shaxsiy_info, disciplinary_actiondan SELECT personal_info.employee_id = disciplinary_action.employee_id AND personal_info.salary> 40000

Kod, FROM bandiga qo'shilishni istagan ikkita jadvalni belgilaydi va so'ngra natijalarni natijalarni ishlaydigan identifikatorlarga mos keladigan yozuvlarga cheklash va 40,000 AQSh dollardan ortiq ish haqi kriteriyasiga javob berish uchun WHERE bandida bayonnomani o'z ichiga oladi.