OPPITUNTI 12 MySQL-tietokannan käyttö

Koko: px
Aloita esitys sivulta:

Download "OPPITUNTI 12 MySQL-tietokannan käyttö"

Transkriptio

1 12. MySQL-tietokannankäyttö 211 OPPITUNTI 12 MySQL-tietokannan käyttö PHP-kieleen kuuluu olennaisesti tietokantojen käyttämisen helppous. Tällä tunnilla keskitymme MySQLtietokantaan, mutta samanlaisia funktioita on myös monille muille tietokannoille, joita PHP tukee. Miksi juuri MySQL? Se sopii hyvin PHP:n henkeen, koska sekin on ilmainen tavalliselle käyttäjälle; kyseessä on kuitenkin tehokas työkalu, joka sopii vaativiinkin käytännön projekteihin. MySQL-versiota on lisäksi saatavilla useille eri alustoille. Voit ladata MySQL-työkalun osoitteesta Tämän tunnin aiheita ovat seuraavat: Muutamia SQL-näytteitä Kuinka MySQL-tietokantapalvelimelle kytkeydytään Kuinka tietokanta valitaan Virheiden käsittely Tiedon lisääminen taulukkoon Tiedon saaminen taulukosta Taulukossa olevan tiedon muuttaminen Tietokannan rakenne

2 MySQL-tietokannankäyttö Lyhyt SQL-johdanto SQL tulee sanoista Structured Query Language. Se tarjoaa standardin syntaksin, jolla voidaan tehdä kyselyjä tietokannasta. Useimmat SQL-tietokantatuotteet tarjoavat omia laajennuksiaan kieleen samalla lailla kuin selaimilla on omia HTML-erikoiskoodejaan. SQL-syntaksin ymmärtäminen antaa kuitenkin eväät useimpien tietokantatuotteiden käyttämiseen; myös alustat voivat vaihdella. Tämä kirja ei pyri millään lailla kuvaamaan SQL:n koko kontekstia eikä se ota esille myöskään MySQL:n taustoja. MySQL pyörii palvelindemonina, johon käyttäjät voivat kytkeytyä joko samalta koneelta tai etäkoneilta. Kun palvelimeen on kytkeydytty, voidaan valita tietokanta, mikäli käyttöoikeudet sen sallivat. Tietokannan sisällä on vaihteleva määrä tietoa taulukoissa. Kukin taulukko koostuu riveistä ja sarakkeista. Rivin ja sarakkeen leikkaus muodostaa solun, johon tieto tallennetaan. Kukin sarake hyväksyy tiettyjä ennalta määritettyjä tietotyyppejä: esimerkiksi kokonaislukuja varten on INT-tietotyyppi ja merkkejä varten VARCHAR-tietotyyppi. Uusi taulukko luodaan tietokantaan seuraavanlaisella SQL-kyselyllä: CREATE TABLE mytable ( first_name VARCHAR(30), second_name VARCHAR(30), age INT); Nyt uudessa taulukossamme on kolme saraketta. Sarakkeen (kentän) first_name ja second_name sisältönä voi olla enintään 30 merkkiä. Sarakkeessa age voi olla kokonaisluku. Tietoa lisätään taulukkoon INSERT-lauseella: INSERT INTO mytable ( first_name, second_name, age ) VALUES ( 'John', 'Smith', 36 A ); Kenttien nimet on annettu ensimmäisten sulkumerkkien sisällä; sijoitettavat arvot ovat vastaavasti toisen sulkumerkkiparin sisällä. Tietoa voidaan ottaa esille tietokannasta SELECT-lauseella: SELECT * FROM mytable; Koodissa oleva asteriski (*) on jokerimerkki ja tarkoittaa kaikki kentät. Saadaksemme tietoa yhdestä kentästä on sarakkeen nimi kirjoitettava jokerimerkin sijaan: SELECT age FROM mytable; Taulukossa olevia tietoja voi muuttaa UPDATE-lauseella:

3 12. MySQL-tietokannankäyttö 213 UPDATE mytable SET first_name = 'Bert'; Lause muuttaa kentän first_name arvoksi Bert jokaisella rivillä. Voimme kaventaa SELECT- ja UPDATElauseiden vaikutusaluetta WHERE-osalla. Esimerkiksi näin: SELECT * FROM mytable WHERE first_name = 'Bert'; Nyt lause palauttaa vain ne rivit, joissa first_name-kenttä sisältää merkkijonon Bert. Tämä seuraava esimerkki muuttaa arvon Bert kaikkien niiden rivien first_name-kenttiin, joilla second_name-kenttä sisältää arvon Baker : UPDATE mytable SET first_name = "Bert" WHERE second_name = "Baker"; Saat lisätietoa SQL-kielestä esimerkiksi Samsin teoksista. Tietokantapalvelimeen kytkeytyminen Ennen kuin alat työskennellä tietokannallasi, sinun tulee kytkeytyä palvelimelle. Siihen PHP tarjoaa funktion mysql_connect(). Funktio ei vaadi mitään argumentteja, mutta sille voidaan antaa kolme merkkijonoa: palvelimen nimi, käyttäjätunnus ja salasana. Jos jokin argumenteista tai ne kaikki jätetään pois, funktio olettaa, että localhost on palvelin. Mitään salasanaa tai käyttäjätunnusta ei myöskään ole asetettu mysqluser-taulukossa, ellei oletuksia ole asetettu php.ini-tiedostossa. Argumentit voidaan tietenkin jättää pois vain testitietokantaa käytettäessä. Esimerkeissämme käytämme aina käyttäjätunnusta ja salasanaa. Funktio palauttaa linkkitunnisteen, jos kytkeytyminen on onnistunut. Voit tallentaa palautusarvon muuttujaan, jotta voit jatkaa työskentelyä tietokantapalvelimen kanssa. Seuraava koodilohko käyttää mysql_connect()- funktiota MySQL-tietokantapalvelimelle kytkeytymiseen: $link = mysql_connect( "localhost", "root", "n1ckel" ); if (! $link ) die( "Couldn't connect to MySQL" ); Jos käytät PHP:tä Apachen kanssa, voit kytkeytyä tietokantapalvelimeen myös mysql_pconnect()- funktiolla. Itse asiassa siinä on merkittävä ero. Jos käytät tätä funktiota, yhteys ei katkea, kun skriptisi lopettaa suorituksen tai jos kutsut mysql_close()-funktiota (joka lopettaa standardiyhteyden MySQLpalvelimelle). Sen sijaan yhteys jää aktiiviseksi odottaen toista prosessia kutsumaan mysql_pconnect()- funktiota. Toisin sanoen uutta yhteyttä ei tarvitse avata palvelimelle, jolloin resursseja säästyy; aiempi kutsu on jättänyt yhteyden auki.

