Ma'lumotlar bazalari va jadvallarni SQLda yaratish

Ma'lumotlar bazasini yaratish

Strukturalangan so'rovlar tili bilan ma'lumotlar bazalari va jadvallarni yaratishga tayyormisiz? Ushbu maqolada, CREATE DATABASE va CREATE TABLE buyruqlar bilan jadvallarni qo'lda yaratish jarayonini o'rganamiz. Agar SQL-ga yangi bo'lsangiz, birinchi navbatda SQL asoslari maqolamizni ko'rib chiqishingiz mumkin.

Tadbirkorlik talablari

Klaviaturada o'tirmasdan oldin, biz mijozning talablarini yaxshi tushunishimiz kerak. Ushbu tushunchaga ega bo'lishning eng yaxshi usuli qanday? Mijozga gapirish, albatta! XYZ ning Inson resurslari bo'yicha direktori bilan o'tirgandan so'ng, ular vidjetlarni sotuvchi kompaniya ekanligini bilib oldik va ularning savdo xodimlari haqida ma'lumotni kuzatishdan manfaatdormiz.

XYZ korporatsiyasi o'z savdo kuchlarini sharqiy va g'arbiy hududlarga ajratadi, ularning har biri alohida savdo vakolatxonalari egallagan ko'plab hududlarga bo'linadi. Xodimlar bilan ishlash boshqarmasi har bir xodim tomonidan qoplangan hududni, shuningdek har bir xodimning ish haqi to'g'risidagi axborot va nazorat tuzilmasini kuzatishni xohlaydi. Ushbu talablarni qondirish uchun ushbu sahifadagi Entity-Relation diagrammasida ko'rsatilgan uchta jadvaldan tashkil topgan ma'lumotlar bazasini yaratdik.

Ma'lumotlar bazasi platformasini tanlash

Biz tuzilgan so'rovlar tili (SQL) asosida yaratilgan ma'lumotlar bazasini boshqarish tizimidan (yoki DBMS) foydalanishga qaror qildik. Shuning uchun barcha ma'lumotlar bazasi va jadvallarni yaratish komandalari standart ANSI SQL bilan birga yozilishi kerak.

Qo'shimcha foyda sifatida, ANSI-mos SQL yordamida ushbu komandalar Oracle va Microsoft SQL Server kabi SQL standartlarini qo'llab-quvvatlaydigan har qanday DBMSda ishlashini ta'minlaydi. Agar bazangiz uchun hali biror platformani tanlamagan bo'lsangiz, ma'lumotlar bazasi dasturiy ta'minot parametrlari sizni tanlash jarayoni orqali sizni yuritadi.

Ma'lumotlar bazasini yaratish

Bizning birinchi qadamimiz ma'lumotlar bazasini yaratishdir. Ko'plab ma'lumotlar bazasi boshqaruv tizimlari ushbu bosqichda ma'lumotlar bazasi parametrlarini sozlash uchun bir qator imkoniyatlarni taqdim etadi, ammo ma'lumotlar bazasi faqatgina ma'lumotlar bazasini yaratish imkonini beradi. Barcha buyruqlarimizdek bo'lgani kabi, sizning maxsus tizimingiz tomonidan qo'llab-quvvatlangan rivojlangan parametrlar ham sizning ehtiyojlaringizni qondiradimi-yo'qligini aniqlash uchun sizning DBAsingizning hujjatlariga murojaat qilishingiz mumkin. Ma'lumotlar bazasini o'rnatish uchun CREATE DATABASE buyrug'ini ishlatamiz:

DATABASE ma'lumotlar bazasini yaratish

Yuqoridagi misolda ishlatiladigan kapitalizatsiyaga alohida e'tibor bering. SQL dasturchilari orasida "personal" ma'lumotlar bazasi nomi kabi foydalanuvchi identifikatorlari uchun barcha kichik harflarni ishlatganda "CREATE" va "DATABASE" kabi SQL kalit so'zlari uchun barcha katta harflarni ishlatish keng tarqalgan. Ushbu konventsiyalar oson o'qilishi mumkin.

Ma'lumotlar bazamiz uchun jadval yaratganimizdek, ushbu qo'llanmani o'qib chiqing.

Batafsil ma'lumot

Agar Strukturalangan So'rovlar Tili haqida ko'proq ma'lumotga ega bo'lishni istasangiz, SQLga kirishni o'qing yoki bepul Learning SQL elektron pochta kursiga a'zo bo'ling.

