Datan määrittely, MySQL

Slides:



Advertisements
Samankaltaiset esitykset
ER-mallista relaatiomalliin
Advertisements

Olio-ohjelmoinnin perusteet luento 3: Muuttujista ja funktioista Sami Jantunen LTY/Tietotekniikan osasto.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
JavaScript (c) Irja & Reino Aarinen, 2007
Luokkien väliset koostesuhteet
Looginen suunnittelutMyn1 Looginen suunnittelu •Tässä lähdetään liikkeelle käsitemallista. •Laaditaan sisällöstä ja rakenteesta loogisen tason kuvaus,
Aloitetaan normalisoimattomasta raakadatasta
Tietokantatapahtuman hallinta
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
Relaatiomallin perusteet
Taulukoiden määrittely, käsittely ja kopiointi Vaihtoehdot taulukoille
22. Taulukot.
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely •Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
Auli Jaakkola 1 Palkkatiedustelun tietomallin mukaisen tilastovastauksen luonti Tässä esimerkissä tiedosto tuotetaan excelistä csv-muotoon. 1.Oletetaan,
Poikkeuskäsittely- lohkot tMyn1 Poikkeuskäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja.
TyyppimuunnoksettMyn1 Tyyppimuunnokset Joskus kääntäjän on tehtävä itse päätöksiä, jos ohjelmoija ei ole ajatellut yksityiskohtia: int arvo1=10; long arvo2=25;
Vakio-osoitin ja osoitin vakioon tMyn1 Vakio-osoitin ja osoitin vakioon Tavallinen osoitin voi vaihtaa osoitettavaa keskusmuistialuetta. Tämä voidaan tehdä.
Luokkien löytyminen käytännössä tMyn1 Luokkien löytyminen käytännössä Kun aletaan ratkaista elävän elämän ohjelmointitehtäviä, niin ensimmäisten asioiden.
Johdanto HTML-julkaisukieleen
TIETO JA TIETOKONEOHJELMA TIETOKONEOHJELMA KÄSITTELEE TIETOJA TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA MENETELMILLÄ.
Osoitin ja char- tietotyyppi tMyn1 Osoitin ja char-tietotyyppi Osoitinmuuttuja, joka on tyyppiä char* voidaan alustaa merkkijonolla: char* alku=”En toivo.
Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan.
Virtuaaliset jäsenfunktiot tMyn1 Virtuaaliset jäsenfunktiot Virtuaalinen jäsenfunktio on esiteltävä monimuotoisessa kantaluokassa. Virtuaalisen jäsenfunktion.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Normalisointi2tMyn1 Yksi kelpo perusavain on sarakkeet laakNro ja vastAika. Toinen voisi olla potNro ja vastAika, kolmas voisi olla huoneNro ja vastAika,…,
Luokan määrittely class-määreellä tMyn1 Luokan määrittely class-määreellä Luokan määrittely tarkoittaa luokan tietojäsenten esittelyä ja jäsenfunktioiden.
Map-luokka Mikä Map on? Mapin esittely ja luonti Map-luokan metodeja Mappiin lisääminen Mapin läpikäynti Mapista poistaminen 1.
ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.
Lomakkeet ja vuorovaikutteisuus
Monikon lisääminen (1) Luetellaan kaikki lisättävän rivin arvot INSERT INTO Asiakas VALUES (4, ’Assi’, ’Asiakas’); Luetellaan vain osa arvoista; muut arvot.
Tietotyypit Tietotyyppi määrittää muuttujan sisältämän datan luonnetta, muistista tarvittavaa tilaa ja sitä, millaisia operaatioita siihen voidaan kohdistaa.
SQL Standardoitu kieli, jonka avulla voidaan
Muunnos luokkakaaviosta relaatiokaavioon
Tietokannan luominen Tietokanta luodaan komennolla CREATE DATABASE
Muuttujat ja vakiottMyn1 Muuttujat ja vakiot PHP-kielen syntaksi on lainattu suurimmaksi osaksi C- kielestä. PHP on erityisesti HTML-dokumenttien sisään.
Lomakkeet © Reiska, Lomakkeet Varsinkin Web-sovelluksia ajetaan täyttämällä sivulla lomake ja lähettämällä tiedot palvelimella olevan Web-sovelluksen.
Tietokannat –kurssi SQL peruskyselyt
Olioon kohdistuvia perustoimintoja tMyn1 Olioon kohdistuvia perustoimintoja Kopiointimuodostin (copy constructor) alustaa olion tietojäsenet saman luokan.
Ohjelman keskeytys virhetilanteessa tMyn1 Ohjelman keskeytys virhetilanteessa Poikkeustilanteet voidaan ryhmitellä logiikkavirheisiin ja muihin ajonaikaisiin.
22. Taulukot.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
Tässä on kokoelma kaikista 8lk:lla tekemistäni töistä.
DTD Teppo Räisänen Liiketalouden yksikkö.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Johdetun luokan olion esittely... tMyn1 Johdetun luokan olion esittely ja määrittely Esittelyluokka tarkoittaa olion tunnuksen luokkaa. Määrittelyluokka.
FunktiottMyn1 Funktiot Funktiot voidaan jakaa –Kirjastofunktioihin, jotka ovat valmiina kaikkien käytössä. Erikoisempien kirjastofunktioiden käyttöönotto.
Poikkeustenkäsittely- lohkot tMyn1 Poikkeustenkäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw.
DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone.
DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone.
XML Schema Teppo Räisänen Liiketalouden yksikkö.
Monimuotoinen luokka tMyn1 Monimuotoinen luokka Monimuotoinen luokka mahdollistaa saman jäsenfunktion toteutuksen monella tavalla. Tällöin puhutaan virtuaalisesta.
Tiedon vieminen funktiolle tMyn1 Tiedon vieminen funktiolle, parametrit Argumentin vieminen funktiolle voidaan toteuttaa kahdella menetelmällä: –Pass-by-Value.
SQL SQL:llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle.
Johdetun luokan olion alustus tMyn1 Johdetun luokan olion alustus määrätyillä arvoilla Kun ohjelmassa esiintyy johdetun luokan olion määrittely, järjestelmä.
Fyysinen suunnittelutMyn1 Fyysinen suunnittelu Tässä lähdetään liikkeelle tietokannan loogisesta mallista. Nyt pitää olla tiedossa valittava DBMS-tuote.
Visual Basic -ohjelmointi
Johdetun luokan määrittely tMyn1 Johdetun luokan määrittely Kun johdettu luokka periytetään kantaluokasta, saadaan kantaluokan jäsenet enemmän tai vähemmän.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
DTD rakenne ELEMENT elementtien määrittely ATTLISTattribuuttien määrittely ENTITYentiteettien määrittely NOTATIONnotaatioiden määrittely.
Tietokannan hallinta Kevät 2006 Jan Lindström R&G Chapter 1.
Hakemistot Nopeuttavat hakuoperaatioita Hidastavat päivitysoperaatioita Pääavaimelle luodaan aina indeksi; päävain toimii usein hakukriteerinä Luodaan.
MapInfon tiedostot TAB – Tiedosto, jonka avulla tietokanta avataan MapInfossa. Tiedostossa tietoja kentistä ja koordinaattijärjestelmästä. DAT, XLS. TXT.
Copyright Oy Thomas Antila Consulting Ab 1 Indeksointi Oracle 8i tietokannassa OUGF Syksy 2000.
2. Taulukot.
Tietomallista tietokannaksi
Luokan määrittely class-määreellä
2. Taulukot.
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
Esityksen transkriptio:

Datan määrittely, MySQL Kussakin taulussa kullekin sarakkeelle määritellään tarpeen mukainen tietotyyppi. Seuraavalla sivulla on kuvaus kokonaisluvuista, lähteenä on käytetty http://dev.mysql.com/doc/refman/5.1/en/numeric-types.html Datan määrittely, MySQL tMyn

Datan määrittely, MySQL tMyn Type Bytes Minimum Value Maximum Value   (Signed/Unsigned) TINYINT 1 -128 127 255 SMALLINT 2 -32768 32767 65535 MEDIUMINT 3 -8388608 8388607 16777215 INT 4 -2147483648 2147483647 4294967295 BIGINT 8 -9223372036854775808 9223372036854775807 18446744073709551615 Datan määrittely, MySQL tMyn

Varatun sanan INT lisäksi voidaan myös kirjoittaa INTEGER. Jos kirjoitetaan vaikkapa INT(3), tarkoittaa se vain näyttökentän leveyttä. Liukulukutyyppeinä ovat FLOAT (4 tavua) ja DOUBLE (8 tavua). Liukulukutyypit FLOAT ja DOUBLE eivät edusta tarkkoja lukuarvoja (approximate numeric data values). Ei-standardin mukaiset syntaksit ovat FLOAT(m, d), REAL(m, d) ja DOUBLE PRECISION(m, d). Sulkeissa m edustaa numeroiden lukumäärää kokonaisuudessaan ja d desimaalipisteen jälkeisten numeroiden lukumäärää, siis vaikkapa FLOAT(7, 4) voisi olla 123.4567. Datan määrittely, MySQL tMyn