4 MySQL-tietokannankäyttö Tietokannan valitseminen Kun olet nyt toteuttanut yhteyden MySQL-demoniin, voitkin valita tietokannan, jolla haluaisit työskennellä. Tietokanta valitaan mysql_select_db()-funktiolla. Funktio ottaa argumentikseen tietokannan nimen ja valinnaisen linkkitunnisteen. Jos tunniste jätetään pois, käytetään oletuksena edellisessä kytkeytymisessä palautettua tunnistetta. Funktio palauttaa arvon true, jos tietokanta on olemassa ja sitä voidaan käsitellä. Seuraava koodilohko valitsee tietokannan nimeltä sample: $database = "sample"; mysql_select_db( $sample ) or die ( "Couldn't open $sample ); Virheistä selviytyminen Toistaiseksi olemme testanneet MySQL-funktion palautusarvot ja käyttäneet die()-funktiota lopettamaan skriptin suoritus, jos ongelmia ilmenee. Voisit kuitenkin lisäksi tulostaa tietoa virheestä selaimelle voidaksesi paremmin korjata virheen. MySQL asettaa virhenumeron ja virhemerkkijonon aina, kun toiminto ei onnistu. Saat virhenumeron esille funktiolla mysql_errno() ja virhetekstin funktiolla mysql_error(). Listaus 12.1 sisältää aiemmat esimerkkimme; siinä kytkeydytään tietokantapalvelimelle ja valitaan tietokanta. Käytämme mysql_error()-funktiota selkeyttämään virheilmoituksia. Listaus 12.1 Yhteyden avaaminen ja tietokannan valitseminen 1: <html> 2: <head> 3: <title>listing 12.1 Opening a connection and 4: selecting a database</title> 5: </head> 6: <body> 7: <?php 8: $user = "harry"; 9: $pass = "elbomonkey"; 10: $db = "sample"; 11: $link = mysql_connect( "localhost", $user, $pass ); 12: if (! $link ) 13: die( "Couldn't connect to MySQL" ); 14: print "Successfully connected to server<p>"; 15: mysql_select_db( $db ) 16: or die ( "Couldn't open $db: ".mysql_error() ); 17: print "Successfully selected database \"$db\"<p>"; 18: mysql_close( $link );

5 12. MySQL-tietokannankäyttö :?> 20: </body> 21: </html> Jos muutamme $db-muuttujan arvoksi notthere, yritämme avata tietokantaa, jota ei ole olemassa. Tällöin die()-funktion tulostus näyttää jokseenkin seuraavalta: Couldn't open sample2: Access denied for user: to database 'sample2' Tiedon lisääminen taulukkoon Kun olemme nyt saaneet esille tietokannan, voimme lisätä tietoa sen taulukoihin. Seuraavissa esimerkeissä oletetaan, että olemme kehittämässä sivustoa, jonka kautta voidaan ostaa domain-nimiä. Olemme luoneet domains-nimisen taulukon sample-tietokantaan. Taulukossa on viisi saraketta: peruavain nimeltä id, joka kasvaa automaattisesti yhdellä, kun uusi tietue lisätään taulukkoon, domain-kenttä, jossa on vaihteleva määrä merkkejä (VARCHAR), sex-kenttä, jossa on yksittäinen merkki ja mail-kenttä, joka sisältää käyttäjän -osoitteen. Seuraava SQL-lause luo taulukon: create table domains ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY( id ), domain VARCHAR( 20 ), sex CHAR(1), mail VARCHAR( 20 ) ); Lisätäksemme tietoa taulukkoon meidän tulee muodostaa SQL-kysely ja ajaa se. PHP tarjoaa tähän tarkoitukseen mysql_query()-funktion. Funktio ottaa argumentikseen merkkijonon, jossa on SQL-kysely ja valinnaisen linkkitunnisteen. Jos tunniste jätetään pois, kysely lähetetään sille tietokantapalvelimelle, johon viimeksi kytkeydyttiin. Funktio palauttaa positiivisen arvon, jos kysely onnistuu. Jos kyselyssä on syntaksivirhe tai jos tietokannan käyttöön ei ole riittäviä oikeuksia, funktio palauttaa false-arvon. Huomaa, että onnistunut kysely ei välttämättä johda muutettuihin riveihin. Listaus 12.2 on laajennettu versio edellisestä esimerkistämme; siinä käytetään mysql_query()-funktiota lähettämään INSERT-komento sample-tietokannan domains-taulukolle. Listaus 12.2 Rivin lisääminen taulukkoon 1: <html> 2: <head> 3: <title>listing 12.2 Adding a row to a table</title> 4: </head>

6 MySQL-tietokannankäyttö 5: <body> 6: <?php 7: $user = "harry"; 8: $pass = "elbomonkey"; 9: $db = "sample"; 10: $link = mysql_connect( "localhost", $user, $pass ); 11: if (! $link ) 12: die( "Couldn't connect to MySQL" ); 13: mysql_select_db( $db, $link ) 14: or die ( "Couldn't open $db: ".mysql_error() ); 15: $query = "INSERT INTO domains ( domain, sex, mail ) 16: values( '123xyz.com', 'F', )"; 17: mysql_query( $query, $link ) 18: or die ( "Couldn't add data to \"domains\" table: " 19:.mysql_error() ); 20: mysql_close( $link ); 21:?> 22: </body> 23: </html> Huomaa, että emme laittaneet arvoa id-kenttään. Kyseinen kenttä kasvattaa automaattisesti itseään. Aina kun lataamme listauksen 12.2 skriptin, sama tieto lisätään tietenkin uudelle riville. Listauksessa 12.3 käyttäjän antamat tiedot lisätään tietokantaamme. Listaus 12.3 Käyttäjän syöttämien tietojen lisääminen tietokantaan 1: <html> 2: <head> 3: <title>listing 12.3 Adding user input to a database</title> 4: </head> 5: <body> 6: <?php 7: if ( isset( $domain ) && isset( $sex ) && isset( $domain ) ) 8: { 9: // tarkista syöttötieto!

7 12. MySQL-tietokannankäyttö : $dberror = ""; 11: $ret = add_to_database( $domain, $sex, $mail, $dberror ); 12: if (! $ret ) 13: print "Error: $dberror<br>"; 14: else 15: print "Thank you very much"; 16: } 17: else { 18: write_form(); 19: } 20: 21: function add_to_database( $domain, $sex, $mail, &$dberror ) 22: { 23: $user = "harry"; 24: $pass = "elbomonkey"; 25: $db = "sample"; 26: $link = mysql_pconnect( "localhost", $user, $pass ); 27: if (! $link ) 28: { 29: $dberror = "Couldn't connect to MySQL server"; 30: return false; 31: } 32: if (! mysql_select_db( $db, $link ) ) 33: { 34: $dberror = mysql_error(); 35: return false; 36: } 37: $query = "INSERT INTO domains ( domain, sex, mail ) 38: values( '$domain', '$sex', '$mail' )"; 39: if (! mysql_query( $query, $link ) ) 40: { 41: $dberror = mysql_error(); 42: return false;

8 MySQL-tietokannankäyttö 43: } 44: return true; 45: } 46: 47: function write_form() 48: { 49: global $PHP_SELF; 50: print "<form action=\"$php_self\" method=\"post\">\n"; 51: print "<input type=\"text\" name=\"domain\"> "; 52: print "The domain you would like<p>\n"; 53: print "<input TYPE=\"text\" name=\"mail\"> "; 54: print "Your mail address<p>\n"; 55: print "<select name=\"sex\">\n"; 56: print "\t<option value=\"f\"> Female\n"; 57: print "\t<option value=\"m\"> Male\n"; 58: print "</select>\n"; 59: print "<input type=\"submit\" value=\"submit!\">\n</form>\n"; 60: } 61:?> 62: </body> 63: </html> Pitääksemme esimerkin lyhyenä olemme jättäneet pois merkittävän prosessin listauksesta Luotamme käyttäjiimme. Itse asiassa meidän tulisi tarkistaa, millaista tietoa käyttäjä syöttää. Käsittelemme merkkijonofunktioita, jotka helpottavat testaamista, luvussa 17, Merkkijonojen käsittely. Tarkistamme koodissamme muuttujat $domain, $sex ja $mail. Jos ne ovat olemassa, voimme olla melko varmoja siitä, että muuttujat on lähetetty käyttäjän toimesta ja voimme kutsua sitten add_to_database()-funktiota. Funktio ottaa neljä argumenttia: muuttujat $domain, $sex ja $mail sekä merkkijonomuuttujan $dberror. Viimeiseen muuttujaan laitetaan mahdolliset virhetekstit ja siksi $dberror on nyt viittaustyyppinen parametri. Kaikki muutokset, jotka tapahtuvat muuttujalle funktion toimesta, muuttavat alkuperäistä muuttujaa, eikä kyseessä siis ole kopio. Yritämme avata yhteyden MySQL-palvelimelle. Jos se epäonnistuu, sijoitamme virhetekstin $dberrormuuttujaan ja lopetamme muuttujan ajamisen palauttamalla arvon false. Valitsemme tietokannan, jossa on domains-taulukko ja muodostamme SQL-kyselyn, joka laittaa käyttäjän lähettämät tiedot tietokantaan. Kyselyteksti viedään mysql_query()-funktiolle, joka hoitaa kyselyn suorittamisen. Jos joko mysql_select_db() tai mysql_query() epäonnistuu, sijoitetaan mysql_error()-funktion palauttama arvo $dberror-muuttujaan ja palautetaan false kutsuvalle ohjelmalle. Jos kaikki menee hyvin, funktio palauttaa arvon true.

9 12. MySQL-tietokannankäyttö 219 Kutsuvassa koodissa testataan add_to_database()-funktion palauttama arvo. Jos se on true, voimme olla varmoja siitä, että tiedot on lisätty tietokantaan ja voimme kiittää käyttäjää siitä. Muutoin tulostamme virhetekstin selaimelle. Tiedämme, että $dberror sisältää nyt tärkeää tietoa, joten laitamme sen mukaan virheilmoitukseen. Jos alussa oleva if-lause ei onnistu löytämään $domain-, $sex- tai $mail-muuttujia, oletamme, että mitään tietoa ei ole lähetetty, ja kutsumme toista käyttäjän määrittelemää funktiota, write_form(), joka tulostaa HTML-lomakkeen selaimelle. Automaattisesti inkrementoidun kentän arvon saaminen Edellisissä esimerkeissämme lisäsimme tietoa tietokantaan murehtimatta id-sarakkeesta, joka kasvaa automaattisesti yhdellä aina uutta tietoa lisättäessä. Jos meidän on saatava esille tuon kentän arvo, voimme aina käyttää SQL-kyselyä. Entäpä, jos arvoa tarvittaisiin aivan heti? Olisi tuhlaavaista lähteä hakemaan sitä SQL-kyselyllä. Onneksi PHP tarjoaa käyttöön mysql_insert_id()-funktion, joka palauttaa automaattisesti kasvatetun kentän arvon INSERT-tyyppisen SQL-kyselyn suorittamisen jälkeen. Funktio ottaa valinnaiseksi argumentiksi linkkitunnisteen. Jos mitään argumentteja ei anneta, funktio käyttää viimeksi toteutettua linkkiä. Jos siis haluamme kertoa käyttäjälle numeroarvon, joka uudelle tietueelle generoitiin, voimme käyttää mysql_insert_id()-funktiota heti tietojen lisäämisen jälkeen. $query = "INSERT INTO domains ( domain, sex, mail ) values( '$domain', '$sex', A '$mail' )"; mysql_query( $query, $link ); $id = mysql_insert_id(); print "Thank you. Your transaction number is $id. Please quote it in any A queries."; Tiedon ottaminen esille Kun osaat nyt lisätä tietoa tietokantaan, on aika tutkia menettelytapoja, joilla tieto saadaan esille. Kuten arvaatkin, voit käyttää mysql_query()-funktiota ja tehdä SELECT-kyselyn. Kuinka sitten pääset tutkimaan palautettuja rivejä? Kun olet suorittanut onnistuneen SELECT-kyselyn, mysql_query() palauttaa tulostunnisteen. Voit viedä tuon tunnisteen muille funktioille käsitelläksesi tulosjoukkoa. Kyselyn antaman rivimäärän selvittäminen SELECT-kyselyn tuloksena saatujen rivien määrä saadaan esille mysql_num_rows()-funktiolla. Se ottaa argumentikseen tulostunnisteen ja palauttaa joukossa olevien rivien määrän. Listaus 12.4 käyttää SELECTkyselyä kaikkien domains-taulukossa olevien rivien palauttamiseen. Sen jälkeen esimerkissä käytetään mysql_num_rows()-funktiota määrittämään taulukon koko.

10 MySQL-tietokannankäyttö Listaus 12.4 SELECT-kyselyn palauttamien rivien määrän selvittäminen 1: <html> 2: <head> 3: <title>listing 12.4 Using mysql_num_rows()</title> 4: </head> 5: <body> 6: <?php 7: $user = "harry"; 8: $pass = "elbomonkey"; 9: $db = "sample"; 10: $link = mysql_connect( "localhost", $user, $pass ); 11: if (! $link ) 12: die( "Couldn't connect to MySQL" ); 13: mysql_select_db( $db, $link ) 14: or die ( "Couldn't open $db: ".mysql_error() ); 15: $result = mysql_query( "SELECT * FROM domains" ); 16: $num_rows = mysql_num_rows( $result ); 17: print "There are currently $num_rows rows in the table<p>"; 18: mysql_close( $link ); 19:?> 20: </body> 21: </html> Kyselyfunktion palauttama tulostunniste viedään mysql_num_rows()-funktiolla, joka palauttaa rivien määrän. Tulosjoukon käsittely Kun olet suorittanut SELECT-kyselyn ja saanut esille tulostunnisteen, voit käydä silmukassa läpi jokaisen rivin vuoron perään. PHP ylläpitää sisäistä osoitinta, joka kertoo sijainnin rivijoukossa. Osoitin siirtyy seuraavalle riville yhden rivin käsittelyn jälkeen. Voit saada helposti esille rivillä olevien kenttien taulukon mysql_fetch_row()-funktiolla. Se ottaa argumentikseen tulostunnisteen ja palauttaa taulukon, joka sisältää rivin kaikki kentät. Kun tulosjoukon loppu kohdataan, mysql_fetch_row() palauttaa arvon false. Listaus 12.5 tulostaa domain-taulukon kokonaan selaimelle.

11 12. MySQL-tietokannankäyttö 221 Listaus 12.5 Taulukon kaikkien rivien ja kenttien tulostaminen 1: <html> 2: <head> 3: <title>listing 12.5 Listing all rows and fields in a table</title> 4: </head> 5: <body> 6: <?php 7: $user = "harry"; 8: $pass = "elbomonkey"; 9: $db = "sample"; 10: $link = mysql_connect( "localhost", $user, $pass ); 11: if (! $link ) 12: die( "Couldn't connect to MySQL" ); 13: mysql_select_db( $db, $link ) 14: or die ( "Couldn't open $db: ".mysql_error() ); 15: $result = mysql_query( "SELECT * FROM domains" ); 16: $num_rows = mysql_num_rows( $result ); 17: print "There are currently $num_rows rows in the table<p>"; 18: print "<table border=1>\n"; 19: while ( $a_row = mysql_fetch_row( $result ) ) 20: { 21: print "<tr>\n"; 22: foreach ( $a_row as $field ) 23: print "\t<td>$field</td>\n"; 24: print "</tr>\n"; 25: } 26: print "</table>\n"; 27: mysql_close( $link ); 28:?> 29: </body> 30: </html>

12 MySQL-tietokannankäyttö Kun olemme kytkeytyneet palvelimelle ja valinneet tietokannan, käytämme mysql_query()-funktiota lähettämään SELECT-lause tietokantapalvelimelle. Palautettu tulososoitin tallennetaan $result-muuttujaan. Käytämme sitä löydettyjen rivien määrän esille ottamiseen, kuten ennenkin. While-lauseen testiehdossa sijoitetaan mysql_fetch_row()-funktion palauttama tulos $a_row-muuttujaan. Muista, että sijoitusoperaattori palauttaa operaattorin oikealla puolella olevan arvon, joten sijoituslauseen tulos on true niin kauan kuin mysql_fetch_row() palauttaa positiivisen arvon. While-lauseen rungossa käydään läpi kukin $a_row-taulukko ja tulostetaan kukin elementti selaimelle, taulukon soluun. Voit saada esille myös kenttien nimet kahdella eri tavalla. Funktio mysql_fetch_array() palauttaa numeerisen taulukon samalla lailla kuin mysql_fetch_row(). Se palauttaa myös assosiatiivisen taulukon, jonka avaimina ovat kenttien nimet. Seuraava koodilohko kirjoittaa listauksen 12.5 while-lauseen uudelleen ja hyödyntää siinä mysq_fetch_array()-funktiota: print "<TABLE BORDER=1>\n"; while ( $a_row = mysql_fetch_array( $result ) ) { print "<TR>\n"; print "<TD>$a_row[mail]</TD><TD>$a_row[domain]</TD>\n"; print "</TR>\n"; } print "</TABLE>\n"; Voit saada kentät esille riviltä myös objektin ominaisuuksina funktiolla mysql_fetch_object(). Kenttien nimistä tulee ominaisuuksien nimiä. Seuraava koodilohko kirjoittaa listauksen 12.5 while-lauseen taas uudelleen, tällä kertaa siinä käytetään mysql_fetch_object()-funktiota: print "<table border=1>\n"; while ( $a_row = mysql_fetch_object( $result ) ) { print "<tr>\n"; print "<td>$a_row->mail</td><td>$a_row->domain</td>\n"; print "</tr>\n"; } print "</table>\n"; Sekä mysql_fetch_array()- että mysql_fetch_object()-funktio helpottavat tiedon saamista riveiltä. Kumpikaan funktioista ei vie suoritusaikaa juurikaan enempää kuin mysql_fetch_row().

13 12. MySQL-tietokannankäyttö 223 Tiedon muuttaminen Voit muuttaa tietoa mysql_query()-funktiolla käyttämällä UPDATE-lausetta. Onnistunut päivitys ei välttämättä muuta taulukon rivejä. On kutsuttava mysql_affected_rows()-funktiota selvittämään, ovatko taulukon tiedot muuttuneet. Funktio ottaa valinnaiseksi argumentikseen linkkitunnisteen. Jos sitä ei anneta, funktio käyttää viimeksi generoitua linkkitunnistetta. Funktiota voidaan käyttää SQL-kyselyssä taulukon rivin tietojen muuttamiseen. Listaus 12.6 muodostaa skriptin, joka sallii hallintahenkilön muuttaa mitä tahansa domain-taulukon saraketta. Listaus 12.6 Rivien muuttaminen mysql_query()-funktiolla 1: <html> 2: <head> 3: <title>listing 12.6 Using mysql_query() 4: to alter rows in a database</title> 5: </head> 6: <body> 7: <?php 8: $user = "harry"; 9: $pass = "elbomonkey"; 10: $db = "sample"; 11: $link = mysql_connect( "localhost", $user, $pass ); 12: if (! $link ) 13: die( "Couldn't connect to MySQL" ); 14: mysql_select_db( $db, $link ) 15: or die ( "Couldn't open $db: ".mysql_error() ); 16: if ( isset( $domain ) && isset( $id ) ) 17: { 18: $query = "UPDATE domains SET domain = '$domain' where id=$id"; 19: $result = mysql_query( $query ); 20: if (! $result ) 21: die ("Couldn't update: ".mysql_error()); 22: print "<h1>table updated ". mysql_affected_rows(). 23: " row(s) changed</h1><p>"; 24: } 25:?>

14 MySQL-tietokannankäyttö 26: <form action="<? print $PHP_SELF?>" method="post"> 27: <select name="id"> 28: <? 29: $result = mysql_query( "SELECT domain, id FROM domains" ); 30: while( $a_row = mysql_fetch_object( $result ) ) 31: { 32: print "<OPTION VALUE=\"$a_row->id\""; 33: if ( isset($id) && $id == $a_row->id ) 34: print " SELECTED"; 35: print "> $a_row->domain\n"; 36: } 37: mysql_close( $link ); 38:?> 39: </select> 40: <input type="text" name="domain"> 41: </form> 42: </body> 43: </html> Avaamme yhteyden tietokantapalvelimelle ja valitsemme tietokannan normaalisti. Sitten testaamme, ovatko muuttujat $domain ja $id olemassa. Jos ovat, muodostamme UPDATE-kyselyn, joka muuttaa sen rivin domain-kentän arvoa, jossa id on sama kuin muuttujassa $id. Emme tule aiheuttaneeksi virhettä, jos idarvoa ei ole olemassa tai jos $domain sisältää saman arvon kuin rivin domain-kenttä. Sen sijaan mysql_affected_rows() palauttaa tuolloin pelkän nollan. Tulostamme palautusarvon (tavallisesti 1 tässä esimerkissä) selaimelle. Tulostamme HTML-lomakkeen, jonka kautta hallintahenkilö voi tehdä muutoksia. Huomaa, että käytämme mysql_query()-funktiota uudelleen siepataksemme id- ja domain-kenttien arvot ja yhdistääksemme ne SELECT-komponenttiin. Hallintahenkilö voi käyttää tätä alasvetovalikkoa valitakseen muutettavan domainin. Jos hallintahenkilö on jo lähettänyt lomakkeen ja hänen valitsemansa id-arvo vastaa juuri tulostettavaa idkenttää, lisäämme merkkijonon SELECTED OPTION-alkioon. Näin varmistamme, että muutettu arvo on heti näkyvillä valikossa. Tietokantaa koskevan tiedon selvittäminen Toistaiseksi olemme tutkineet tiedon lisäämistä tietokantaan ja sen esille ottamista tietokannasta. PHP tarjoaa käyttöön funktioita, joilla saadaan esille numerotietoa ja rakennetietoa tietokannasta.

15 12. MySQL-tietokannankäyttö 225 Tietokantojen luetteleminen Luettelo kaikista nykyisen yhteyden päässä olevista tietokannoista saadaan funktiolla mysql_list_dbs(). Funktio hyväksyy valinnaisen linkkitunnisteen ja palauttaa tulostunnisteen, jota voidaan käyttää tulostamaan kaikki saatavilla olevat tietokannat. Tulostaminen tehdään mysql_tablename()-funktiolla. Funktio ottaa kaksi argumenttia: tulososoittimen ja tietokannan indeksin. Se palauttaa viitatun tietokannan nimen. Tietokantojen indeksointi alkaa nollasta (0). Tietokantojen määrä saadaan selville kutsumalla mysql_num_rows()-funktiota, jonka argumenttina on mysql_list_dbs()-funktion palauttama tulostunniste. Listaus 12.7 kytkeytyy MySQL-demoniin ja tulostaa luettelon tietokannoista selaimelle. Listaus 12.7 Yhteyden tietokantojen luetteleminen 1: <html> 2: <head> 3: <title>listing 12.7 Listing the databases 4: available in a connection</title> 5: </head> 6: <body> 7: <?php 8: $user = "harry"; 9: $pass = "elbomonkey"; 10: $link = mysql_connect( "localhost", $user, $pass ); 11: if (! $link ) 12: die( "Couldn't connect to MySQL" ); 13: $db_res = mysql_list_dbs( $link ); 14: $num = mysql_num_rows( $db_res ); 15: for( $x = 0; $x < $num; $x++ ) 16: print mysql_tablename( $db_res, $x )."<br>"; 17: mysql_close( $link ); 18:?> 19: </body> 20: </html> Funktion mysql_list_dbs() kutsu palauttaa tulososoittimen. Voimme käyttää tulososoitinta saadaksemme löydettyjen kohteiden kokonaismäärän. Tulososoitin viedään mysql_num_rows()-funktiolle argumenttina. Sijoitamme tuon määrän $num-muuttujaan, jota käytetään sitten for-lauseessa. Kullakin silmukkakierroksella viemme mysql_tablename()-funktiolle tulososoittimen ja indeksin $x. Indeksi kasvaa nollasta arvoon $num-1. Kuva 12.1 näyttää listauksen 12.7 tulostuksen. Voisit käyttää myös mysql_list_dbs()-funktion palauttamaa tulostunnistetta samalla lailla kuin mysql_query()-funktion palauttamaa tunnistetta SELECT-

16 MySQL-tietokannankäyttö kyselyssä. Voit siis viedä tunnisteen mysql_fetchrow()-funktiolle; se palauttaa taulukon, jonka ensimmäisenä alkiona on tietokannan nimi. KUVA 12.1 Kaikkien tietokantojen listaaminen Tietokannan taulukoiden luetteleminen Tietokannan taulukot voidaan luetella funktiolla mysql_list_tables(); se ottaa argumentikseen tietokannan nimen ja (valinnaisen) linkkitunnisteen. Jos tietokanta löytyy ja sinulla on oikeudet sen käyttämiseen, mysql_list_tables() palauttaa tulostunnisteen, jota voit käyttää fetch()-funktioiden yhteydessä (esimerkiksi mysql_fetch_row()-funktion kanssa). Vaihtoehtoisesti voit käyttää mysql_tablename()-funktiota, kuten teimme mysql_list_dbs()-funktion yhteydessä. Seuraava koodilohko käyttää mysql_list_tables()-funktiota listaamaan tietokannan kaikki taulukot: $result = mysql_list_tables( "sample", $link ); while ( $tab_rows = mysql_fetch_row( $result ) ) print "$tab_rows[0]<br>\n"; Kenttien listaaminen ja tutkiminen Kun saat esille tulostunnisteen SELECT-kyselyä tekevältä mysql_query()-funktiolta, voit laskea palautettujen sarakkeiden määrän mysql_num_fields()-funktiolla. Funktio ottaa tulostunnisteen argumentikseen ja palauttaa kokonaisluvun, joka kertoo löydettyjen kenttien määrän: $result = mysql_query( "SELECT * from domains" ); $num_fields = mysql_num_fields( $result );

17 12. MySQL-tietokannankäyttö 227 Kullakin kentällä on indeksi (joka alkaa nollasta). Tulostunnisteen ja kentän indeksin perusteella saadaan esille kentän ominaisuudet, esimerkiksi nimi, tyyppi, maksimipituus ja liput. Kentän nimi saadaan esille viemällä mysql_field_name()-funktiolle tulostunniste ja kentän indeksi: $result = mysql_query( "SELECT * from domains" ); $num_fields = mysql_num_fields( $result ); for ( $x=0; $x<$num_fields; $x++ ) mysql_field_name( $result, $x ). "<BR>\n"; Kentän maksimipituus saadaan vastaavasti funktiolla mysql_field_len(): $result = mysql_query( "SELECT * from domains" ); $num_fields = mysql_num_fields( $result ); for ( $x=0; $x<$num_fields; $x++ ) mysql_field_len( $result, $x ). "<BR>\n"; Kentän liput saadaan esille vastaavasti funktiolla mysql_field_flags(): $result = mysql_query( "SELECT * from domains" ); $num_fields = mysql_num_fields( $result ); for ( $x=0; $x<$num_fields; $x++ ) mysql_field_flags( $result, $x ). "<BR>\n"; Kentän tyyppi saadaan esille funktiolla mysql_field_type(): $result = mysql_query( "SELECT * from domains" ); $num_fields = mysql_num_fields( $result ); for ( $x=0; $x<$num_fields; $x++ ) mysql_field_flags( $result, $x ). "<BR>\n"; Tietokannan rakenne: kaikki yhdessä Listaus 12.8 yhdistää kaikki edellä kuvatut tekniikat, joilla lueteltiin tietokannat, taulukot ja kentät.

18 MySQL-tietokannankäyttö Listaus 12.8 Jokaisen tietokannan, taulukon ja kentän luetteleminen 1: <html> 2: <head> 3: <title>listing 12.8 Listing every database, table, and field</title> 4: </head> 5: <body> 6: <?php 7: $user = "root"; 8: $pass = "n1ckel"; 9: $db = "sample"; 10: $link = mysql_connect( "localhost", $user, $pass ); 11: if (! $link ) 12: die( "Couldn't connect to MySQL" ); 13: $db_res = mysql_list_dbs( $link ); 14: while ( $db_rows = mysql_fetch_row( $db_res ) ) 15: { 16: print "<b>$db_rows[0]</b>\n"; 17: if $db_rows[0], $link ) ) 18: { 19: print "<dl><dd>couldn't connect -- ". mysql_error()." </dl>"; 20: continue; 21: } 22: $tab_res = mysql_list_tables( $db_rows[0], $link ); 23: print "\t<dl><dd>\n"; 24: while ( $tab_rows = mysql_fetch_row( $tab_res ) ) 25: { 26: print "\t<b>$tab_rows[0]</b>\n"; 27: $query_res = mysql_query( "SELECT * from $tab_rows[0]" ); 28: $num_fields = mysql_num_fields( $query_res ); 29: print "\t\t<dl><dd>\n"; 30: for ( $x=0; $x<$num_fields; $x++ ) 31: {

19 12. MySQL-tietokannankäyttö : print "\t\t<i>"; 33: print mysql_field_type( $query_res, $x ); 34: print "</i> <i>"; 35: print mysql_field_len( $query_res, $x ); 36: print "</i> <b>"; 37: print mysql_field_name( $query_res, $x ); 38: print "</b> <i>"; 39: print mysql_field_flags( $query_res, $x ); 40: print "</i><br>\n"; 41: } 42: print "\t\t</dl>\n"; 43: } 44: print "\t</dl>\n"; 45: } 46: mysql_close( $link ); 47:?> 48: </body> 49: </html> Kytkeydymme MySQL-palvelimelle tavalliseen tapaan ja kutsumme mysql_list_dbs()-funktiota saadaksemme esille tulostunnisteen. Viemme tunnisteen mysql_fetch_row()-funktiolle, joka palauttaa vuorostaan tietokantojen nimet (ne on tallennettu $db_rows-taulukon ensimmäiseen alkioon). Viemme kunkin tietokannan nimen sitten mysql select_db()-funktiolle. Jos oikeutemme eivät riitä, tulostuu viesti selaimelle ja continue-lauseen kautta jatketaan eteenpäin seuraavalle kierrokselle. Jos tietokanta saadaan valituksi, tulostetaan kyseisen tietokannan taulukoiden nimet. Viemme tietokannan nimen mysql_list_tables()-funktiolle ja saamme uuden tulostunnisteen. Jälleen kerran viemme sen mysql_fetch_row()-funktiolle, joka alkaa tulostaa silmukassa taulukoiden nimiä. Tulostamme taulukon nimen ja käytämme sitten SQL-kielistä SELECT-kyselyä, joka hakee taulukon kaikki kentät ja rivit. Viemme kyselyn mysql_query()-funktiolle ja saamme nyt toisen tulostunnisteen. Se viedään mysql_num_fields()-funktiolle, joka palauttaa kenttien määrän. Sitten käytämme for-lausetta käymään läpi tulosjoukon ja tulostamaan sitten sarakkeiden ominaisuustiedot. Sarakkeiden indeksit (laskurimuuttujassa $x) alkavat nollasta ja maksimiarvo on sarakkeiden määrä vähennettynä yhdellä. Sarakkeiden kohdalla kutsutaan sitten juuri käsiteltyjä kentän testausfunktioita.

