SQL- ում տվյալների բազաների եւ աղյուսակների ստեղծում

Տվյալների բազայի ստեղծում

Պատրաստ եք ստեղծել տվյալների շտեմարանների եւ սեղանների կառուցվածքային հարցման լեզուով : Այս հոդվածում մենք ուսումնասիրում ենք CREATE DATABASE- ի եւ CREATE TABLE- ի հրամանների հետ ձեռքով սեղանների ստեղծման գործընթացը : Եթե ​​նոր եք SQL- ում, կարող եք ցանկանալ վերանայել մեր SQL Հիմնադրամի հոդվածը:

Բիզնես պահանջները

Մինչ մենք նստել ենք ստեղնաշարի վրա, մենք պետք է ապահովենք, որ մենք ունենք հստակ պատկերացում հաճախորդի պահանջների մասին: Որն է այս հասկացողությունը ստանալու լավագույն միջոցը: Հաճախորդի հետ խոսելը, իհարկե: XYZ- ի մարդկային ռեսուրսների տնօրենի հետ նստելուց հետո մենք իմանում ենք, որ դրանք վիդջեթ վաճառքի ընկերություն են եւ հիմնականում շահագրգռված են իրենց վաճառքի անձնակազմի վերաբերյալ տեղեկատվության հետեւում:

XYZ կորպորացիան բաժանում է իր վաճառքի ուժերը դեպի արեւելյան եւ արեւմտյան շրջանները, որոնցից յուրաքանչյուրը բաժանված է բազմաթիվ տարածքների, որոնք ներառում են առանձին վաճառքի ներկայացուցիչներ: Մարդկային ռեսուրսների վարչությունը կցանկանար հետեւել յուրաքանչյուր աշխատակցի կողմից ընդգրկված տարածքի, ինչպես նաեւ յուրաքանչյուր աշխատակցի աշխատավարձի մասին տեղեկատվության եւ վերահսկողության կառույցի հետ: Այս պահանջները բավարարելու համար մենք մշակել ենք այս աղյուսակի երեք աղյուսակից բաղկացած տվյալների բազա, որը ցույց է տրված այս էջում « Անձը-Հարաբերությունների» դիագրամում :

Ընտրելով տվյալների բազայի հարթակը

Մենք որոշել ենք օգտագործել տվյալների բազայի կառավարման համակարգ (կամ DBMS), որը կառուցված է կառուցվածքի հարցման լեզվով (SQL): Հետեւաբար, մեր բոլոր տվյալների բազան եւ սեղանի ստեղծման հրամանները պետք է գրված լինեն ANSI ստանդարտով:

Որպես հավելյալ օգուտ, ANSI- ի համապատասխան SQL- ը կօգտագործի, որպեսզի այս հրամանները աշխատեն ցանկացած DBMS- ի վրա, որն աջակցում է SQL ստանդարտին , ներառյալ Oracle- ը եւ Microsoft SQL Server- ը: Եթե ​​դեռ չեք ընտրել ձեր բազայի համար հարթակ, ապա տվյալների բազայի ծրագրային ապահովման ընտրանքները ձեզ ընտրության գործընթացի միջոցով ընթանում են:

Տվյալների բազայի ստեղծում

Մեր առաջին քայլը տվյալների բազայի ստեղծումն է: Շատ տվյալների բազայի կառավարման համակարգերը առաջարկում են տվյալների բազայի պարամետրերը հարմարեցնել այս քայլին, բայց մեր բազան միայն թույլ է տալիս պարզ տվյալների բազայի ստեղծումը: Ինչպես մեր բոլոր հրամանները, դուք կարող եք խորհրդակցել ձեր DBMS- ի փաստաթղթերը որոշելու համար, թե արդյոք ձեր կոնկրետ համակարգի կողմից աջակցվող առաջադեմ պարամետրերը բավարարում են ձեր կարիքները: Եկեք օգտագործենք CREATE DATABASE հրամանը `մեր տվյալների բազան ստեղծելու համար.

Ստեղծեք տվյալների բազայի անձնակազմը

Վերցրեք վերը նշված օրինակում օգտագործվող կապիտալիզացիայի հատուկ նշում: Այն սովորական պրակտիկա է, SQL ծրագրավորողների շրջանում օգտագործելու SQL- ի բոլոր հիմնարար տառերը SQL- ի համար, ինչպիսիք են «CREATE» եւ «DATABASE», օգտագործելով օգտագործողի անունով անունների համար բոլոր ստորին տառերը `« անձնակազմի »տվյալների բազայի անունը: Այս կոնվենցիաները ապահովում են հեշտ ընթերցանություն:

Շարունակեք կարդալ այս ձեռնարկը, երբ մենք ստեղծում ենք աղյուսակներ մեր տվյալների բազայում:

Ուսուցման ավելին

Եթե ​​ցանկանում եք ավելին իմանալ Structured Query Language- ի մասին , կարդալ SQL- ի ներածություն կամ գրանցվել անվճար սովորում SQL էլփոստի դասընթացի համար:

Այժմ, երբ մենք մշակել եւ ստեղծել ենք մեր բազան, մենք պատրաստ ենք սկսել XYZ կորպորացիայի անձնակազմի տվյալները պահելու համար օգտագործվող երեք աղյուսակների ստեղծումը: Մենք կիրագործենք սեղանները, որոնք մենք մշակել ենք այս ձեռնարկի նախորդ բաժնում:

Ստեղծելով մեր առաջին աղյուսակը

Մեր առաջին աղյուսակը բաղկացած է մեր ընկերության յուրաքանչյուր աշխատակիցի անձնական տվյալների հետ: Մենք պետք է ներառենք յուրաքանչյուր աշխատողի անունը, աշխատավարձը, ID- ն եւ ղեկավարը: Դա լավ դիզայնի պրակտիկա է վերջին եւ առաջին անունները առանձնացնել առանձին ոլորտներում `պարզելու համար տվյալների որոնման եւ դասակարգման ապագայում: Բացի այդ, մենք հետեւելու ենք յուրաքանչյուր աշխատակցի մենեջերին, յուրաքանչյուր աշխատակցի գրանցման մեջ հղում կատարելով կառավարչի աշխատողի ID- ին: Նախ եկեք նայենք ցանկալի աշխատակիցների սեղանին:

The ReportsTo հատկանիշը պահպանում է մենեջեր ID- ն յուրաքանչյուր աշխատողի համար: Ցուցադրված ընտրանքային գրառումներից մենք կարող ենք որոշել, որ Սյու Scampi- ն եւ Tom Kendall- ը եւ Ջոն Սմիթը մենեջեր են: Այնուամենայնիվ, Sue- ի մենեջերի տվյալների բազայում տեղեկություն չկա, ինչպես նշված է NULL- ի կողմից իր շարքում:

Այժմ մենք կարող ենք օգտագործել SQL- ը մեր անձնակազմի տվյալների բազայում ստեղծել աղյուսակը: Նախքան դա անելը, եկեք համոզվեք, որ մենք ճիշտ տվյալների բազայում ենք, USE- ի հրաման տալու միջոցով.

Օգտագործել անձնակազմը;

Այլապես, «DATABASE անձնակազմը»: հրամանը կատարելու է նույն գործառույթը: Այժմ մենք կարող ենք դիտարկել մեր աշխատակիցների աղյուսակը ստեղծելու համար օգտագործվող SQL հրահանգը:

CREATE TABLE- ի աշխատակիցները (աշխատակիցը INTEGER NOT NULL, ազգանունը VARCHAR (25) NOT NULL, անունը VARCHAR (25) NOT NULL, reportsto INTEGER NULL);

Ինչպես վերոնշյալ օրինակով, նշեք, որ ծրագրավորման կոնվենցիան թելադրում է, որ մենք օգտագործում ենք բոլոր հիմնական տառերը SQL- ի հիմնաբառերի համար եւ օգտագործողի անունով սյունակների եւ աղյուսակների համար փոքրատառ տառեր: Վերեւի հրամանը կարող է սկզբում շփոթեցնել, բայց իրականում կա մի պարզ կառույց: Ահա մի ընդհանուր տեսակետ, որը կարող է մի փոքր պարզ բաներ պարզել.

CREATE TABLE table_name (attribute_name տվյալների տիպի ընտրանքներ, ..., attribute_name datatype ընտրանքներ);

Հատկանիշներ եւ տվյալների տեսակները

Նախորդ օրինակում աղյուսակի անունը աշխատակից է, եւ մենք ներառում ենք չորս հատկանիշներ `աշխատակից, ազգանուն, ազգանուն եւ հաշվետվություն: Տվյալների տեսակը ցույց է տալիս այն տեղեկատվության տեսակը, որը ցանկանում ենք պահել յուրաքանչյուր ոլորտում: Աշխատողի ID- ն պարզ թվային համար է, այնպես որ մենք օգտագործում ենք INTEGER datatype- ը, այնպես էլ աշխատակիցների դաշտի եւ հաշվետվական դաշտի համար: Աշխատողների անունները փոփոխական երկարության գծերի տողեր են, եւ մենք չենք ակնկալում, որ որեւէ աշխատողի առաջին կամ վերջին ազգանունը ավելի երկար է, քան 25 նիշ: Հետեւաբար, մենք օգտագործում ենք VARCHAR (25) տիպը այդ դաշտերի համար:

NULL արժեքները

