Datu bāzes un tabulu izveide SQL

Vai esat gatavs sākt veidot datubāzes un tabulas ar Strukturēta vaicājumu valoda? Šajā rakstā mēs izpētām tabulu izveides procesu manuāli, izmantojot komandas CREATE DATABASE un CREATE TABLE. Ja esat jauns SQL lietotājs, ieteicams tos pārskatīt SQL pamati vispirms.

Biznesa prasības

Pirms mēs apsēžamies pie tastatūras, mums jāpārliecinās, ka mums ir skaidra izpratne par klienta prasībām. Kāds ir labākais veids, kā iegūt šo ieskatu? Protams, runājam ar klientu! Pēc apsēšanās ar XYZ cilvēkresursu direktoru esam uzzinājuši, ka viņi ir logrīku pārdošanas uzņēmums un galvenokārt interesējas par informācijas izsekošanu par savu pārdošanas personālu.

XYZ Corporation sadala savus pārdošanas spēkus austrumu un rietumu reģionos, no kuriem katrs ir sadalīts daudzās teritorijās, uz kurām attiecas atsevišķi tirdzniecības pārstāvji. Personāla nodaļa vēlētos izsekot teritoriju, uz kuru attiecas katrs darbinieks, kā arī informāciju par katra darbinieka algu un uzraudzības struktūru. Lai izpildītu šīs prasības, mēs esam izveidojuši datu bāzi, kas sastāv no trim tabulām, kas parādītas

instagram viewer
Entītiju-attiecību diagramma šajā lapā.

Datu bāzes platformas izvēle

Mēs esam nolēmuši izmantot a datu bāzes pārvaldības sistēma (vai DBVS), kas ir veidota uz strukturētās vaicājumu valodas (SQL). Tāpēc visas mūsu datu bāzes un tabulas izveides komandas ir jāraksta, paturot prātā standarta ANSI SQL.

Kā papildu ieguvums, izmantojot ANSI saderīgu SQL, šīs komandas darbosies jebkurā DBVS, kas atbalsta SQL standartu, tostarp Oracle un Microsoft SQL Server. Ja vēl neesat izvēlējies platformu savai datu bāzei, datu bāzes programmatūras opcijas iepazīstina jūs ar atlases procesu.

Datu bāzes izveidošana

Mūsu pirmais solis ir pašas datu bāzes izveide. Daudzas datu bāzes pārvaldības sistēmas piedāvā virkni iespēju pielāgot datu bāzes parametrus šajā posmā, taču mūsu datu bāze ļauj vienkārši izveidot datu bāzi. Tāpat kā ar visām mūsu komandām, iespējams, vēlēsities iepazīties ar DBVS dokumentāciju, lai noteiktu, vai kādi jūsu sistēmas atbalstītie uzlabotie parametri atbilst jūsu vajadzībām. Izmantosim komandu CREATE DATABASE, lai iestatītu mūsu datu bāzi:

IZVEIDOT DATU BĀZES personālu

Īpaši ņemiet vērā lielajā burtu lietojumu, kas izmantots iepriekšējā piemērā. SQL programmētāju vidū ir parasta prakse izmantot visus lielos burtus SQL atslēgvārdiem, piemēram, "CREATE" un "DATU BĀZE", vienlaikus izmantojot visus mazos burtus lietotāja definētiem vārdiem, piemēram, "personāla" datu bāzei nosaukums. Šīs konvencijas nodrošina vieglu lasāmību.

Tagad, kad mēs esam izstrādājuši un izveidojuši savu datu bāzi, mēs esam gatavi sākt veidot trīs tabulas, kas tiek izmantotas XYZ Corporation personāla datu glabāšanai.

Mūsu pirmās tabulas izveide

Mūsu pirmā tabula sastāv no katra mūsu uzņēmuma darbinieka personas datiem. Mums jāiekļauj katra darbinieka vārds, alga, personas kods un vadītājs. Dizaina prakse ir pēdējā un vārda atdalīšana atsevišķos laukos, lai nākotnē vienkāršotu datu meklēšanu un kārtošanu. Mēs arī sekosim katra darbinieka vadītājam, katrā darbinieka ierakstā ievietojot atsauci uz vadītāja darbinieka ID. Vispirms apskatīsim vēlamo darbinieku tabulu.

Atribūts ReportsTo saglabā katra darbinieka vadītāja ID. Pēc parādītajiem ierakstu ierakstiem mēs varam noteikt, ka Sjū Scampi ir gan Toma Kendala, gan Džona Smita vadītājs. Tomēr datu bāzē nav informācijas par Sue vadītāju, kā norāda NULL ieraksts viņas rindā.

Tagad mēs varam izmantot SQL, lai izveidotu tabulu mūsu personāla datu bāzē. Pirms to darīsim, pārliecinoties, ka atrodamies pareizajā datu bāzē, izsniedzot komandu USE:

LIETOT personālu;

Alternatīvi, "DATU BĀZES personāls"; komanda izpildītu to pašu funkciju. Tagad mēs varam apskatīt SQL komandu, ko izmanto, lai izveidotu mūsu darbinieku tabulu:

IZVEIDOT GALDA darbiniekus
(darbinieks INTEGER NOT NULL,
uzvārds VARCHAR (25) NAV NULL,
vārds VARCHAR (25) NAV NULL,
reportsto INTEGER NULL);

