Andmebaaside ja tabelite loomine SQL-is

click fraud protection

Kas olete valmis alustama andmebaaside ja tabelite loomist rakendusega Struktureeritud päringukeel? Selles artiklis uurime tabelite loomise käsitsi käskudega CREATE DATABASE ja CREATE TABLE. Kui olete SQL-i jaoks uus, võiksite mõne neist üle vaadata SQL põhitõed kõigepealt.

Ärinõuded

Enne klaviatuuri taha istumist peame veenduma, et mõistame kindlalt kliendi nõudeid. Mis on parim viis selle ülevaate saamiseks? Loomulikult kliendiga rääkimine! Pärast XYZ-i personalidirektoriga istumist oleme teada saanud, et nad on vidinate müügifirma ja on peamiselt huvitatud müügitöötajate teabe jälgimisest.

XYZ Corporation jagab oma müügijõud ida- ja läänepiirkondadeks, millest igaüks on jagatud paljudeks territooriumiteks, mida hõlmavad üksikud müügiesindajad. Personaliosakond soovib jälgida iga töötaja kaetud territooriumi, samuti iga töötaja palgateavet ja järelevalve struktuuri. Nende nõuete täitmiseks oleme loonud kolmest tabelist koosneva andmebaasi, mis on näidatud tabelis Üksuse-suhte diagramm sellel lehel.

instagram viewer

Andmebaasiplatvormi valimine

Oleme otsustanud kasutada a andmebaaside haldussüsteem (või DBMS), mis on üles ehitatud struktureeritud päringukeelele (SQL). Seetõttu tuleks kõik meie andmebaasi ja tabeli loomise käsud kirjutada ANSI SQL-i silmas pidades.

Lisahüvena tagab ANSI-ga ühilduva SQL-i kasutamine, et need käsud töötaksid mis tahes DBMS-is, mis toetab SQL-i standardit, sealhulgas Oracle ja Microsoft SQL Server. Kui te pole oma andmebaasi jaoks veel platvormi valinud, tutvustab andmebaasitarkvara suvandid teid valimisprotsessi.

Andmebaasi loomine

Meie esimene samm on andmebaasi enda loomine. Paljud andmebaasihaldussüsteemid pakuvad selles etapis rida võimalusi andmebaasi parameetrite kohandamiseks, kuid meie andmebaas lubab andmebaasi lihtsalt luua. Nagu kõigi meie käskude puhul, võite ka oma DBMS-i dokumentatsiooniga tutvuda, et teha kindlaks, kas mõni teie süsteemi toetatud täpsem parameeter vastab teie vajadustele. Kasutame andmebaasi seadistamiseks käsku CREATE DATABASE:

LOO ANDMEBAASI töötajad

Pange tähele ülaltoodud näites kasutatud suurtähti. SQL-i programmeerijate seas on tavapärane kasutada kõiki suurtähti SQL-i märksõnade jaoks, näiteks "CREATE" ja "DATABASE", kui kasutate kõiki väiketähti kasutaja määratletud nimede jaoks nagu andmebaas "personal" nimi. Need kokkulepped tagavad hõlpsasti loetavuse.

Nüüd, kui oleme oma andmebaasi kujundanud ja loonud, oleme valmis alustama kolme tabeli loomist, mida kasutatakse XYZ Corporationi personaliandmete salvestamiseks.

Meie esimese tabeli loomine

Meie esimene tabel koosneb iga meie ettevõtte töötaja isikuandmetest. Peame lisama iga töötaja nime, palga, isikutunnistuse ja juhi. Hea disainipraktika on eraldada perekonnanimi ja eesnimi eraldi väljadeks, et tulevikus andmete otsimist ja sortimist lihtsustada. Samuti jälgime iga töötaja juhti, lisades igasse töötaja kirjesse viite juhi töötaja ID-le. Vaatame kõigepealt soovitud töötajate tabelit.

Atribuut ReportsTo salvestab iga töötaja halduri ID. Näidatud proovikirjete põhjal saame teha kindlaks, et Sue Scampi on nii Tom Kendalli kui ka John Smithi mänedžer. Kuid andmebaasis puudub teave Sue halduri kohta, nagu näitab tema rea ​​NULL-kirje.

Nüüd saame kasutada SQL-i tabeli loomiseks oma personali andmebaasis. Enne seda veendume, et oleme õiges andmebaasis, väljastades käsu USE:

KASUTA personali;

Teise võimalusena võib märkida "ANDMEBAASI töötajad"; käsk täidaks sama funktsiooni. Nüüd saame heita pilgu SQL-i käsule, mida kasutati meie töötajate tabeli loomiseks:

LOE TABEL töötajad
(töötaja ID INTEGER NOT NULL,
perekonnanimi VARCHAR (25) EI NULL,
eesnimi VARCHAR (25) EI NULL,
aruanded INTEGER NULL);