20 MySQL-tietokannankäyttö Kun skripti on ajettu, selaimella tulisi olla siisti tulostus, jossa näkyvät yhdeyden päässä olevat tietokannat, tietokannoissa olevat taulukot ja taulukoiden kenttätiedot. Kuva 12.2 esittää osan tulostuksesta. KUVA 12.2 Jokaisen tietokannan, taulukon ja kentän luetteleminen. Yhteenveto Tällä tunnilla käsittelimme MySQL-tietokantoja. Tutkimme, kuinka tietoa tallennetaan tietokantoihin ja kuinka sitä saadaan esille tietokannoista. Sinun tulisi nyt osata toteuttaa kytkeytyminen MySQL-tietokantaan käyttäen mysql_connect()- tai mysql_pconnect()-funktiota. Tietokannan valintaan voit sitten käyttää mysql_select_db()-funktiota. Jos valinta epäonnistuu, saat esille virheinformaatiota mysql_error()-funktiolla. SQL-kyselyjä voit laatia mysql_query()-funktiolla. Funktio palauttaa tulostunnisteen, jonka avulla päästään tietoon käsiksi ja saadaan selville muuttuneiden rivien määrä. Sinun tulisi nyt osata käyttää PHP:n MySQL-funktioita saadaksesi esille myös luettelon tietokannoista, taulukoista ja kentistä sekä lisätietoa kenttien ominaisuuksista. K&V Q Tällä tunnilla käsiteltiin MySQL-tietokantoja. Kuinka hyvin voin siirtää näitä esimerkkejä muihin SQLtietokantoihin? V On olemassa MySQL-funktioita, jotka ovat lähes samanlaisia kuin MySQL-funktiot. Muilla tietokantapalvelimilla on vastaavia PHP-funktioita, jotka tukevat niiden piirteitä ja mahdollisuuksia. Eri lähteistä tulevilla tietokantafunktioilla on yhteisenä piirteenä mahdollisuus SQL-kyselyihin. Jos käytät ANSIstandardin mukaista SQL-syntaksia, sinulla ei pitäisi olla ongelmia sovittaa skriptisi eri tietokantapalvelimille.

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja. laskutus_index http://media.stadia.fi/~0700527/laskutus/laskutus_index.html Sivu 1/1 13.12.2007 Laskutus -tietokanta Henkilöiden tiedot: Lisää uuden henkilön tiedot Muuta tai poista henkilön tiedot Selaa