Endi biz ma'lumotlar bazasini yaratdik va yaratdik, XYZ korporatsiyasi xodimlarining ma'lumotlarini saqlash uchun ishlatiladigan uchta jadvalni yaratishga tayyormiz. Biz ushbu qo'llanmaning oldingi qismida ishlab chiqilgan jadvallarni amalga oshirmoqdamiz.

Birinchi jadvalimizni yaratish

Bizning birinchi stolimiz kompaniyamizning har bir xodimi uchun shaxsiy ma'lumotlardan iborat. Biz har bir xodimning ismini, ish haqini, identifikatorini va menejerini kiritishimiz kerak. Ma'lumotni qidirish va saralashni kelgusida soddalashtirish uchun so'nggi va birinchi ismlarni alohida joylarga ajratish yaxshi dizayn amaliyoti. Bundan tashqari, har bir xodimning rahbarida boshqaruvchining ishlaydigan identifikatoriga havola kiritib, har bir xodimni boshqaramiz. Keling, xohlagan xodimlar jadvalini ko'rib chiqaylik.

ReportsTo xususiyati har bir xodim uchun administrator identifikatorini saqlaydi. Ko'rsatilgan namunadagi yozuvlardan Sue Scampi ham Tom Kendall, ham Jon Smitning menejeri ekanligini aniqlashimiz mumkin. Biroq, Sue menejeri haqidagi ma'lumotlar bazasida hech qanday ma'lumot yo'q, chunki uning qatoridagi NULL yozuvi ko'rsatiladi.

Endi biz xodimlar bazasida jadval yaratish uchun SQL dan foydalanishimiz mumkin. Buni amalga oshirishdan oldin, USE buyrug'ini berish orqali to'g'ri ma'lumotlar bazasida ekanligimiz uchun ishonch hosil qilamiz:

FOYDALANUV

Shu bilan bir qatorda, "ma'lumotlar bazasi xodimlari"; buyruq xuddi shu vazifani bajaradi. Endi xodimlar jadvalini yaratish uchun ishlatiladigan SQL buyrug'iga qaraymiz:

CREATE TABLE xodimlar (Employee INTEGER NOT NULL, familiya VARCHAR (25) QAYD NULL, birinchi ismi VARCHAR (25) NOT NULL, reporter INTEGER NULL);

Yuqoridagi misolda bo'lgani kabi, dasturiy konvensiya SQL kalit so'zlari va foydalanuvchi nomi bilan atalgan ustunlar va jadvallar uchun kichik harflar uchun barcha katta harflardan foydalanishni talab qiladi. Yuqoridagi buyruq birinchi navbatda tuyulishi mumkin, lekin aslida uning orqasida oddiy tuzilma mavjud. Mana, biroz narsalarni aniqlaydigan umumiy fikr.

CREATE TABLE table_name (attribute_name datatype variantlari, ..., attribute_name datatype imkoniyatlari);

Xususiyatlar va ma'lumotlar turlari

Avvalgi misolda, jadval nomi xodimlar bo'lib, biz to'rtta xususiyatni o'z ichiga olamiz: employeeid, lastname, firstname va reportsto. Datatype har bir sohada saqlashni istagan ma'lumot turini ko'rsatadi. Xodimning identifikatori oddiy oddiy raqam hisoblanadi, shuning uchun biz ham operatorning maydoni, ham reportsto maydoni uchun INTEGER ma'lumotlar turini qo'llaymiz. Xodimlarning nomlari o'zgaruvchilik uzunligining belgilaridan iborat bo'ladi va hech qanday ishchining ismini yoki familiyasini 25 belgidan ko'p kutmasligimiz kerak. Shuning uchun biz ushbu maydonlar uchun VARCHAR (25) turini qo'llaymiz.

NULL qiymatlari

