Дерекқорлар мен кестелерді SQL-де жасау

Дерекқорды құру

Құрылымдық сұрау тілімен дерекқорлар мен кестелерді жасауды бастауға дайынсыз ба? Бұл мақалада CREATE DATABASE және CREATE TABLE командалары арқылы кестелерді қолмен жасау процесін зерттеп отырамыз. Егер SQL-ге жаңа болсаңыз, алдымен біздің SQL Basics мақаласын қарастырғыңыз келуі мүмкін.

Бизнес талаптары

Біз пернетақтада отырмас бұрын, клиенттің талаптарын толық түсінуіміз керек. Бұл түсінікке жетудің ең жақсы жолы қандай? Клиентпен сөйлесу, әрине! XYZ компаниясының адам ресурстарын басқару жөніндегі директоры болғаннан кейін, біз олардың виджет сатушы компания екенін білдік және ең алдымен олардың сату персоналы туралы ақпаратты қадағалауға мүдделі.

XYZ корпорациясы өзінің сату күштерін шығыс және батыс өңірлерге бөледі, олардың әрқайсысы жеке сауда өкілдерімен қамтылған көптеген аумақтарға бөлінеді. Қызметкерлер бөлімі әрбір қызметкердің аумағын, сондай-ақ әрбір қызметкердің жалақы ақпаратын және қадағалау құрылымын қадағалауды қалайды. Осы талаптарды қанағаттандыру үшін, біз осы беттегі Entity-Relationship диаграммасында көрсетілген үш кестеден тұратын дерекқор дайындадық.

Дерекқор платформасын таңдау

Біз Structured Query Language (SQL) бағдарламасына негізделген дерекқорды басқару жүйесін (немесе DBMS) пайдалануға шешім қабылдадық. Сондықтан біздің барлық дерекқорлар мен кестелерді жасау командалары ANSI SQL стандартты түрде жазылуы керек.

Қосымша артықшылық ретінде, ANSI-үйлесімді SQL пайдаланатындықтан, бұл пәрмендер Oracle және Microsoft SQL Server сияқты SQL стандартын қолдайтын кез келген DBMS жұмыс істейтініне кепілдік береді. Егер сіздің дерекқорыңыз үшін платформа әлі таңдалмаған болса, деректер базасының бағдарламалық жасақтамасы Параметрлері Сізді таңдау үрдісі арқылы өтеді.

Дерекқорды құру

Біздің бірінші қадам - ​​деректер базасын құру. Көптеген деректер базасын басқару жүйелері осы қадамда дерекқор параметрлерін теңшеу үшін бірқатар опцияларды ұсынады, бірақ біздің дерекқорымыз тек дерекқорды қарапайым жасауға мүмкіндік береді. Біздің барлық командаларымыз сияқты, өзіңіздің нақты жүйеңізге қолдау көрсететін қандай да бір жетілдірілген параметрлер сіздің қажеттіліктеріңізге сәйкес келмейтінін анықтау үшін сіздің ДББЖ құжаттамаңызбен танысқыңыз келуі мүмкін. Деректер базасын орнату үшін CREATE DATABASE командасын қолданайық:

DATABASE қызметкерлерін жасаңыз

Жоғарыда келтірілген мысалда пайдаланылатын капиталдандыруға ерекше назар аударыңыз. SQL бағдарламашыларының арасында «персонал» дерекқорының атауы сияқты пайдаланушы анықтайтын аттар үшін барлық кіші әріптерді қолданғанда, «CREATE» және «DATABASE» сияқты SQL кілт сөздері үшін барлық негізгі әріптерді қолдануға болады. Бұл конвенциялар жеңіл оқылуды қамтамасыз етеді.

Деректер базасына арналған кестелерді жасаған кезде осы оқулықты оқып шығыңыз.

Көбірек білу

Егер Сіз Құрылымдық Сұрау Тілі туралы көбірек білгіңіз келсе, SQL- ге кіріспе немесе тегін Learning SQL электрондық пошта курсына жазылыңыз.