Desimaalierottimena toimii piste. Tarkkoja liukulukuarvoja tallennetaan tyypeillä DECIMAL tai NUMERIC (exact numeric data values). Merkintä DECIMAL(5, 2) tarkoittaa, että 5 numeroa voi olla ennen desimaalierotinta, ja 2 numeroa sen jälkeen. Merkintä DECIMAL(5) tarkoittaa samaa kuin DECIMAL(5, 0). Datan määrittely, MySQL tMyn

Päivämäärän ja ajan tallentamiseen käytettäviä tietotyyppejä: DATE: Päivämäärä annetaan muodossa vvvv-kk-pp. DATETIME Päivämäärä ja kellonaika annetaan muodossa vvvv-kk-pp tt:mm:ss, siis vaikkapa ’2007-12-24 22:20:55’. TIME: Kellonaika annetaan muodossa tt:mm:ss. TIMESTAMP: Tällä tyypillä on mahdollista saada talteen halutun hetken päivämäärä ja kellonaika. Mahdollisuuksia on useita, olkoot kyseessä luotavan taulun ensimmäinen TIMESTAMP-tyyppinen sarake: Datan määrittely, MySQL tMyn

CREATE TABLE kokeilu (tamaHetki TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, … Tulkinta: Oletusarvona on luonnin yhteydessä oleva ajankohta, ja kun muutos tehdään riville, niin samalla automaattisesti päivitetään sen hetkinen ajankohta. Sama lopputulos saadaan kun jätetään kummatkin attribuutit pois (DEFAULT ON UPDATE). Datan määrittely, MySQL tMyn

(tamaHetki TIMESTAMP DEFAULT CURRENT_TIMESTAMP, … CREATE TABLE kokeilu (tamaHetki TIMESTAMP DEFAULT CURRENT_TIMESTAMP, … Toiminta: Oletusarvona on luonnin yhteydessä oleva ajankohta, ja jos muutoksia tehdään riville, niin tämä ajankohta-arvo ei automaattisesti päivity. Datan määrittely, MySQL tMyn

(tamaHetki TIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP, … CREATE TABLE kokeilu (tamaHetki TIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP, … Toiminta: Oletusarvona on ajankohdaksi 0, ja jos muutoksia tehdään riville, niin vastaava ajankohta-arvo päivittyy uudeksi arvoksi. Jos jättää tuon jälkimmäisen attribuutin (ON UPDATE) pois, niin sitten kentän arvona pysyy 0. Datan määrittely, MySQL tMyn

YEAR: Vuosiluku annetaan vaikkapa muodossa ’2008’. Datan määrittely, MySQL tMyn

Merkkivakion tai merkkijonojen tallentamiseen käytettäviä tietotyyppejä: CHAR(m): Kentän koko pysyy kiinteän mittaisena. Suurin arvo m=255. Esim. CHAR(30)-tyyppiseen kenttään voidaan tallentaa 30 merkkivakiota (siis olettaen toki, että käytössä on yksitavuinen merkistö, single-byte character set, vaikkapa latin1). Jos edellä olevan tyyppiseen kenttään tallennetaan vaikkapa vain yksi merkkivakio, niin muistin tarve on aina kiinteä määrä tavuja (siis edellisessä tapauksessa tuo 30 tavua). Datan määrittely, MySQL tMyn

VARCHAR(m): Vaihtuvan mittainen merkkijono. Suurin arvo m=65535 VARCHAR(m): Vaihtuvan mittainen merkkijono. Suurin arvo m=65535. Muistin tarve määräytyy tallennettavan merkkijonon pituuden mukaan. Datan määrittely, MySQL tMyn

Taulun luontiin liittyvä syntaksi on varsin monipuolinen ja kokonaisuudessaan tuo syntaksi löytyy helpoiten netistä. Tässä käsitellään/otetaan huomioon vain muutama tavallisin piirre: Datan määrittely, MySQL tMyn

col_name column_definition CREATE TABLE tbl_name (create definition, …) [table_option …] create_definition: col_name column_definition | [CONSTRAINT [symbol]] PRIMARY KEY (index_col_name,...) | [CONSTRAINT [symbol]] FOREIGN KEY (index_col_name,...) reference_definition column_definition: data_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] data_type: | INT[(length)] [UNSIGNED] [ZEROFILL] | INTEGER[(length)] [UNSIGNED] [ZEROFILL] Datan määrittely, MySQL tMyn

| REAL[(length,decimals)] [UNSIGNED] [ZEROFILL] | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL] | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL] | DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL] | NUMERIC(length,decimals) [UNSIGNED] [ZEROFILL] | DATE | TIME | TIMESTAMP | DATETIME | YEAR | CHAR(length) [CHARACTER SET charset_name] | VARCHAR(length) [CHARACTER SET charset_name] index_col_name: col_name [(length)] Datan määrittely, MySQL tMyn

reference_definition: REFERENCES tbl_name [(index_col_name,...)] [ON DELETE reference_option] [ON UPDATE reference_option] reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION table_option: [TABLESPACE tablespace_name STORAGE DISK] ENGINE [=] engine_name | [DEFAULT] CHARACTER SET charset_name Datan määrittely, MySQL tMyn

Luodaan kaksi taulua, ja lisätään kumpaankin muutama rivi dataa. Luonnin yhteydessä ensimmäiseen tauluun määritellään perusavain (primary key). Jälkimmäiseen tauluun määritellään perusavain sekä viiteavain (foreign key), joka viittaa edellisen taulun perusavaimeen. Näillä järjestelyillä voidaan tutkia viite-eheyttä: Datan määrittely, MySQL tMyn

(osNro INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, CREATE TABLE Osasto (osNro INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, osNimi VARCHAR(20) NOT NULL, osoite VARCHAR(30) NULL, CONSTRAINT osPaaAvain PRIMARY KEY(osNro)); CREATE TABLE Tyontekijat (hloNro INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, eNimi VARCHAR(15) NOT NULL, sNimi VARCHAR(20) NOT NULL, osastoNro INTEGER UNSIGNED NOT NULL, CONSTRAINT tyoPaaAvain PRIMARY KEY(hloNro), CONSTRAINT tyoViiAvain FOREIGN KEY(osastoNro) REFERENCES osasto(osNro) ON UPDATE CASCADE ON DELETE RESTRICT); Datan määrittely, MySQL tMyn

PRIMARY KEY yksilöi taulun kunkin rivin. FOREIGN KEY:n avulla huolehditaan viite-eheydestä. Viite-eheydellä varmistetaan, että tieto on ensin kirjattu siihen tauluun mihin FOREIGN KEY:llä viitataan. FOREIGN KEY:llä viitataan aina jonkun toisen taulun PRIMARY KEY:hyn. Viiteavaimen tietotyypin täytyy olla sama kuin sitä vastaavan perusavaimen tietotyyppi. REFERENCES-määritteen avulla määritellään mihin tauluun viiteavain viittaa ja mikä kenttä siinä taulussa on PRIMARY KEY-kenttä. Datan määrittely, MySQL tMyn

ON UPDATE/ON DELETE-määritteillä voidaan ohjata sitä, miten toimitaan, kun viiteavaimella viitattua riviä ollaan päivittämässä (PRIMARY KEY:lle ollaan antamassa uutta arvoa vanhan tilalle) tai kyseistä riviä ollaan poistamassa. RESTRICT ja NO ACTION tarkoittavat samaa: Jos yritetään poistaa/päivittää sellaista perusavainta, jolla on vastine viiteavaimena, ei toimenpidettä anneta suorittaa. CASCADE tarkoittaa vyöryttämistä. Jos sellaista perusavainta päivitetään/poistetaan, jolla on vastine viiteavaimena, sama toimenpide kohdistuu myös viiteavain-kenttään. Datan määrittely, MySQL tMyn

SET NULL –määrite tarkoittaa, että jos perusavaimen yksi arvo poistetaan tai tätä arvoa muutetaan toiseksi arvoksi, niin vastaavan viiteavaimen arvoksi asetetaan NULL. Tämä on mahdollista vain silloin, kun taulua luotaessa viiteavainkentän määritteeksi ei ole annettu NOT NULL. Datan määrittely, MySQL tMyn

Taulun rakenteen näyttäminen onnistuu komennolla DESCRIBE taulunNimi. AUTO_INCREMENT –kenttä kasvattaa itseään automaattisesti yhdellä. Taulussa voi olla vain yksi kenttä määritelty AUTO_INCREMENT -määritteellä. ZEROFILL-määritteellä kenttä täytetään etunollilla, jos siinä ei ole itsessään tarpeeksi merkkejä. Taulun rakenteen näyttäminen onnistuu komennolla DESCRIBE taulunNimi. Datan määrittely, MySQL tMyn

Lisätään uusi sarake taulukkoon Otetaan sarake pois Jos taulu on jo luotu, mutta sen rakennetta halutaan muuttaa, niin seuraavanlaisia muutoksia voidaan tehdä: Lisätään uusi sarake taulukkoon Otetaan sarake pois Lisätään uusi rajoite (CONSTRAINT) Poistetaan jokin rajoite Asetetaan sarakkeelle oletusarvo (DEFAULT) Poistetaan sarakkeelta oletusarvo Muutetaan sarakkeen arvoaluetta Datan määrittely, MySQL tMyn

Taulun rakenteen muuttamiseen liittyvä syntaksi on varsin monipuolinen ja kokonaisuudessaan tuo syntaksi löytyy helpoiten netistä. Tässä käsitellään/otetaan huomioon vain muutama tavallisin piirre: Datan määrittely, MySQL tMyn

alter_specification [, alter_specification] ... alter_specification: ALTER TABLE tbl_name alter_specification [, alter_specification] ... alter_specification: table_option ... | ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name ] | ADD [COLUMN] (col_name column_definition,...) | ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) FOREIGN KEY [index_name] (index_col_name,...) reference_definition | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} | CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST|AFTER col_name] | MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name] | DROP [COLUMN] col_name | DROP PRIMARY KEY Datan määrittely, MySQL tMyn