CREATE iboralar variantlari sohasida NULL yoki NOT NULL ni ham belgilashimiz mumkin. Ma'lumotlar bazasiga satrlarni qo'shishda ushbu xususiyat uchun NULL (yoki bo'sh) qiymatlarning ruxsat berilgan-bo'lmaganligi ma'lumotlar bazasiga sodda. Bizning misolimizda, kadrlar bo'limi har bir xodim uchun ishchi identifikatori va to'liq nomini saqlashni talab qiladi. Biroq, har bir xodimning menejeri yo'q - bosh direktor hech kimga xabar bermaydi! - Shunday qilib, biz NULL yozuvlari ushbu sohada ruxsat beramiz. NULL qiymatining asl qiymati ekanligini va ushbu parametr bekor qilinishini aniq bir NULL qiymatiga ruxsat berishini unutmang .

Qolgan jadvallarni tuzish

Keling, hududlar jadvalini ko'rib chiqaylik. Ushbu ma'lumotlarga tezkorlik bilan qarashimiz kerakki, biz bir tamsayı va ikkita o'zgarmaydigan uzunlikdagi satrlarni saqlashimiz kerak. Oldingi misolimizda bo'lgani kabi biz mintaqaviy identifikatordan 25 dan ortiq belgi iste'mol qilishini kutmaymiz. Biroq, ayrim hududlarimiz uzoq nomlarga ega, shuning uchun ushbu attributning ruxsat etilgan uzunligini 40 ta belgiga kengaytiramiz. Keling, tegishli SQLga qaraylik:

CREATE TABLE territories (territory INTEGER NOT NULL, territory VARCHAR (40) NOT NULL, regionirov VARCHAR (25) QAYD NULL);

Nihoyat, xodimlar va hududlar o'rtasidagi munosabatlarni saqlash uchun EmployeeTerritories jadvalidan foydalanamiz. Har bir xodim va hudud bo'yicha batafsil ma'lumot avvalgi ikki jadvalda saqlanadi. Shuning uchun, biz faqat ushbu jadvalda ikkita to'liq raqam identifikatsiya raqamini saqlashimiz kerak. Ushbu ma'lumotni kengaytirishimiz kerak bo'lsa, biz bir nechta jadvallardan ma'lumot olish uchun ma'lumotni tanlash buyruqlaridagi JOINdan foydalanishimiz mumkin. Ma'lumotni saqlash usuli bizning ma'lumotlar bazamizda ortiqcha ishni qisqartiradi va bizning xotira disklarida bo'sh joyni tejash imkonini beradi. Kelajakdagi o'quv qo'llanmasida JOIN buyrug'ini chuqur o'rganamiz. Bizning oxirgi jadvalimizni amalga oshirish uchun SQL kodi:

CREATE TABLE employeeterritories (INTEGER NOT NULL, territory INTEGER NOT NULL);

Mexanizm SQL ma'lumotlar bazasi tuzilishidan so'ng o'zgartirishni ta'minlaydi

Agar siz bugungi kunda astoydil bo'lsangiz, biz ma'lumotlar bazasi jadvallarini amalga oshirishda "tasodifan" loyihalash talablaridan birini "tasodifan" tashlab qo'yganligingizni payqadingiz. XYZ korporatsiyasining Xodimlar bo'yicha direktori ma'lumotlar bazasidan ishlaydigan xodimlarning ish haqi to'g'risidagi ma'lumotlarini so'radi va biz yaratgan bazaviy jadvallarda bunga e'tibor bermaymiz.

Biroq, hamma yo'qolgan. Ushbu xususiyatni mavjud ma'lumotlar bazasiga qo'shish uchun ALTER TABLE buyrug'idan foydalanishimiz mumkin. Biz ish haqini to'liq qiymat sifatida saqlashni xohlaymiz. Sintaksis CREATE TABLE buyrug'iga juda o'xshash, bu erda:

ALTER TABLE xodimlariga ish haqi qo'shish INTEGER NULL;

NULL qiymatlari ushbu atribut uchun ruxsat berilganligini aniqlang. Ko'pgina hollarda mavjud jadvalga ustun qo'shganda hech qanday imkoniyat yo'q. Buning sababi, jadvalda ushbu attribut uchun hech qanday kirishga ega bo'lmagan qatorlar mavjud. Shuning uchun, DBMS avtomatik ravishda bekor qilish uchun NULL qiymatini qo'shib qo'yadi.

Va bu bizning SQL ma'lumotlar bazasiga va jadvallarni yaratish jarayoniga qaraydi. SQL o'qitish darsimizdagi yangi taksilar uchun tez-tez tekshirib chiqing . Agar siz ma'lumotlar bazalari haqida yangi maqola qo'shilsa, siz elektron pochta eslatmasini xohlasangiz, bizning obunachilarga obuna bo'ling.