Oletko valmis aloittamaan tietokantojen ja taulukoiden luomisen Jäsennelty kyselykieli? Tässä artikkelissa tutkitaan taulukoiden luomisprosessia manuaalisesti CREATE DATABASE ja CREATE TABLE -komennoilla. Jos olet uusi SQL-käyttäjä, saatat haluta tarkistaa joitain SQL-perusteet ensimmäinen.
Liiketoiminnan vaatimukset
Ennen kuin istumme näppäimistön äärelle, meidän on varmistettava, että ymmärrämme vakaasti asiakkaan vaatimukset. Mikä on paras tapa saada tämä oivallus? Tietysti puhuminen asiakkaalle! Istuttuamme XYZ: n henkilöstöjohtajan kanssa olemme oppineet, että he ovat widget-myyntiyhtiö ja ovat ensisijaisesti kiinnostuneita seuraamaan myyntihenkilöstön tietoja.
XYZ Corporation jakaa myyntivoimansa itäisiin ja läntisiin alueisiin, joista kukin on jaettu monille alueille, joihin yksittäiset myyntiedustajat kuuluvat. Henkilöstöosasto haluaa seurata kunkin työntekijän kattamaa aluetta sekä kunkin työntekijän palkkatietoja ja valvontarakennetta. Näiden vaatimusten täyttämiseksi olemme suunnitelleet tietokannan, joka koostuu kolmesta taulukosta
Entiteetti-suhdekaavio tällä sivulla.Tietokanta-alustan valinta
Olemme päättäneet käyttää a tietokannan ohjausjärjestelmä (tai DBMS), joka on rakennettu strukturoidulle kyselykielelle (SQL). Siksi kaikki tietokannan ja taulukoiden luomiskomennot tulisi kirjoittaa ANSI SQL -standardit huomioon ottaen.
Lisäetuna ANSI-yhteensopivan SQL: n käyttö varmistaa, että nämä komennot toimivat kaikilla DBMS: llä, jotka tukevat SQL-standardia, mukaan lukien Oracle ja Microsoft SQL Server. Jos et ole vielä valinnut tietokannan alustaa, Database Software Options opastaa sinut valintaprosessissa.
Tietokannan luominen
Ensimmäinen askel on luoda itse tietokanta. Monet tietokannan hallintajärjestelmät tarjoavat sarjan vaihtoehtoja tietokannan parametrien mukauttamiseksi tässä vaiheessa, mutta tietokanta sallii vain yksinkertaisen tietokannan luomisen. Kuten kaikkien komentojemme kohdalla, saatat haluta tutustua DBMS: n dokumentaatioon sen selvittämiseksi, vastaavatko tietyn järjestelmän tukemat edistyneet parametrit tarpeitasi. Määritetään tietokanta CREATE DATABASE -komennolla:
LUO TIETOKANTA-henkilöstö
Ota huomioon erityisesti yllä olevassa esimerkissä käytetty isot kirjaimet. SQL-ohjelmoijien keskuudessa on yleistä käytäntöä käyttää isoja kirjaimia SQL-avainsanoille, kuten "LUO" ja "TIETOKANTA", kun käytät kaikkia pieniä kirjaimia käyttäjän määrittelemissä nimissä, kuten "henkilöstö" -tietokannassa nimi. Nämä käytännöt tarjoavat helpon luettavuuden.
Nyt kun olemme suunnitelleet ja luoneet tietokannan, olemme valmiita aloittamaan kolmen taulukon luomisen, joita käytetään XYZ Corporationin henkilöstötietojen tallentamiseen.
Ensimmäisen taulukon luominen
Ensimmäinen taulukko koostuu jokaisen yrityksemme työntekijän henkilötiedoista. Meidän on sisällytettävä jokaisen työntekijän nimi, palkka, henkilötodistus ja johtaja. Suunnittelukäytännössä on hyvä erottaa sukunimi ja etunimi erillisiksi kenteiksi tiedonhaun ja lajittelun yksinkertaistamiseksi jatkossa. Seuraamme myös jokaisen työntekijän johtajaa lisäämällä viittaus johtajan työntekijätunnukseen jokaisen työntekijän tietueeseen. Katsotaan ensin ensin haluttu työntekijätaulukko.
ReportsTo-attribuutti tallentaa kunkin työntekijän esimiehen tunnuksen. Esitetyistä näytetiedoista voimme todeta, että Sue Scampi on sekä Tom Kendallin että John Smithin johtaja. Tietokannassa ei kuitenkaan ole tietoja Suen päälliköstä, kuten hänen rivinsä NULL-merkintä osoittaa.
Nyt voimme luoda SQL-taulukon taulukon luomiseen henkilöstötietokantaan. Ennen kuin teemme niin, varmistetaan, että olemme oikeassa tietokannassa antamalla USE-komennon:
KÄYTÄ henkilöstöä;
Vaihtoehtoisesti "DATABASE-henkilöstö" komento suorittaa saman toiminnon. Nyt voimme tutustua SQL-komentoon, jota käytetään työntekijöidemme taulukon luomiseen:
LUO TAULUKON työntekijät
(työntekijä INTEGER EI NULL,
sukunimi VARCHAR (25) EI NULL,
etunimi VARCHAR (25) EI NULL,
raportit INTEGER NULL);
Kuten edellisessä esimerkissä, huomaa, että ohjelmointikäytäntö määrää, että käytämme kaikkia isoja kirjaimia SQL-avainsanoihin ja pieniä kirjaimia käyttäjänimellisiin sarakkeisiin ja taulukoihin. Yllä oleva komento saattaa tuntua aluksi sekavalta, mutta sen takana on oikeastaan yksinkertainen rakenne. Tässä on yleinen näkymä, joka saattaa selvittää asiat hieman:
LUO TAULUKKO table_name
(attribute_name tietotyypin asetukset,
...,
attribute_name tietotyypin asetukset);
Attribuutit ja tietotyypit
Edellisessä esimerkissä taulukon nimi on työntekijöitä, ja sisällytämme siihen neljä määritteet: työntekijä, sukunimi, etunimi ja raportti. Tietotyyppi osoittaa, minkä tyyppisiä tietoja haluamme tallentaa kullekin kentälle. Työntekijätunnus on yksinkertainen kokonaisluku, joten käytämme INTEGER-tietotyyppiä sekä työntekijä-kentässä että raporttikentässä. Työntekijöiden nimet ovat vaihtelevan pituisia merkkijonoja, emmekä odota kenenkään työntekijän olevan yli 25 merkin pituinen etu- tai sukunimi. Siksi käytämme VARCHAR (25) -tyyppiä näissä kentissä.
NULL-arvot
Voimme myös määrittää joko NULL tai NOT NULL CREATE-käskyn vaihtoehtokentässä. Tämä kertoo tietokannalle yksinkertaisesti, sallitaanko NULL (tai tyhjät) arvot kyseiselle attribuutille, kun rivejä lisätään tietokantaan. Esimerkissämme henkilöstöosasto vaatii, että työntekijän henkilötunnus ja täydellinen nimi tallennetaan jokaiselle työntekijälle. Kaikilla työntekijöillä ei kuitenkaan ole johtajaa (toimitusjohtaja raportoi kenellekään!), Joten sallimme NULL-merkinnät tälle kentälle. Huomaa, että NULL on oletusarvo ja tämän vaihtoehdon jättäminen sallii implisiittisesti NULL-arvot attribuutille.
Jäljellä olevien taulukoiden rakentaminen
Katsotaan nyt alueitaulukkoa. Kun tarkastelemme näitä tietoja nopeasti, näyttää siltä, että meidän on tallennettava kokonaisluku ja kaksi muuttuvapituista merkkijonoa. Kuten edellisessä esimerkissämme, emme odota, että Region ID kuluttaa yli 25 merkkiä. Joillakin alueillamme on kuitenkin pidempi nimi, joten laajennamme määritteen sallitun pituuden 40 merkkiin.
Katsotaanpa vastaavaa SQL: ää:
LUO TAULUKKO-alueet
(alueellinen INTEGER EI NULL,
alue Kuvaus VARCHAR (40) EI NULL,
alueellinen VARCHAR (25) EI NULL);
Lopuksi käytämme EmployeeTerritories-taulukkoa työntekijöiden ja alueiden välisten suhteiden tallentamiseen. Yksityiskohtaiset tiedot kustakin työntekijästä ja alueesta on tallennettu kahteen edelliseen taulukkoon. Siksi meidän on vain tallennettava kaksi kokonaisluvun tunnistenumeroa tähän taulukkoon. Jos meidän on laajennettava näitä tietoja, voimme käyttää JOIN-tiedostoa tiedonvalintakomenteissamme saadaksesi tietoja useista taulukoista.
Tämä tietojen tallennusmenetelmä vähentää redundanssia tietokannassamme ja varmistaa optimaalisen tilankäytön tallennusasemillamme. Käsittelemme JOIN-komennon perusteellisesti tulevassa opetusohjelmassa. Tässä on SQL-koodi viimeisen taulukon toteuttamiseksi:
LUO TAULUKKO työllistäviä kirjoja
(työntekijä INTEGER EI NULL,
alueellinen INTEGER EI NULL);
SQL-mekanismi tarjoaa mahdollisuuden muuttaa tietokannan rakennetta luomisen jälkeen
Jos olet erityisen älykäs tänään, olet ehkä huomannut, että "vahingossa" jätimme yhden suunnitteluvaatimuksista täytäntöön tietokantataulukkojamme. XYZ Oyj: n henkilöstöjohtaja pyysi tietokantaa seuraamaan työntekijöiden palkkatietoja, ja laiminlyöimme sen toimittamisen luomissamme tietokantataulukoissa.
Kaikki ei kuitenkaan ole kadonnut. Voimme käyttää ALTER TABLE -komentoa lisätäksesi tämän määritteen olemassa olevaan tietokantaan. Haluamme tallentaa palkan kokonaislukuna. Syntaksi on melko samanlainen kuin CREATE TABLE -komennon, tässä se on:
ALTER TABLE-työntekijät
LISÄÄ palkkaa INTEGER NULL;
Huomaa, että määritimme, että NULL-arvot ovat sallittuja tälle määritteelle. Useimmissa tapauksissa ei ole vaihtoehtoa, kun lisäät sarakkeen olemassa olevaan taulukkoon. Tämä johtuu siitä, että taulukossa on jo rivejä, joissa ei ole merkintää tälle attribuutille. Siksi DBMS lisää NULL-arvon automaattisesti tyhjyyden täyttämiseksi.