| DROP { INDEX | KEY} index_name | DROP FOREIGN KEY fk_symbol | RENAME [TO] new_tbl_name | ORDER BY col_name [, col_name] ... | CONVERT TO CHARACTER SET charset_name | [DEFAULT] CHARACTER SET charset_name column_definition: data_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] data_type: | INT[(length)] [UNSIGNED] [ZEROFILL] | INTEGER[(length)] [UNSIGNED] [ZEROFILL] | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL] | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL] | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL] | DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL] | NUMERIC(length,decimals) [UNSIGNED] [ZEROFILL] | DATE | TIME | TIMESTAMP | DATETIME | YEAR Datan määrittely, MySQL tMyn

| CHAR(length) [CHARACTER SET charset_name] | VARCHAR(length) [CHARACTER SET charset_name] index_col_name: col_name [(length)] reference_definition: REFERENCES tbl_name [(index_col_name,...)] [ON DELETE reference_option] [ON UPDATE reference_option] reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION table_option: [TABLESPACE tablespace_name STORAGE DISK] ENGINE [=] engine_name | [DEFAULT] CHARACTER SET charset_name Datan määrittely, MySQL tMyn

Luodaan kokeiluja varten yksinkertainen taulu: CREATE TABLE tavoite (id INTEGER UNSIGNED NOT NULL, koti VARCHAR(30) NOT NULL, tyo VARCHAR(30) NULL); HUOM! Vaikka id-kentän ominaisuudeksi voisi mieluusti antaa myös AUTO_INCREMENT (jotta siitä myöhemmin tulisi kätevästi PRIMARY KEY -kenttä), ei järjestelmä salli sitä ILMAN että nimeää sen samalla avainsarakkeeksi. Datan määrittely, MySQL tMyn

