Stvaranje baza podataka i tablica u SQL-u

click fraud protection

Jeste li spremni započeti izradu baza podataka i tablica s Strukturirani jezik upita? U ovom članku istražujemo postupak ručnog stvaranja tablica naredbama CREATE DATABASE i CREATE TABLE. Ako ste novi u SQL-u, možda ćete htjeti pregledati neke Osnove SQL-a prvi.

Poslovni zahtjevi

Prije nego što sjednemo za tipkovnicu, moramo osigurati da dobro razumijemo zahtjeve kupca. Koji je najbolji način za stjecanje ovog uvida? Razgovaramo s kupcem, naravno! Nakon što smo sjeli s XYZ-ovim direktorom za ljudske resurse, saznali smo da su oni tvrtka za prodaju widgeta i da ih prvenstveno zanima praćenje podataka o njihovom prodajnom osoblju.

XYZ Corporation dijeli svoje prodajne snage na istočnu i zapadnu regiju, od kojih je svaka podijeljena na mnoštvo teritorija pokrivenih pojedinačnim prodajnim predstavnicima. HR odjel želio bi pratiti teritorij koji pokriva svaki zaposlenik, kao i podatke o plaći i nadzornu strukturu svakog zaposlenika. Da bismo udovoljili tim zahtjevima, osmislili smo bazu podataka koja se sastoji od tri tablice prikazane u Dijagram entiteta i odnosa na ovoj stranici.

instagram viewer

Odabir platforme baze podataka

Odlučili smo koristiti a sustav upravljanja bazama podataka (ili DBMS) koji je izgrađen na strukturiranom jeziku upita (SQL). Stoga bi sve naše naredbe za izradu baze podataka i tablica trebale biti napisane imajući na umu standardni ANSI SQL.

Kao dodatnu prednost, upotreba SQL-a sukladnog s ANSI-om osigurat će da će te naredbe raditi na bilo kojem DBMS-u koji podržava SQL standard, uključujući Oracle i Microsoft SQL Server. Ako još niste odabrali platformu za svoju bazu podataka, Softverske mogućnosti baze podataka provest će vas kroz postupak odabira.

Izrada baze podataka

Naš prvi korak je stvaranje same baze podataka. Mnogi sustavi za upravljanje bazama podataka nude niz opcija za prilagodbu parametara baze podataka u ovom koraku, ali naša baza podataka dopušta samo jednostavno stvaranje baze podataka. Kao i kod svih naših naredbi, možda ćete htjeti pregledati dokumentaciju za svoj DBMS kako biste utvrdili zadovoljavaju li bilo koji napredni parametri podržani od vašeg određenog sustava vašim potrebama. Upotrijebimo naredbu CREATE DATABASE za postavljanje naše baze podataka:

IZRADI BAZU BAZA osoblja

Posebno uzmite u obzir velika slova korištena u gornjem primjeru. Uobičajena je praksa među programerima SQL-a da koriste sva velika slova za ključne riječi SQL kao što je "CREATE" i "DATABASE" dok koristite sva mala slova za korisnički definirana imena poput baze podataka "personal" Ime. Ove konvencije omogućuju laku čitljivost.

Sad kad smo osmislili i stvorili našu bazu podataka, spremni smo započeti s izradom tri tablice koje se koriste za pohranu podataka o osoblju XYZ Corporation.

Stvaranje naše prve tablice

Naša prva tablica sastoji se od osobnih podataka za svakog zaposlenika naše tvrtke. Moramo uključiti ime, plaću, osobnu iskaznicu i menadžera svakog zaposlenika. Dobra je dizajnerska praksa razdvajanje imena i imena u zasebna polja radi pojednostavljenja pretraživanja i sortiranja podataka u budućnosti. Također, vodit ćemo računa o upravitelju svakog zaposlenika umetanjem reference na njegov ID zaposlenika u svaki zapis zaposlenika. Pogledajmo prvo željenu tablicu zaposlenika.

Atribut ReportsTo pohranjuje ID upravitelja za svakog zaposlenika. Iz prikazanih uzoraka možemo utvrditi da je Sue Scampi voditeljica Toma Kendalla i Johna Smitha. Međutim, u bazi podataka nema podataka o upravitelju Sue, kao što je naznačeno unosom NULL u njezinom redu.

Sada možemo koristiti SQL za stvaranje tablice u našoj bazi podataka o osoblju. Prije nego što to učinimo, pobrinimo se da se nalazimo u ispravnoj bazi podataka izdavanjem USE naredbe:

USE osoblje;

Alternativno, "Osoblje BAZE PODATAKA;" naredba bi izvršavala istu funkciju. Sada možemo pogledati SQL naredbu koja se koristi za izradu tablice naših zaposlenika:

IZRADITE TABELU zaposlenika
(zaposlenikID INTEGER NOT NULL,
prezime VARCHAR (25) NIJE NULL,
ime VARCHAR (25) NIJE NULL,
izvješća za INTEGER NULL);

Kao i u gornjem primjeru, imajte na umu da programska konvencija nalaže da koristimo sva velika slova za ključne riječi SQL i mala slova za stupce i tablice koje imenuju korisnici. Gornja naredba u početku se može činiti zbunjujućom, ali zapravo postoji jednostavna struktura. Evo uopćenog stava koji bi mogao malo razjasniti stvari:

IZRADI TABELU ime_tablice
(opcije tipa podataka ime_atributa,
...,
opcije atributa_ime podataka);

Atributi i tipovi podataka

U prethodnom primjeru naziv tablice je zaposlenici, a mi uključujemo četiri atributi: zaposlenikid, prezime, ime i izvještaj. Tip podataka označava vrstu podataka koje želimo pohraniti u svako polje. ID zaposlenika jednostavan je cjelobrojni broj, pa ćemo koristiti tip podataka INTEGER i za polje workerid i za polje reportsto. Imena zaposlenika bit će nizovi znakova promjenljive duljine i ne očekujemo da bilo koji zaposlenik ima ime ili prezime dulje od 25 znakova. Stoga ćemo za ta polja koristiti tip VARCHAR (25).

NULL vrijednosti

Možemo također navesti bilo koji NULL ili NE NULL u polju opcija izraza CREATE. To jednostavno govori bazi podataka jesu li dopuštene vrijednosti NULL (ili prazne) za taj atribut prilikom dodavanja redaka u bazu podataka. U našem primjeru, odjel za ljudske resurse zahtijeva da se za svakog zaposlenika čuvaju ID zaposlenika i njegovo potpuno ime. Međutim, nema svaki zaposlenik menadžera (izvršni direktor nikome ne podnosi izvještaj!), Pa u tom polju dopuštamo NULL unose. Imajte na umu da je NULL zadana vrijednost i izostavljanje ove opcije implicitno će omogućiti NULL vrijednosti za atribut.

Izgradnja preostalih tablica

Sada ćemo pogledati tablicu teritorija. Iz brzog uvida u ove podatke, čini se da trebamo pohraniti cijeli broj i dva niza promjenljive duljine. Kao i u našem prethodnom primjeru, ne očekujemo da ID regije troši više od 25 znakova. Međutim, neki od naših teritorija imaju dulja imena, pa ćemo proširiti dopuštenu duljinu tog atributa na 40 znakova.

Pogledajmo odgovarajući SQL:

IZRADITE TABELU teritorija
(teritorijal INTEGER NIJE NULL,
teritorij Opis VARCHAR (40) NOT NULL,
regionid VARCHAR (25) NIJE NULL);

Na kraju ćemo upotrijebiti tablicu EmployeeTerritories za pohranu odnosa između zaposlenika i teritorija. Detaljni podaci o svakom zaposleniku i teritoriju pohranjeni su u naše prethodne dvije tablice. Stoga u ovu tablicu trebamo pohraniti samo dva cjelobrojna identifikacijska broja. Ako trebamo proširiti ove podatke, možemo koristiti JOIN u našim naredbama za odabir podataka za dobivanje podataka iz više tablica.

Ova metoda spremanja podataka smanjuje suvišnost u našoj bazi podataka i osigurava optimalno korištenje prostora na našim diskovima za pohranu. Naredbu JOIN detaljno ćemo pokriti u budućem vodiču. Evo SQL koda za implementaciju naše završne tablice:

STVARANJE teritorija zaposlenika
(zaposlenikID INTEGER NOT NULL,
teritorij INTEGER NIJE NULL);

Mehanizam SQL omogućuje promjenu strukture baze podataka nakon stvaranja

Ako ste danas posebno pametni, možda ste primijetili da smo "slučajno" propustili jedan od zahtjeva dizajna prilikom implementacije tablica baze podataka. Direktor HR-a XYZ Corporation zatražio je da baza podataka prati podatke o plaćama zaposlenika, a mi smo to zanemarili u tablicama baze podataka koje smo stvorili.

Međutim, nije sve izgubljeno. Naredbu ALTER TABLE možemo koristiti za dodavanje ovog atributa u našu postojeću bazu podataka. Plaću želimo pohraniti kao cjelobrojnu vrijednost. Sintaksa je prilično slična onoj u naredbi CREATE TABLE, evo je:

ALTER TABLE zaposlenici
DODAJTE plaću INTEGER NULL;

Primijetite da smo naveli da su za ovaj atribut dopuštene vrijednosti NULL. U većini slučajeva nema mogućnosti dodavanja stupca u postojeću tablicu. To je zbog činjenice da tablica već sadrži retke bez unosa za ovaj atribut. Stoga DBMS automatski ubacuje NULL vrijednost da popuni prazninu.

instagram story viewer