Lisätiedot

LINUX-HARJOITUS, MYSQL

LINUX-HARJOITUS, MYSQL LINUX-HARJOITUS, MYSQL Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla

OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 19. Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 337 OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla HTTP on tilaton protokolla. Se merkitsee sitä, että jokainen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

SQL Buddy JAMK Labranet Wiki

SQL Buddy JAMK Labranet Wiki Page 1 of 9 SQL Buddy JAMK Labranet Wiki Sisällysluettelo Yleistä SQL Buddy:sta kotisivu :http://sqlbuddy.com/ SQL Buddy on kevyt hallintatyökalu MySQL-tietokannalle. Järjestelmävaatimukset Serverin vaatimukset

Lisätiedot

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata

Lisätiedot

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36 !!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat

Lisätiedot

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) HAAGA-HELIA ICT1TA006: Ohjelmointi 1 /5 Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC) (Lähteet: Oracle java jdbc Tutorial, Arvo Lipitsäinen: Tietokannan käsittely JDBC:n

Lisätiedot

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta Tiedonhallinnan perusteet H11 Ovien ja kulun valvontajärjestelmän tietokanta Nimi: Mikko Haapanen Opiskelijanumero: 0900568 Ryhmä: T09L Työ tehty: 15.3.2010 Mikko Haapanen 15.3.2010 1(7) 1. Asiakasvaatimukset

Lisätiedot

JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia)

JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) Esim 5.1 laskujärjestys operaattorit var tulos = 5 + 4 * 12 / 4; document.write("5 + 4 * 12 / 4 laskutoimituksen tulos

Lisätiedot

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opintojaksolla: keskitytään relaatiotietokantojen teoriaan ja toimintaan SQL-kieli kyselykielenä

Lisätiedot

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden

Lisätiedot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

Lisätiedot

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO NÄKYMÄT Näkymä (view) on looginen näyte tietokannan tauluista tai näkymistä Näkymä ei voi sisältää SELECT INTO,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke

Lisätiedot

11. oppitunti III. Viittaukset. Osa. Mikä on viittaus?

11. oppitunti III. Viittaukset. Osa. Mikä on viittaus? Osa III 11. oppitunti Viittaukset Kahdessa viime luvussa opit käyttämään osoittimia kohteiden käsittelyyn vapaalla muistialueella sekä viittaamaan noihin kohteisiin epäsuorasti. Tässä luvussa käsiteltävät

Lisätiedot

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include 15: 16: int main() 17: {

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: { Osa I 2. oppitunti C++-ohjelman osat Ennen kuin menemme yksityiskohtaisemmin sisälle C++-luokkiin, -muuttujiin jne, katsokaamme ensin, millaisista osista C++-ohjelma koostuu. Tämän tunnin aikana opit seuraavat

Lisätiedot

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010 HELIA TIKO-05 1 (22) SQL SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 Sql-komentojen kirjoittaminen... 5 DDL... 7 Tietokantaobjektien määrittely... 7 SQL:n tietotyypit... 8 Eheyssääntöjen määrittely...

Lisätiedot

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia Tällä viikolla Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia 1.) Mainitse tietokonepelistä (kuvitteellisesta tai todellisesta) esimerkkitilanteita,

Lisätiedot

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 HSMT Tietokannoista Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 29.3.2016 CSE-A1200 Tietokannat 29.3.2016 1 / 40 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat

Lisätiedot

ICT1TN004. Lomakkeet. Heikki Hietala

ICT1TN004. Lomakkeet. Heikki Hietala Lomakkeet Heikki Hietala Lomakkeet Lomakkeita käytetään keräämään tietoa käyttäjältä ja siirtämään se palvelimelle Lomakkeen luominen ei yksin riitä, vaan pitää luoda myös lomakkeenkäsittelijä Lomakkeen

Lisätiedot

Zeon PDF Driver Trial

Zeon PDF Driver Trial Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin

Lisätiedot

Ylläpitodokumentti Labra

Ylläpitodokumentti Labra Ylläpitodokumentti Labra Helsinki 26.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,

Lisätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

Fakta versio 5.3.0.1069 Forecast versio 1.3.0.53

Fakta versio 5.3.0.1069 Forecast versio 1.3.0.53 1 (7) Fakta versio 5.3.0.1069 versio 1.3.0.53 Ohessa on luettelo uusista ja muuttuneista toiminnoista ja ominaisuuksista version x.2.1 jälkeen. Porautuminen saldoista tapahtuariveille.. Jako on mahdollista

Lisätiedot

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

Asiointipalvelun ohje

Asiointipalvelun ohje Asiointipalvelun ohje Yleistä 1. Kirjautuminen 2. Yhteystiedot 3. Vastaustavan valinta 1. Yleistä 2. Palkkatietojen lataaminen tiedostosta 4. Lomake 1. Yleistä 2. Linkit ja vastaajan tiedot 3. Lomakekäsittely

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

JavaScript alkeet Esimerkkikoodeja moniste 2

JavaScript alkeet Esimerkkikoodeja moniste 2 JavaScript alkeet Esimerkkikoodeja moniste 2 Esim 5.1 laskujärjestys operaattorit var tulos = 5 + 4 * 12 / 4; document.write("5 + 4 * 12 / 4 laskutoimituksen tulos on " + tulos,"");

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2011 1 / 34 Luentopalaute kännykällä käynnissä! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

Toimittajaportaalin rekisteröityminen Toimittajaportaalin sisäänkirjautuminen Laskun luonti Liitteen lisääminen laskulle Asiakkaiden hallinta Uuden

Toimittajaportaalin rekisteröityminen Toimittajaportaalin sisäänkirjautuminen Laskun luonti Liitteen lisääminen laskulle Asiakkaiden hallinta Uuden 1 Toimittajaportaalin rekisteröityminen Toimittajaportaalin sisäänkirjautuminen Laskun luonti Liitteen lisääminen laskulle Asiakkaiden hallinta Uuden asiakkaan lisääminen Laskujen haku Salasanan vaihto

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Testidatan generointi

Testidatan generointi Testidatan generointi Anu Ahonen Kevät 2008 Tämä työ on tehty Creative Commons -lisenssin alla Työn tarkasti 9.4.2008 Jouni Huotari (JAMK/IT) 1 SISÄLTÖ 1 TYÖN LÄHTÖKOHDAT JA TOTEUTUS...2 2 TESTIDATAN GENEROINTI

Lisätiedot

5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma

5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma 5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma Every cloud has a silver line. - englantilainen sananlasku Tässä osiossa tärkeää: yksi- ja moniulotteinen taulukko Sisältö Yleistä Yksiulotteinen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2011 1 / 37 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

PHPMyAdmin. MySQL-tietokannan hallintatyökalu. Antti Järvinen Ville Pietarinen

PHPMyAdmin. MySQL-tietokannan hallintatyökalu. Antti Järvinen Ville Pietarinen PHPMyAdmin MySQL-tietokannan hallintatyökalu Antti Järvinen Ville Pietarinen IIO30100 Tietokantojen hallinta Selvitysraportti Kevät 2007 1 Johdanto...Error! Bookmark not defined. 2 Perustietoa... 3 3 PHPMyAdmin

Lisätiedot

Käytin tehtävän tekemiseen Xubuntu 13.04 -käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Käytin tehtävän tekemiseen Xubuntu 13.04 -käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta. Tehtävänanto - Asenna ja testaa LAMP - Aiheuta vähintään 3 virhettä ja analysoi lokista - Tee nimipohjainen virtuaalipalvelin, joissa toimii myös www. (Karvinen, T. 23.09.2013) Työympäristö Tein tehtävän

Lisätiedot

Toimittajaportaalin pikaohje

Toimittajaportaalin pikaohje 1 Toimittajaportaalin pikaohje Toimittajaportaalin rekisteröityminen Toimittajaportaalin sisäänkirjautuminen Laskun luonti Liitteen lisääminen laskulle Asiakkaiden hallinta Uuden asiakkaan lisääminen Laskujen

Lisätiedot

Toteutusdokumentti. Aija. Helsinki 1.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos

Toteutusdokumentti. Aija. Helsinki 1.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos Toteutusdokumentti Aija Helsinki 1.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos Sisältö 1. Johdanto...3 2. SQL -lauseet...3 3. Ajastettutoiminta - backrun.php...3

Lisätiedot

POISSAOLOJEN SEURANTAJÄRJESTELMÄ

POISSAOLOJEN SEURANTAJÄRJESTELMÄ POISSAOLOJEN SEURANTAJÄRJESTELMÄ Opinnäytetyö PSK-Aikuisopisto Mac-datanomi, Digitaalinen viestintä Lakso Eija 15.01.2011 2 SISÄLLYSLUETTELO SISÄLLYSLUETTELO... 2 TIIVISTELMÄ... 3 1. JOHDANTO... 4 2. TYÖN

Lisätiedot

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: KERTAUSTEHTÄVIÄ Tietue Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: struct henkilotiedot char nimi [20]; int ika; char puh [10]; ; Edellä esitetty kuvaus määrittelee

Lisätiedot

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY 1 WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY 10.4.2015 Lounea Oy Tehdaskatu 6, 24100 Salo Puh. 029 707 00 Y-tunnus 0139471-8 www.lounea.fi Asiakaspalvelu 0800 303 00 Yrityspalvelu 0800 303 01 Myymälät 0800 303

Lisätiedot

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille KServer Etäohjaus 1 (5) KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille Palvelimen toteutuksen ollessa versio 1.0, spesifikaation versio 1.0.0. 2009, Riku Eskelinen/ KServer Software Development

Lisätiedot

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille: Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin

Lisätiedot

Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi

Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi Excel-taulukkoon X- ja Y-sarakkeisiin tallennettujen koordinaattien muuntaminen paikkatietokohteiksi Esimerkkinä Excel-taulukkona ladattavat Helsingin pysäköintilippuautomaatit Viimeksi muokattu 27. huhtikuuta

Lisätiedot

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä.

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä. Pikaopas Microsoft Access 2013 näyttää erilaiselta kuin aiemmat versiot. Tämän oppaan avulla pääset alkuun nopeasti ja saat yleiskuvan uusista ominaisuuksista. Näyttökoon muuttaminen tai tietokannan sulkeminen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

12.10.2011. Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle

12.10.2011. Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle (Ei yhtään videota tällä kertaa.) X niin kuin Cross-Platform, Apache, MySql, PHP, Perl Kehitysympäristö EI tuotantokäyttöön Monet tärkeät tietoturva-asetukset ovat oletuksena pois päältä Erittäin nopea

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI Tavoite: Suunnitella käyttäjien tarvitsemat turvallisuusmekanismit ja säännöt. Toisin sanoen: tehdä tietokannasta turvallinen ja luotettava. Muistutus: Tietokanta

Lisätiedot

SQL:N PERUSTEET MARKKU SUNI

SQL:N PERUSTEET MARKKU SUNI SQL:N PERUSTEET MARKKU SUNI Relaatiomallisen tietokannan käsittely Tietojen saanti, talletus ja päivitys tapahtuu SQL-kielellä Yhtä operaatiota sanotaan kyselyksi (query) Kyselyjä voidaan laittaa peräkkäin

Lisätiedot

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (11) Access 1 ACCESS...2 Yleistä...2 Access-tietokanta...3 Perusobjektit...3 Taulu...5 Kysely...7 Lomake...9 Raportti...10 Makro...11 Moduli...11 HELIA 2 (11) ACCESS Yleistä Relaatiotietokantatyyppinen

Lisätiedot

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Esimerkki: Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Luo tietokanta Koulu. Tietokantaan lisätään 3 taulua. Kurssit-taulu: kurssiid not null primary key INTEGER aineid not

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 27.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 27.1.2010 1 / 37 If-käsky toistokäskyn sisällä def main(): HELLERAJA = 25.0 print "Anna lampotiloja, lopeta -300:lla."

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 16.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet

Lisätiedot

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan Aram Abdulla Hassan Windows Server 2012 asentaminen ja käyttö 1 Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan Hyper-V ohjelma. Riipu minkälaista Serveria yritämme

Lisätiedot

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä.

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. PHP-kielen perusteet Käytä lähteenä PHP:n virallista manuaalia http://www.php.net/docs.php tai http://www.hudzilla.org/php (siirry Paul Hudsonin verkkokirjaan). Lisää materiaalia suomeksi esimerkiksi ohjelmointiputkan

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Sisällysluettelo 1 Johdanto Root, koko Opalan pääkäyttäjä

Sisällysluettelo 1 Johdanto Root, koko Opalan pääkäyttäjä OPALA Käyttöohje Sisällysluettelo 1 Johdanto 4 2 Root, koko Opalan pääkäyttäjä...5 2.1 Sisäänkirjautuminen.5 2.2 Käyttäjätunnukset 6 2.2.1 Pääkäyttäjätunnukset.6 2.2.1.1 Luo. 7 2.2.1.2 Muokka/poista 8

Lisätiedot

Tietokannan luominen:

Tietokannan luominen: Moodle 2 Tietokanta: Tietokanta on työkalu, jolla opettaja ja opiskelijat voivat julkaista tiedostoja, tekstejä, kuvia, linkkejä alueella. Opettaja määrittelee lomakkeen muotoon kentät, joiden kautta opiskelijat,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon

Lisätiedot

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely Harjoitustehtävä 1 Puutarha Puutarhatunnus omistaja sijainti Vastuualue puutarhatunnus aluenumero maaperä, kosteus valaistus sijainti vastuutonttu Tonttu Tonttutunnus Istutus istutuspäivä paikka_alueella

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2015 1 / 25 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -

Lisätiedot

Power BI 29.5.2015. Tech Conference 28.-29.5.2015. Power BI. Pekka.Korhonen@sovelto.fi. #TechConfFI. Johdanto

Power BI 29.5.2015. Tech Conference 28.-29.5.2015. Power BI. Pekka.Korhonen@sovelto.fi. #TechConfFI. Johdanto Tech Conference 28.-29.5.2015 Power BI Pekka.Korhonen@sovelto.fi #TechConfFI Johdanto 2 1 Microsoft BI komponentit Azure Machine Learning Stream Analytics HDInsight DocumentDB Blob/table storage VM SQL

Lisätiedot

Mikäli olet saanut e-kirjan latauslinkin sähköpostilla, seuraa näitä ohjeita e-kirjan lataamisessa.

Mikäli olet saanut e-kirjan latauslinkin sähköpostilla, seuraa näitä ohjeita e-kirjan lataamisessa. E-kirjan latausohje Mikäli olet saanut e-kirjan latauslinkin sähköpostilla, seuraa näitä ohjeita e-kirjan lataamisessa. Pikaohjeet 1. Varmista että tietokoneellesi on asennettu Adobe Digital Editions ohjelma.

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI Tarkastellaan Tietokannan fyysistä suunnittelua Menetelmän vaihetta 4 Looginen suunoitelma muutetaan toimiviksi tauluiksi Id enimi snimi muuta 1 Aki Joki xxx

Lisätiedot

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia Javascript 2: Ohjelmointikielen ominaisuudet Jaana Holvikivi Metropolia HTML - sivun rakenne ja osiot HTML HEAD STYLE SCRIPT STYLEsheet Javascript file BODY Javascript

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

Sähköpostitilin käyttöönotto

Sähköpostitilin käyttöönotto Sähköpostitilin käyttöönotto Versio 1.0 Jarno Parkkinen jarno@atflow.fi Sivu 1 / 16 1 Johdanto... 2 2 Thunderbird ohjelman lataus ja asennus... 3 3 Sähköpostitilin lisääminen ja käyttöönotto... 4 3.2 Tietojen

Lisätiedot

Send-It ilmoittautumisjärjestelmä (judotapahtumat Suomessa)

Send-It ilmoittautumisjärjestelmä (judotapahtumat Suomessa) Ilmoittautumis järjestelmän otsikko alue Jokaisella tapahtumalla on otsikko-osa joka on samanlainen joka puolella sovellusta. Tämä Judokilpailuissa käytetty otsikko-osa koostuu viidestä linkistä, joita

Lisätiedot

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

Lisätiedot

Access-kyselyt. Luetteloinnin kehittämispäivä 13.12.2012 Mia Kujala

Access-kyselyt. Luetteloinnin kehittämispäivä 13.12.2012 Mia Kujala Access-kyselyt Luetteloinnin kehittämispäivä 13.12.2012 Mia Kujala Ennen kuin aloitat MS Access on asennettu Oracle ODBC-ajuri on asennettu C:\Voyager\Access Reports\Reports.mdb > Voyager-taulut on linkitetty

Lisätiedot

SSH Secure Shell & SSH File Transfer

SSH Secure Shell & SSH File Transfer SSH Secure Shell & SSH File Transfer TIETOHALLINTO Janne Suvanto 1.9 2002 Sisällysluettelo Sisällysluettelo... 1 Yleistä... 2 SSH Secure Shell ohjelman asetukset... 3 POP3 tunnelin asetukset... 6 Yhteyden

Lisätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

EXEC SQL BEGIN DECLARE SECTION

EXEC SQL BEGIN DECLARE SECTION Tietokantaohjelmointi Tietokantaa käytetään harvoin suoraan kyselyliittymän kautta Tyypillisesti käyttö tapahtuu sovellusohjelman kautta Sovellusohjelmaa laadittaessa vaihtoehtoja tietokantakäsitettelyn

Lisätiedot

JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari

JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti

Lisätiedot

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Pikaohje formaatin valmistamiseen

Pikaohje formaatin valmistamiseen Pikaohje formaatin valmistamiseen Esko Otava Oy ver.1.0 Pääikkunasta (tulostusikkunasta) valitaan Cards-Show cards manager Paina Add 2 Paina New Kortinsuunnitteluikkuna on jaettu kolmeen osaan: Vasemmalla

Lisätiedot