Nagu ülaltoodud näites, pange tähele, et programmeerimiskonventsioon nõuab, et me kasutaksime kõiki suurtähti SQL-i märksõnade jaoks ja väiketähti kasutajanimega veergude ja tabelite jaoks. Ülaltoodud käsk võib esialgu tunduda segane, kuid tegelikult on selle taga lihtne struktuur. Siin on üldistatud vaade, mis võib asjad veidi selgeks teha:

LOE TABEL tabeli_nimi
(atribuudi_nimi andmetüübi valikud,
...,
atribuudi_nimi andmetüübi valikud);

Atribuudid ja andmetüübid

Eelmises näites on tabeli nimi töötajad ja me kaasame neli atribuudid: töötaja nimi, perekonnanimi, eesnimi ja aruanded. Andmetüüp näitab, millist tüüpi teavet soovime igale väljale salvestada. Töötaja ID on lihtne täisarv, seega kasutame andmevormi INTEGER nii väljale töötaja ID kui ka väljale reportsto. Töötajate nimed on erineva pikkusega tähemärgistringid ja me ei eelda, et ühelgi töötajal oleks ees- või perekonnanimi pikem kui 25 tähemärki. Seetõttu kasutame nende väljade jaoks VARCHAR (25) tüüpi.

NULL Väärtused

Samuti võime täpsustada kumbagi NULL või NOT NULL avaldise CREATE suvandite väljal. See lihtsalt ütleb andmebaasile, kas andmebaasi ridade lisamisel on selle atribuudi jaoks lubatud NULL (või tühjad) väärtused. Meie näites nõuab personaliosakond, et igale töötajale salvestatakse töötaja ID ja täielik nimi. Igal töötajal pole aga juhti (tegevjuht annab kellelegi aru!), Seega lubame sellele väljale NULL kirjet. Pange tähele, et NULL on vaikeväärtus ja selle valiku väljajätmine lubab kaudselt atribuudi NULL-väärtusi.

Ülejäänud tabelite ehitamine

Vaatame nüüd territooriumide tabelit. Nende andmete kiirest vaatamisest selgub, et peame salvestama täisarvu ja kaks muutuva pikkusega stringi. Nagu meie eelmise näite puhul, ei looda me ka, et piirkonna ID tarbiks rohkem kui 25 tähemärki. Mõnel meie territooriumil on aga pikemad nimed, mistõttu laiendame selle atribuudi lubatud pikkust 40 tähemärgini.

Vaatame vastavat SQL-i:

LOE TABEL territooriumid
(territooriumil INTEGRE NOT NULL,
territoorium Kirjeldus VARCHAR (40) NOT NULL,
piirkondlik VARCHAR (25) EI NULL);

Lõpuks kasutame töötajate ja territooriumide vaheliste suhete salvestamiseks tabelit EmployeeTerritories. Üksikasjalik teave iga töötaja ja territooriumi kohta on salvestatud meie kahele eelmisele tabelile. Seetõttu peame sellesse tabelisse salvestama ainult kaks täisarvu identifitseerimisnumbrit. Kui peame seda teavet laiendama, saame andmete valimise käskudes kasutada JOIN-i, et saada teavet mitmest tabelist.

See andmete salvestamise meetod vähendab meie andmebaasi üleliigsust ja tagab meie kettaseadmete optimaalse kasutamise. Käsitleme JOIN-i põhjalikult järgmises õpetuses. Meie lõpliku tabeli rakendamiseks on siin SQL-kood:

LOE TABEL töölauareklaamid
(töötaja ID INTEGER NOT NULL,
territooriumil INTEGRE NOT NULL);

SQL-i mehhanism võimaldab pärast loomist muuta andmebaasi struktuuri

Kui olete täna eriti terav, võite olla märganud, et jätsime oma andmebaasitabelite juurutamisel ühe kogemata ühe disaininõude välja. XYZ Corporationi personalidirektor palus, et andmebaas jälgiks töötajate palgateavet, ja jätsime selle andmata meie loodud andmebaasitabelites.

Kuid kõik pole veel kadunud. Selle atribuudi lisamiseks meie olemasolevasse andmebaasi saame kasutada käsku ALTER TABLE. Tahame salvestada palka täisarvuna. Süntaks on üsna sarnane käsuga CREATE TABLE, siin see on:

ALTER TABLE töötajad
LISAKSE palk INTEGER NULL;

Pange tähele, et me täpsustasime, et selle atribuudi jaoks on lubatud NULL väärtused. Enamikul juhtudel pole veeru olemasolevale tabelile lisamise võimalust. Selle põhjuseks on asjaolu, et tabelis on juba ridu, millel pole selle atribuudi sisestust. Seetõttu lisab DBMS tühimiku täitmiseks NULL-väärtuse.

instagram story viewer