Taulujen luominen (CREATE TABLE)

Taulun määrittely alkaa CREATE TABLE –komennolla, jolle kerrotaan luotavan taulun nimi. Taulun nimen jälkeen luetellaan suluissa pilkulla eroteltuina kaikki tauluun tulevien kenttien nimet, niiden tietotyypit ja mahdollisesti määriteltävät pituudet.

Seuraavassa esimerkissä luodaan taulu tyontekijän tietojen tallentamiseen:

CREATE TABLE Tyontekija (TyontekijaID INTEGER,
Etunimi VARCHAR(32),
Sukunimi VARCHAR(64),
Hetu CHAR(11),
Palkka NUMERIC(7,2),
Syntymaaika DATE,
Osasto INTEGER
)

Pakollisuus (NOT NULL)

Jokaiselle kentälle on syytä määritellä, onko kyseessä pakollinen kenttä vai ei. Tämä onnistuu lisäämällä kentän tyyppimäärittelyn jälkeen sanat NOT NULL. Jos kyseessä on pakollinen kenttä, niin NULL-arvoja ei sallita. Haluttaessa kelpuuttaa myös NULL-arvot jätetään NOT NULL –määrittely kokonaan pois.

Parannellaan edellistä esimerkkiä ja määritellään jokainen kenttä pakolliseksi lisäämällä NOT NULL –määritteet.

CREATE TABLE Tyontekija (TyontekijaID INTEGER NOT NULL,
Etunimi VARCHAR(32) NOT NULL,
Sukunimi VARCHAR(64) NOT NULL,
Hetu CHAR(11) NOT NULL,
Palkka NUMERIC(7,2) NOT NULL,
Syntymaaika DATE NOT NULL,
Osasto INTEGER NOT NULL
)

Taulu on vielä täysin ilman perusavainta, oletusarvoja, tarkistuksia ja tarvittavia viiteavaimia.

Perusavain (PRIMARY KEY)

Perusavain voidaan määritellä suoraan tietotyyppi- ja pakollisuusmäärittelyjen yhteyteen. PRIMARY KEY –määritys korvaa NOT NULL –määritteen sen kentän yhteydessä, joka muodostaa perusavaimen. Perusavainhan ei saa olla NULL.

Määritellään Tyontekija-taulun perusavaimeksi TyontekijaID-kenttä, joka on jokaiselle tyontekijälle tuleva uniikki tunnistenumero.

CREATE TABLE Tyontekija (TyontekijaID INTEGER PRIMARY KEY,
Etunimi VARCHAR(32) NOT NULL,
Sukunimi VARCHAR(64) NOT NULL,
Hetu CHAR(11) NOT NULL,
Palkka NUMERIC(7,2) NOT NULL,
Syntymaaika DATE NOT NULL,
Osasto INTEGER NOT NULL
)

Oletusarvot (DEFAULT)

DEFAULT-määritteellä voidaan kentille antaa oletusarvot. Jos oletusarvoa ei määritellä, niin se on automaattisesti NULL.

Työntekijän oletuspalkka voisi olla esimerkiksi 2000. Osastonumero voisi oletuksena olla kaikille 1. Lisätään nämä Tyontekija-taulun määrittelylauseisiin.

CREATE TABLE Tyontekija (TyontekijaID INTEGER PRIMARY KEY,
Etunimi VARCHAR(32) NOT NULL,
Sukunimi VARCHAR(64) NOT NULL,
Hetu CHAR(11) NOT NULL,
Palkka NUMERIC(7,2) NOT NULL DEFAULT 2000,
Syntymaaika DATE NOT NULL,
Osasto INTEGER NOT NULL DEFAULT 1
)

Käyttäjien kommentit

Matti Näsä ( 2009-01-21 20:16:56 )

Kirjoitusvirheitä voisi korjata - monessa kohdassa kentän nimen ja datatyypin välistä puuttuu välilyönti. Ja ainakin ihan viimesen mallin lopusta on jäänyt T-kirjain puuttumaan DEFAULT-sanasta.

Antti Ekonoja ( 2009-01-22 10:44:27 )

Virheitä korjattu. Kiitos huomiosta.

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/doc/tiedonhallinta/sql/ddl/index2.html
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2009-01-22 10:44:41
Informaatioteknologia - Jyväskylän yliopiston IT-tiedekunta ja avoin yliopisto