Lisätään yksi sarake vapaaAika VARCHAR(30) NULL: ALTER TABLE tavoite ADD COLUMN vapaaAika VARCHAR(30) NULL; Datan määrittely, MySQL tMyn

ADD COLUMN painoTavoite INT NOT NULL AFTER tyo; Lisätään yksi sarake, ja halutaan se juuri ennen vapaaAikaa: painoTavoite INT NOT NULL: ALTER TABLE tavoite ADD COLUMN painoTavoite INT NOT NULL AFTER tyo; Datan määrittely, MySQL tMyn

ADD COLUMN jotakinIhanMuuta VARCHAR(30) NULL; Lisätään vielä yksi sarake (joka voidaan sitten poistaa ”ilman tappioita”) jotakinIhanMuuta VARCHAR(30) NULL: ALTER TABLE tavoite ADD COLUMN jotakinIhanMuuta VARCHAR(30) NULL; Datan määrittely, MySQL tMyn

Poistetaan äskeinen sarake: ALTER TABLE tavoite DROP COLUMN jotakinIhanMuuta; Datan määrittely, MySQL tMyn

ADD CONSTRAINT ainutkertainen UNIQUE KEY (painoTavoite); Lisätään uusi rajoite ADD CONSTRAINT ainutkertainen UNIQUE KEY (painoTavoite): ALTER TABLE tavoite ADD CONSTRAINT ainutkertainen UNIQUE KEY (painoTavoite); Datan määrittely, MySQL tMyn