Енді біздің дерекқорымызды әзірлеп, жасақтадық, біз XYZ корпорациясының қызметкерлерінің деректерін сақтау үшін пайдаланылған үш кестені құруға дайынбыз. Біз осы оқу құралының алдыңғы бөлігінде жасалған кестелерді жүзеге асырамыз.

Біздің алғашқы кестені құру

Біздің бірінші кестеміз компанияның әр қызметкеріне арналған жеке деректерден тұрады. Біз әрбір қызметкердің атын, жалақысын, идентификаторын және менеджерді қамтуымыз керек. Бұл деректерді іздестіруді жеңілдету үшін және болашақта сұрыптауды жеңілдету үшін соңғы және алғашқы есімдерді бөлек аймақтарға бөлудің жақсы тәжірибесі. Сондай-ақ, әрбір қызметкердің менеджеріне әрбір қызметкердің жазбасында менеджердің қызметкер идентификаторына сілтеме қою арқылы қадағалаймыз. Алдымен қызметкердің қажетті кестесін қарастырайық.

ReportsTo атрибуты әрбір қызметкерге арналған басқару идентификаторын сақтайды. Көрсетілген үлгідегі жазбалардан біз Sue Scampi-нің Том Кендалл мен Джон Смиттің менеджері екенін анықтай аламыз. Дегенмен, Sue меңгерушісі туралы деректер базасында NULL жазбасы көрсетілген жолда ешқандай ақпарат жоқ.

Енді біз деректер базасында кестені құру үшін SQL-ні пайдалана аламыз. Бұған дейін, USE пәрменін беру арқылы дұрыс деректер базасында екенімізді тексерейік:

Персоналды пайдалану;

Немесе «DATABASE қызметкерлері»; пәрмен сол функцияны орындайды. Енді біздің қызметкерлер кестесін құру үшін пайдаланылатын SQL командасымен таныса аламыз:

CREATE TABLE қызметкерлері (INTEGER NOT NULL қызметкері, тегі VARCHAR (25) NOT NULL, аты VARCHAR (25) NOT NULL, INTEGER NULL хабарлау);

Жоғарыда келтірілген мысал сияқты, бағдарламалау конвенциясының SQL кілт сөздері мен пайдаланушы аттары мен бағандары үшін кіші әріптер үшін барлық бас әріптерді пайдаланатынын ескеріңіз. Жоғарыдағы командалар алдымен шатастырып көрінуі мүмкін, бірақ шын мәнінде оның артында қарапайым құрылым бар. Міне, біраз нәрселерді тазартатын жалпылама көрініс:

CREATE TABLE table_name (attribute_name datatype опциялары, ..., attribute_name datatype опциялары);

Атрибуттар және деректер түрлері

Алдыңғы мысалда, кесте атауы қызметкерлер болып табылады және біз төрт атрибутты қамтиды: қызметкер, тегі, аты және репортаж. Деректер түрі әрбір өрісте сақтағымыз келетін ақпарат түрін көрсетеді. Қызметкер идентификаторы қарапайым бүтін сан болып табылады, сондықтан біз қызметкер өрісі және есеп беру өрісі үшін INTEGER дерекқорын қолданамыз. Қызметкерлердің атаулары айнымалы ұзындықтың таңбалар тізбегі болады және ешқандай қызметкердің бірінші немесе тегі 25 таңбадан ұзын болуы күтілмейді. Сондықтан осы өрістер үшін VARCHAR (25) түрін қолданамыз.

NULL мәндері

Сондай-ақ, NULL немесе NOT NULL параметрін CREATE операторының опциялар өрісінде көрсетуге болады. Дерекқорға жолдарды қосу кезінде бұл атрибутқа NULL (немесе бос) мәндер рұқсат етілуіне дерекқор берілген. Біздің мысалымызда кадрлар бөлімі қызметкердің жеке куәлігі мен толық аты әр қызметкер үшін сақталады. Дегенмен, әр қызметкерде менеджер болмайды - Бас директор ешкімге хабарламайды! - сондықтан біз сол өрістегі NULL жазбаларына рұқсат етеміз. Назар аударыңыз, NULL - әдепкі мән және бұл опцияны шығарып тастау атрибут үшін NULL мәндерін толықтай береді.