Մենք կարող ենք նաեւ նշել NULL- ը կամ NULL- ը CREATE- ի հայտարարության ընտրանքային դաշտում: Տվյալների բազայի շարքերն ավելացնումիս, դա պարզապես տալիս է տվյալների բազան, արդյոք NULL (կամ դատարկ) արժեքները թույլատրվում են այդ հատկանիշի համար: Մեր օրինակում, ՄՌ աշխատակազմը պահանջում է, որ յուրաքանչյուր աշխատողի համար աշխատողի ID եւ լրիվ անուն պահվի: Այնուամենայնիվ, ոչ բոլոր աշխատակիցները ունեն մենեջեր, գլխավոր տնօրենը ոչ մեկին չի հաղորդում: - այնպես որ մենք թույլ ենք տալիս NULL գրառումները այդ ոլորտում: Նշենք, որ NULL- ը լռելյայն արժեք է եւ այս տարբերակը բաց թողնելը անուղղակիորեն թույլ է տալիս NULL արժեքները հատկանիշի համար:

Կառուցեք մնացորդային սեղաններ

Այժմ եկեք տեսնենք տարածքների սեղանին: Այս տվյալների արագ տեսքից երեւում է, որ մենք պետք է պահենք մի ամբողջական եւ երկու փոփոխական երկարության տող: Ինչպես մեր նախորդ օրինակով, մենք չենք ակնկալում, որ Region ID- ն ավելի քան 25 նիշ է օգտագործում: Այնուամենայնիվ, որոշ տարածքներ ավելի երկար անուններ ունեն, այնպես որ մենք ընդլայնելու այդ հատկանիշի թույլատրելի երկարությունը մինչեւ 40 նիշ: Տեսնենք համապատասխան SQL- ը:

CREATE TABLE տարածքները (տարածքը INTEGER NOT NULL, տարածքը Նկարագրություն VARCHAR (40) NOT NULL, regionid VARCHAR (25) NOT NULL);

Ի վերջո, աշխատակիցները կօգտագործենք EmployeeTerritories սեղանին `աշխատողների եւ տարածքների միջեւ փոխհարաբերությունները պահպանելու համար: Յուրաքանչյուր աշխատակցի եւ տարածքի վերաբերյալ մանրամասն տեղեկություններ պահվում են նախորդ երկու աղյուսակում: Հետեւաբար, մենք պետք է միայն պահպանենք այս երկու թվերի նույնականացման համարները: Եթե ​​անհրաժեշտ է ընդլայնել այս տեղեկությունները, մենք կարող ենք օգտագործել JOIN- ը մեր ընտրանքային ընտրանքային հրամաններում `բազմակի աղյուսակներից ստացվող տեղեկությունները ստանալու համար: Տվյալների պահպանման այս մեթոդը նվազեցնում է մեր տվյալների բազայում ավելորդությունը եւ ապահովում է մեր պահեստային կրիչների վրա տարածության օպտիմալ օգտագործումը: Մենք կցուցադրենք JOIN հրամանը խորը հետագա ուսումնական ձեռնարկում: Ահա SQL կոդը `իրականացնելու մեր վերջնական աղյուսակը.

CREATE TABLE employeeterritories (աշխատակից INTEGER NOT NULL, տարածքի INTEGER NOT NULL);

Մեդիա մեխանիզմը ապահովում է տվյալների շտեմարանի կառուցվածքը փոխելուց հետո

Եթե ​​այսօր հատկապես սքանչելի եք, գուցե դուք նկատել եք, որ մենք «պատահաբար» մեր ստանդարտ սեղանները իրականացնելիս նախագծի պահանջներից մեկն է բաց թողնված: XYZ կորպորացիայի ՄՌԿ տնօրենը խնդրեց, որ տվյալների բազան հետեւի աշխատակիցների աշխատավարձի մասին տեղեկություն է եւ մենք անտեսում ենք դրա համար ստեղծված մեր տվյալների բազայի սեղաններում :

Սակայն, բոլորը չեն կորցրել: Մենք կարող ենք օգտագործել ALTER TABLE հրամանը, այս հատկանիշը ավելացնել մեր առկա տվյալների բազայում: Մենք ուզում ենք աշխատավարձը պահել որպես ամբողջական արժեք: Սինտացիան բավականին նման է CREATE TABLE հրամանին, այստեղ այն է `

ALTER TABLE- ի աշխատակիցները Add salary INTEGER NULL;

Նշենք, որ մենք նշեցինք, որ NULL- ի արժեքները թույլատրվում են այս հատկանիշի համար: Շատ դեպքերում, գոյություն ունեցող սեղանի վրա սյունակ ավելացնելիս, տարբերակ չկա: Դա պայմանավորված է այն հանգամանքով, որ աղյուսակը արդեն պարունակում է այս հատկանիշի մուտքի առանց տողեր: Հետեւաբար, DBMS ինքնաբերաբար ներդնում է NULL արժեքը լրացնելու համար դատարկությունը:

Եվ դա ընդգրկում է մեր նայում SQL տվյալների շտեմարանում եւ սեղանի ստեղծման գործընթացում: Ստուգեք հաճախ մեր նոր դասընթացների համար `մեր SQL դասընթացների շարքից: Եթե ​​ցանկանում եք էլեկտրոնային փոստի հիշեցում, երբ նոր հոդվածներ ավելացվում են «Տվյալների շտեմարանի» համար, վստահ լինենք, որ բաժանորդագրվեք մեր լրատուին: