Tietokannan luominen
Kokonaisen tietokannan taulujen luomisessa pitää muistaa luoda taulut oikeassa järjestyksessä. Ensimmäiseksi on luotava ne taulut, jotka eivät viittaa muihin tauluihin, koska viittauksia ei voi normaalisti tehdä ennen viitattavan taulun luomista. Vastaavalla tavalla on tehtävä taulujen poistaminen eli ensin poistetaan ne taulut, jotka viittaavat muihin. Poistojärjestys on siis täysin vastakkainen luontijärjestykseen verrattuna.
Esimerkkinä kokonaisen tietokannan luomisesta ja kaikista siihen liittyvistä määrityksistä on tietokannan suunnittelukappaleessa suunnitellun tietokannan taulut. Ensimmäisenä luodaan ne, jotka ovat ER-kaavion ”reunoilla” eli ne taulut jotka eivät viittaa muihin tauluihin:
CREATE TABLE Osasto (OsastoID INTEGER NOT NULL,OsastoNimi VARCHAR(32) NOT NULL,CONSTRAINT PK_OsastoPRIMARY KEY (OsastoID));CREATE TABLE Tyontekija (TyontekijaID INTEGER NOT NULL,Etunimi VARCHAR(32) NOT NULL,SukuNimi VARCHAR(64) NOT NULL,Hetu CHAR(11) NOT NULL UNIQUE,Palkka NUMERIC(7,2) NOT NULL DEFAULT 2000,Syntymaaika DATE NOT NULL DEFAULT '1.1.1970',Osasto INTEGER NOT NULL DEFAULT 1,CONSTRAINT PK_TyontekijaPRIMARY KEY (TyontekijaID),CONSTRAINT FK_T_OsastoFOREIGN KEY (Osasto)REFERENCES Osasto (OsastoID)ON DELETE NO ACTIONON UPDATE CASCADE);CREATE TABLE Lapsi (Huoltaja INTEGER NOT NULL,Syntymaaika DATE NOT NULL,CONSTRAINT PK_LapsiPRIMARY KEY (Huoltaja, Syntymaaika),CONSTRAINT FK_Lapsi_HuoltajaFOREIGN KEY (Huoltaja)REFERENCES Tyontekija (TyontekijaID)ON DELETE CASCADEON UPDATE CASCADE);CREATE TABLE Toimittaja (ToimittajaID INTEGER NOT NULL,ToimittajaNimi VARCHAR(64) NOT NULL,CONSTRAINT PK_ToimittajaPRIMARY KEY (ToimittajaID));CREATE TABLE Osa (OsaID INTEGER NOT NULL,OsaNimi VARCHAR(64) NOT NULL,CONSTRAINT PK_OsaPRIMARY KEY (OsaID));CREATE TABLE Koostuu (K_OsaID INTEGER NOT NULL,OsaID INTEGER NOT NULL,Lukumaara SMALLINT NOT NULL DEFAULT 1,CONSTRAINT PK_KoostuuPRIMARY KEY (K_OsaID, OsaID),CONSTRAINT FK_Koostuu_1FOREIGN KEY (K_OsaID)REFERENCES Osa (OsaID)ON DELETE CASCADEON UPDATE CASCADE,CONSTRAINT FK_Koostuu_2FOREIGN KEY (OsaID)REFERENCES Osa (OsaID)ON DELETE CASCADEON UPDATE CASCADE);CREATE TABLE Projekti (ProjektiID INTEGER NOT NULL,ProjektiNimi VARCHAR(64) NOT NULL,Projektipaallikko INTEGER NOT NULL,CONSTRAINT PK_ProjektiPRIMARY KEY (ProjektiID),CONSTRAINT FK_Projekti_PFOREIGN KEY (Projektipaallikko)REFERENCES Tyontekija (TyontekijaID)ON DELETE NO ACTIONON UPDATE CASCADE);CREATE TABLE Tekee (TyontekijaID INTEGER NOT NULL,ProjektiID INTEGER NOT NULL,CONSTRAINT PK_TekeePRIMARY KEY (TyontekijaID, ProjektiID),CONSTRAINT FK_Tekee_1FOREIGN KEY (TyontekijaID)REFERENCES Tyontekija (TyontekijaID)ON DELETE NO ACTIONON UPDATE CASCADE,CONSTRAINT FK_Tekee_2FOREIGN KEY (ProjektiID)REFERENCES Projekti (ProjektiID)ON DELETE NO ACTIONON UPDATE CASCADE);CREATE TABLE Toimittaa (ToimittajaID INTEGER NOT NULL,OsaID INTEGER NOT NULL,CONSTRAINT PK_ToimittaaPRIMARY KEY (ToimittajaID, OsaID),CONSTRAINT FK_Toimittaa_1FOREIGN KEY (ToimittajaID)REFERENCES Toimittaja (ToimittajaID)ON DELETE NO ACTIONON UPDATE CASCADE,CONSTRAINT FK_Tekee_2FOREIGN KEY (OsaID)REFERENCES Osa (OsaID)ON DELETE NO ACTIONON UPDATE CASCADE);CREATE TABLE Osan_toimitus (ProjektiID INTEGER NOT NULL,ToimittajaID INTEGER NOT NULL,OsaID INTEGER NOT NULL,Lukumaara SMALLINT NOT NULL DEFAULT 1,CONSTRAINT PK_OsaTPRIMARY KEY (ProjektiID, ToimittajaID, OsaID),CONSTRAINT FK_OSaT_1FOREIGN KEY (ToimittajaID)REFERENCES Toimittaja (ToimittajaID)ON DELETE NO ACTIONON UPDATE CASCADE,CONSTRAINT FK_OsaT_2FOREIGN KEY (OsaID)REFERENCES Osa (OsaID)ON DELETE NO ACTIONON UPDATE CASCADE,CONSTRAINT FK_OsaT_3FOREIGN KEY (ProjektiID)REFERENCES Projekti (ProjektiID)ON DELETE NO ACTIONON UPDATE CASCADE);

Käyttäjien kommentit
Tietokannan luominen pitäsi esittää ennen taulujen luomista, vrt. otsikko.