Қалған кестелерді құру

Енді аумақтар кестесін қарастырайық. Бұл деректерге тез қарап шығу арқылы бүтін сан мен ұзындықтың екі ұзындығын сақтау керек. Біздің алдыңғы мысалдағыдай, аймақ идентификаторы 25 таңбадан артық тұтынуын күтпейміз. Алайда, біздің кейбір аумақтарымыздың ұзағырақ есімдері бар, сондықтан біз бұл атрибуттың рұқсат етілген ұзақтығын 40 таңбаға дейін кеңейтеміз. Келтірілген SQL-ге қарап көрейік:

CREATE TABLE territories (аумағы INTEGER NOT NULL, аумақ Сипаттама VARCHAR (40) NOT NULL, regionirov VARCHAR (25) NOT NULL);

Ақырында, қызметкерлер мен аумақтар арасындағы қарым-қатынастарды сақтау үшін EmployeeTerritories кестесін қолданамыз. Әрбір қызметкер мен аумақ туралы толық ақпарат алдыңғы екі кестеде сақталады. Сондықтан, біз тек осы кестеде екі бүтін сəйкестендіру нөмірлерін сақтауымыз керек. Егер біз осы ақпаратты кеңейтуіміз қажет болса, онда бірнеше кестелерден ақпарат алу үшін деректерді таңдау таңбаларындағы JOIN-ды пайдалануға болады. Деректерді сақтау әдісі біздің дерекқорымыздағы артықшылықты азайтады және біздің сақтау дискілерінде кеңістікті оңтайлы пайдалануды қамтамасыз етеді. Біз болашақ оқулықта JOIN командасын тереңдетеміз. Біздің соңғы кестемізді орындау үшін SQL коды бар:

CREATE TABLE employeeterritories (INTEGER NOT NULL қызметкері, INTEGER NOT NULL аумағында);

SQL механизмі жасағаннан кейін деректер қорының құрылымын өзгертуге мүмкіндік береді

Егер сіз әсіресе бүгінгі таңғажайып болсаңыз, біздің дерекқор кестелерімізді іске асыру кезінде біз «кездейсоқ» жобалық талаптардың біреуін «кездейсоқ» түсірмегенімізді байқадыңыз. XYZ корпорациясының кадрлар жөніндегі директоры деректер базасының қызметкерлеріне жалақы ақпаратын сұрады және біз оны деректер базасы кестелерінде қамтамасыз етуге ұмтылған жоқпыз.

Алайда, бәрі жоғалмайды. Бұл атрибутты бар дерекқорға қосу үшін ALTER TABLE пәрменін қолдануға болады. Біз жалақыны толық мән ретінде сақтауды қалаймыз. Синтаксис CREATE TABLE пәрменіне ұқсас, мұнда:

ALTER TABLE қызметкерлері қосу жалақы INTEGER NULL;

Бұл атрибутқа NULL мәндері рұқсат етілгенін ескеріңіз. Көптеген жағдайларда, бар кестені баған қосу кезінде ешқандай мүмкіндік жоқ. Бұл кестеде осы төлсипатқа кіруі жоқ жолдар бар. Демек, ДББЖ автоматты түрде бос орынды толтыру үшін NULL мәнін енгізеді.

Және бұл SQL дерекқорына және кестені жасау процесіне біздің көзқарасымызды орайды. Біздің SQL оқулық сериясымызда жаңа бөлімдер үшін жиі қайталап көріңіз. Егер сіз туралы дерекқорлар сайтына жаңа мақалалар қосылса, электронды пошта туралы ескерту алғыңыз келсе, біздің ақпараттық бюллетенге жазылыңыз!