SQL andmebaaside ja tabelite loomine

Andmebaasi loomine

Kas olete valmis struktureeritud päringuliigi andmebaaside ja tabelite loomiseks? Selles artiklis uurime tabelite loomise protsessi CREATE DATABASE ja CREATE TABLE käskudega käsitsi. Kui olete SQL-i uus, võite kõigepealt vaadata meie SQL-põhitõendite artiklit.

Ärivajadused

Enne klaviatuuri istumist peame tagama, et meil on kindel arusaam kliendi vajadustest. Milline on parim viis selle ülevaate saamiseks? Loomulikult räägitakse kliendiga! Pärast XYZi personalijuhtimisega istutamist oleme õppinud, et nad on vidinaid müüvad ettevõtted ja on peamiselt huvitatud oma müügipersonali teabe jälgimisest.

XYZ Corporation jagab oma müügipersonali ida- ja läänepiirkondadesse, millest igaüks jaguneb paljudeks piirkondadeks, mis on hõlmatud üksikute müügiparadionidega. Personaliamet soovib jälgida iga töötajaga hõlmatavat territooriumi, samuti iga töötaja palgaandmeid ja järelevalvestruktuuri. Nende nõuete täitmiseks oleme loonud andmebaasi, mis koosneb kolmest tabelist, mis on sellel lehel näidatud Entity-Relationship diagrammil .

Andmebaasiplatvormi valimine

Oleme otsustanud kasutada Struktureeritud päringu keel (SQL) põhinevat andmebaasi haldussüsteemi (või DBMS-d). Seetõttu peaks kogu meie andmebaasi ja laua loomise käsklused olema kirjutatud standardse ANSI SQL-ga silmas pidades.

Lisaväärtusega ANSI-ühilduva SQL-i kasutamine tagab, et need käsklused töötavad kõikides SQL-standardeid toetavates DBMSides, sealhulgas Oracle ja Microsoft SQL Server. Kui te pole veel oma andmebaasi platvormi valinud, pakub artikkel andmebaasi tarkvaravõimalusi valikuprotsessi kaudu.

Andmebaasi loomine

Meie esimene samm on luua andmebaas ise. Paljud andmebaasihaldussüsteemid pakuvad mitmeid samme andmebaasi parameetrite kohandamiseks sellel etapil, kuid meie andmebaas lubab lihtsalt andmebaasi loomist. Nagu kõigi meie käskude puhul, võite otsida DBMS-i dokumentatsioonist, et määrata kindlaks, kas teie konkreetses süsteemis toetatavad täpsemad parameetrid vastavad teie vajadustele. Kasutage andmebaasi loomiseks käsku CREATE DATABASE:

Loo andmebaasi personal

Võtke eriti arvesse ülaltoodud näites kasutatud kapitaliseerimist. SQL-programmeerijate puhul on tavaline kasutada SQL-i märksõnade jaoks kõiki suurtähti, nagu "CREATE" ja "DATABASE", kasutades kõiki väiketähti kasutaja määratud nimede jaoks nagu "personali" andmebaasi nimi. Need konventsioonid tagavad lihtsa loetavuse.

Jätkake selle juhendi lugemist, kui loome meie andmebaasi tabeleid.

Õppida rohkem

Kui soovite saada rohkem teavet struktureeritud päringuliigi kohta , lugege SQL-i sissejuhatust või registreeruge meie tasuta õppe SQL-i e-posti kursusele.

Nüüd, kui oleme loonud ja loonud oma andmebaasi, oleme valmis alustama kolme tabeli loomist, mida kasutatakse XYZ Corporationi personaliandmete salvestamiseks. Me kasutame neid tabeleid, mille kujundasime selle juhendaja eelmises osas.

Meie esimese laua loomine

Meie esimene tabel koosneb ettevõtte iga töötaja isikuandmetest. Peame lisama iga töötaja nime, palga, ID ja halduri. Hea disaini tava on eraldada peamised ja eesnimed eraldi väljadesse, et lihtsustada andmete otsimist ja sorteerimist tulevikus. Samuti jälgime iga töötaja haldurit, sisestades iga töötajate registrisse viite juhi töötaja ID-le. Vaatame kõigepealt soovitud töötaja laua.

Atribuut ReportsTo salvestab iga töötaja haldaja ID. Valitud andmete põhjal võime otsustada, et Sue Scampi on Tom Kendalli ja John Smithi juht. Siiski ei ole Sue'i halduril andmebaasis teavet, nagu näitab tema reas NULL-i sissekanne .

Nüüd saame kasutada SQL-i tabeli loomiseks meie personali andmebaasis. Enne kui me teeme seda, laskem tagada, et oleme õiges andmebaasis, väljastades käskluse USE:

KASUTAJATE personal;

Teine võimalus on "DATABIAJA personal"; käsk täidaks sama funktsiooni. Nüüd võime vaadata SQL käsku, mida meie töötajate tabeli loomiseks kasutatakse:

CREATE TABLE töötajad (employeeid INTEGER NOT NULL, perekonnanimi VARCHAR (25) EI NULL, eesnimi VARCHAR (25) EI NULL, reportsto INTEGER NULL);

