Tulosta

CASE -kuvaus

Tietokanta

Luonti

Taulun luonti

Perusavain

Viite-avain

Ylläpito

Rivin lisäys

Rivin muuttaminen

Rivin poistaminen

Perusavaimen määrittely

Perusavaimen määrittelet taulun perustamisen yhteydessä PRIMARY KEY -määreellä kentän tietotyypin perään tai määrittelyn loppuun. Perusavaimen voit luoda myös indeksin perustamisen yhteydessä . Käytännössä perusavaimen toteutus on aina yksikäsitteinen indeksi! Määrittelyn voit tehdä 3:lla eri tavalla:

Syntaksi: Perusavaimen voit määritellä suoraan kentän määrittelyn perään PRIMARY KEY -avainsanoilla: CREATE TABLE taulu ( kenttä1 tietotyyppi [(pituus)] NOT NULL PRIMARY KEY, … ); Voit myös nimetä perusavaimen rajoitteeksi eli käyttää "CONSTRAINT nimi" -määrettä. Tätä tapaa käytettiin ennen - enää se ei ole kaikissa toteutuksissa välttämätöntä. Tällä tavalla nimeät perusavaimen toteutuksen eli indeksin itse. Jos jätät CONSTRAINT -määreen pois - tietokannan hallintajärjestelmä nimeää perusavaimen eli indeksin itse.

CREATE TABLE taulu
( kenttä1 tietotyyppi [(pituus)] NOT NULL CONSTRAINT pkey PRIMARY KEY,
  …
);

tai voit määritellä perusavaimen kenttäluettelon jälkeisen rajoitteen avulla. Tätä joudut käyttämään aina kun perusavain muodostuu useammasta kuin yhdestä kentästä!

CREATE TABLE taulu
(   …
   PRIMARY KEY (perusavain1, [perusavain2],...)
 );

Voit myös nimetä perusavaimen "CONSTRAINT nimi" -määreellä Lisäksi voit määritellä perusavaimen perustamalla yksikäsitteisen indeksin WITH PRIMARY -määreellä

Esimerkkejä: Quality -taulun perusavaimen määrittely:

CREATE TABLE Quality
(
qualityID VARCHAR (8) NOT NULL PRIMARY KEY,
name VARCHAR(25), …
) Type = InnoDB;
- tai
CREATE TABLE Quality
( qualityID VARCHAR (8) NOT NULL,
  name VARCHAR (50), …
  PRIMARY KEY (qualityID) );

Yhdistetty perusavaimen, joka koostuu siis useammasta kuin yhdestä kentästä, voit tehdä vain tavalla.

Esimerkki yhdistetyn avaimen luomisesta:

CREATE TABLE Block
( qualityID VARCHAR (8),
  blockID INTEGER,
  blockmarkID CHAR (2), ... ,
  PRIMARY KEY (qualityID, blockID, blockmarkID)

) Type = InnoDB;

Bannerit

 

Juha Kiukas - juha@kiukas.fi - 040 551 0711