Poistetaan rajoite (DROP KEY) sarakkeelta painoTavoite : ALTER TABLE tavoite DROP KEY ainutkertainen; Datan määrittely, MySQL tMyn

Asetetaan sarakkeelle tyo oletusarvo (SET DEFAULT) 'lisää liksaa': ALTER TABLE tavoite ALTER COLUMN tyo SET DEFAULT 'lisää liksaa'; Datan määrittely, MySQL tMyn

Kokeillaan oletusarvon toimivuutta: INSERT INTO tavoite (id, koti, painoTavoite, vapaaAika) VALUES (1, 'siivous perjantaisin', 67, 'kävelyä arki-iltoina'); Ja katsotaan miltä näyttää (ja sen jälkeen rivi voidaan poistaa, jotta voidaan jatkaa kokeiluja rauhassa): SELECT * FROM tavoite; DELETE FROM tavoite; Datan määrittely, MySQL tMyn

Datan määrittely, MySQL tMyn

Poistetaan sarakkeelta tyo oletusarvo (DROP DEFAULT): ALTER TABLE tavoite ALTER COLUMN tyo DROP DEFAULT; Datan määrittely, MySQL tMyn

CHANGE COLUMN tyo tyo CHAR(30) NULL; Muutetaan sarakkeen arvoaluetta: sarake tyo on VARCHAR(30) NULL, muutetaan se CHAR(30) NULL. HUOM! Vaikka siis nimi pysyy samana, on silti annettava syntaksin mukaisesti old_col_name new_col_name: ALTER TABLE tavoite CHANGE COLUMN tyo tyo CHAR(30) NULL; Datan määrittely, MySQL tMyn

MODIFY COLUMN tyo VARCHAR(30) NULL; Jos sitä vastoin käyttää MODIFY COLUMN-määrettä, niin silloin ei tarvitse antaa old_col_name new_col_name -osaa. Palautetaan sarakkeen tyo tietotyyppi alkuperäiseksi: ALTER TABLE tavoite MODIFY COLUMN tyo VARCHAR(30) NULL; Datan määrittely, MySQL tMyn

CHANGE COLUMN tyo tyoJutut VARCHAR(30) NULL; Muutetaan sitten sarakkeen tyo nimeä mutta ei mitään muuta ominaisuutta siitä sarakkeesta: ALTER TABLE tavoite CHANGE COLUMN tyo tyoJutut VARCHAR(30) NULL; Datan määrittely, MySQL tMyn

Muutetaan sarakkeen tyoJutut ominaisuus NULL ominaisuudeksi NOT NULL: ALTER TABLE tavoite CHANGE COLUMN tyoJutut tyoJutut VARCHAR(30) NOT NULL; Datan määrittely, MySQL tMyn

MODIFY COLUMN tyoJutut VARCHAR(30) NULL; Muutetaan sarakkeen tyoJutut ominaisuus NOT NULL takaisin ominaisuudeksi NULL: ALTER TABLE tavoite MODIFY COLUMN tyoJutut VARCHAR(30) NULL; Datan määrittely, MySQL tMyn

Lisätään uusi rajoite CONSTRAINT taPaaAvain PRIMARY KEY(id): ALTER TABLE tavoite ADD CONSTRAINT taPaaAvain PRIMARY KEY(id); Datan määrittely, MySQL tMyn

Lisätään sarakkeelle id ominaisuus AUTO_INCREMENT: ALTER TABLE tavoite MODIFY COLUMN id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT; Datan määrittely, MySQL tMyn

Muutetaan taulun tavoite nimeksi tavoiteAsetanta: ALTER TABLE tavoite RENAME TO tavoiteAsetanta; Datan määrittely, MySQL tMyn