Tāpat kā iepriekš minētajā piemērā, ņemiet vērā, ka programmēšanas kārtība nosaka, ka mēs izmantojam visus lielos burtus SQL atslēgvārdiem un mazos burtus lietotāja nosauktajām kolonnām un tabulām. Sākotnējā komanda sākumā var šķist mulsinoša, taču patiesībā aiz tās ir vienkārša struktūra. Šeit ir vispārināts skats, kas varētu mazliet noskaidrot lietas:

CREATE TABLE tabulas_nosaukums
(atribūta_nosaukums datu tipa opcijas,
...,
atribūta_nosaukums datatipa opcijas);

Atribūti un datu veidi

Iepriekšējā piemērā tabulas nosaukums ir darbinieki, un mēs iekļaujam četrus atribūti: darbinieks, uzvārds, vārds un atskaite. Datu tips norāda informācijas veidu, kuru mēs vēlamies saglabāt katrā laukā. Darbinieka ID ir vienkāršs vesels skaitlis, tāpēc mēs izmantosim INTEGER datu tipu gan darbinieka laukam, gan laukam reportsto. Darbinieku vārdi būs mainīga garuma rakstzīmju virknes, un mēs negaidām, ka nevienam darbiniekam vārds vai uzvārds būs garāks par 25 rakstzīmēm. Tādēļ šiem laukiem izmantosim veidu VARCHAR (25).

NULL vērtības

Varam arī precizēt vai nu NULL vai NOT NULL paziņojuma CREATE opciju laukā. Tas vienkārši norāda datu bāzei, vai šim atribūtam ir atļautas NULL (vai tukšas) vērtības, pievienojot datu bāzei rindas. Mūsu piemērā personāla departaments pieprasa, lai katram darbiniekam tiktu saglabāts darbinieka ID un pilns vārds. Tomēr ne katram darbiniekam ir vadītājs (izpilddirektors atskaitās nevienam!), Tāpēc mēs šajā laukā atļaujam NULL ierakstus. Ņemiet vērā, ka noklusējuma vērtība ir NULL, un, izlaižot šo opciju, netieši tiks atļautas atribūta NULL vērtības.

Atlikušo galdu veidošana

Tagad apskatīsim teritoriju tabulu. Ātri apskatot šos datus, šķiet, ka mums ir jāuzglabā vesels skaitlis un divas mainīga garuma virknes. Tāpat kā mūsu iepriekšējā piemērā, mēs nedomājam, ka reģiona ID patērēs vairāk par 25 rakstzīmēm. Tomēr dažām mūsu teritorijām ir garāki nosaukumi, tāpēc mēs paplašināsim šī atribūta pieļaujamo garumu līdz 40 rakstzīmēm.

Apskatīsim atbilstošo SQL:

IZVEIDOT GALDA teritorijas
(teritorijas INTEGER NOT NULL,
teritorija Apraksts VARCHAR (40) NOT NULL,
reģions VARCHAR (25) NAV NULL);

Visbeidzot, mēs izmantosim tabulu EmployeeTerritories, lai saglabātu attiecības starp darbiniekiem un teritorijām. Detalizēta informācija par katru darbinieku un teritoriju tiek glabāta mūsu iepriekšējās divās tabulās. Tāpēc mums šajā tabulā ir jāuzglabā tikai divi veseli skaitļi. Ja mums ir jāpaplašina šī informācija, datu atlases komandās mēs varam izmantot JOIN, lai iegūtu informāciju no vairākām tabulām.

Šī datu glabāšanas metode samazina dublēšanos mūsu datu bāzē un nodrošina optimālu vietas izmantošanu mūsu atmiņas diskos. Nākamajā apmācībā mēs padziļināti aplūkosim komandu JOIN. Šeit ir SQL kods, lai ieviestu mūsu galīgo tabulu:

IZVEIDOT TABULU darbvirsmas
(darbinieks INTEGER NOT NULL,
teritorijas INTEGER NOT NULL);

Mehānisms SQL nodrošina datu bāzes struktūras maiņu pēc izveides

Ja šodien esat īpaši apdomīgs, iespējams, pamanījāt, ka, ieviešot mūsu datu bāzes tabulas, mēs "nejauši" izlaidām vienu no dizaina prasībām. XYZ Corporation personāla direktors pieprasīja, lai datu bāze izsekotu informāciju par darbinieku algām, un mēs to nolaidām norādīt savās izveidotajās datu bāzes tabulās.

Tomēr viss nav zaudēts. Lai pievienotu šo atribūtu mūsu esošajai datu bāzei, mēs varam izmantot ALTER TABLE komandu. Mēs vēlamies saglabāt algu kā veselu skaitli. Sintakse ir diezgan līdzīga komandai CREATE TABLE, šeit tā ir:

ALTER TABLE darbinieki
PIEVIENOT algu INTELER NULL;

Ievērojiet, ka mēs norādījām, ka šim atribūtam ir atļautas NULL vērtības. Vairumā gadījumu kolonnas pievienošana esošai tabulai nav iespējama. Tas ir saistīts ar faktu, ka tabulā jau ir rindas bez šī atribūta ieraksta. Tāpēc DBVS automātiski ievieto NULL vērtību, lai aizpildītu tukšumu.