Nagu ülaltoodud näite puhul, pidage meeles, et programmeerimiskonventsioon näeb ette, et kasutame kõikides suurväljades SQL-i märksõnu ja väiketähte kasutajanimede veergudeks ja tabeliteks. Ülalolev käsu võib esialgu tunduda segadusse, kuid selle taga on tegelikult lihtne struktuur. Siin on üldine vaade, mis võib mõnevõrra tühjendada:

CREATE TABLE table_name (atribuut_nimi datatype options, ..., attribute_name datatype options);

Atribuudid ja andmetüübid

Eelmises näites on tabeli nimi töötajad ja meil on neli atribuuti: töötaja, perekonnanimi, eesnimi ja aruanded. Andmetüüp näitab, millist teavet soovite igas valdkonnas salvestada. Töötaja ID on lihtne täisarv, seega kasutame INTEGERi andmetüüpi nii töötaja väli kui ka aruande valdkonnas. Töötaja nimed on muutuva pikkusega märgistringid ja me ei eeldata, et igal töötajal oleks ees- või perekonnanimi pikem kui 25 tähemärki. Seetõttu kasutavad need väljad VARCHARi (25) tüüpi.

NULL väärtused

Samuti võime CREATEi väljavõtte valikuväljal määrata kas NULL või NOT NULL . See lihtsalt annab andmebaasile teada, kas andmebaasi ridade lisamisel on selle atribuudi jaoks lubatud atribuudid NULL (või tühjad). Meie näites nõuab inimressursside osakond iga töötaja jaoks töötaja ID-d ja täielikku nime. Kuid mitte kõigil töötajatel pole juhti - tegevjuht ei tea keegi! - nii et me lubame selles valdkonnas NULL-i kirjeid. Pange tähele, et vaikimisi väärtus on NULL, ja selle valiku tühistamisel lubatakse kaudselt atribuudi NULL väärtusi.

Ehitusjäänud lauad

Nüüd vaatame territooriumi tabelit. Andmete kiire vaatamise tulemusena tundub, et peame salvestama täisarvu ja kahte muutuva pikkusega stringi. Nagu meie eelmine näide, ei oota me, et piirkonna ID tarbiks rohkem kui 25 tähemärki. Kuid mõnel meie territooriumil on pikemad nimed, seega laiendame selle atribuudi lubatavat pikkust 40 tähemärgini. Vaatame vastavat SQL-i:

CREATE TABLE territories (territoriesid INTEGER NOT NULL, territory Kirjeldus VARCHAR (40) NOT NULL, regionid VARCHAR (25) NOT NULL);

Lõpuks kasutame töötajate ja territooriumide vahelise suhte salvestamiseks tabelit EmployeeTerritories. Üksikasjalik teave iga töötaja ja territooriumi kohta on salvestatud meie kahes eelmises tabelis. Seetõttu peame ainult selles tabelis kaks täisarvu identifitseerimisnumbrit salvestama. Kui me peame selle teabe laiendama, võime kasutada meie andmete valikukäsudest JOINI, et saada teavet mitmest tabelist. See andmete säilitamise meetod vähendab koondamist meie andmebaasis ja tagab ruumi optimaalse kasutamise meie salvestusseadmetele. Me käsitleme JOIN-i käsku põhjalikult tulevases õpetuses. Siin on meie lõpliku tabeli rakendamiseks SQL kood:

CREATE TABLE tööterritooriumid (töötaja INTEGER NOT NULL, territoryid INTEGER NOT NULL);

SQL mehhanism tagab andmebaasi struktuuri muutmise pärast loomist

Kui olete täna eriti vaevunud, võite olla märganud, et me "juhuslikult" jättis kasutamata meie andmebaasi tabelite kasutamisel ühe disainilahenduse nõude. XYZ Corporation'i HR direktor nõudis, et andmebaas jälgiks palgatöötajate andmeid, ja me ei võtnud seda ette meie loodud andmebaasi tabelites .

Kuid kõik pole kaotatud. Selle atribuudi lisamiseks olemasolevasse andmebaasi võime kasutada käsku ALTER TABLE. Me soovime palka säilitada täisväärtusena. Süntaks on päris sarnane CREATE TABLE käsuga, siin on see:

ALTER TABLE töötajad lisa palga INTEGER NULL;

Pange tähele, et me märkisime, et selle atribuudi jaoks on lubatud NULL väärtused. Enamikul juhtudel ei ole olemasoleva tabeli veeru lisamisel muud võimalust. Selle põhjuseks on asjaolu, et tabel sisaldab juba ridu, millel pole seda atribuuti. Seepärast lisab DBMS automaatselt tühimiku täitmiseks NULL väärtuse .

See omakorda muudab meie pilk SQL andmebaasi ja tabeli loomise protsessi. Kontrollige sageli uusi osamakseid meie SQL juhendaja sarjas. Kui soovite e-kirja meeldetuletuse, kui Andmebaaside saidile lisatakse uued artiklid, siis kindlasti tellige meie uudiskiri!