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.

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

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

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

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA Sisällysluettelo Luku 1 - Oman LABRA-sivutilan asennus ja käyttöönotto... 2 1.1 - LABRA-osoitteesi... 2 1.2 LABRA-tilan käyttö (verkko-asemana

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

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

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

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

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

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

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

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

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

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

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

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

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään

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 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

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

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat Sisällys 12. Javan toistorakenteet Ylstä toistorakentsta. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirhtä. Silmukan rajat asetettu kierroksen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta

Lisätiedot

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014 Tietokanta Tietokanta on työkalu, jolla opettaja ja opiskelijat voivat julkaista tiedostoja, tekstejä, kuvia ja linkkejä alueella. Opettaja määrittelee lomakkeen muotoon kentät, joiden kautta opiskelijat

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

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan soveltamista List-luokan metodeja Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan metodeja List-luokan

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

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...

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

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

Lisätiedot

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

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

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointiharjoituksia Arduino-ympäristössä Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet

Lisätiedot

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX SQL - perusteet SQL - yleistä Esa Salmikangas InMics SE Oy versio 16.6.2003 SQL - perusteet 1 SQL - perusteet 2 SQL Structured Query Language SQL on tietokantojen käsittelyyn kehitetty kieli yleisimmät

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

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ältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

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

Käyttöpaneelin käyttäminen

Käyttöpaneelin käyttäminen Tässä jaksossa on tietoja käyttöpaneelin käytöstä, tulostimen asetusten muuttamisesta ja käyttöpaneelin valikoiden sisällöstä. 1 Useimpia tulostimen asetuksia voi muuttaa sovellusohjelmasta tai tulostinajurista.

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

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

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT Agenda Regular Expression - funktiot Case-insensitive Sort Case-insensitive Seach Merge muutokset Tree-walking in 10g DML Returning Values

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

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

Harjoitus 1 -- Ratkaisut

Harjoitus 1 -- Ratkaisut Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin

Lisätiedot

Pysäytettyjen töiden tulostus ja poisto Kun tulostuksessa ilmenee asetteluvirheitä Verify print -työt Reserve print -työt

Pysäytettyjen töiden tulostus ja poisto Kun tulostuksessa ilmenee asetteluvirheitä Verify print -työt Reserve print -työt Kun työ lähetetään tulostimeen, tulostinajurissa voidaan määrittää, että työ säilytetään muistissa. Kun tämä pidätetty työ halutaan tulostaa, se määritetään tulostettavaksi tulostimen käyttöpaneelin valikoissa.

Lisätiedot

Opiskelijoiden HOPSit

Opiskelijoiden HOPSit Opiskelijoiden HOPSit Ohje kommentoijalle ja hyväksyjälle/19.3.2014 Täydennetty ohjetta/2.1.2014: Lisätty tietoa opiskelijoiden lisäämisestä Omiin opiskelijoihin, mikä helpottaa HOPSien käsittelyä. Tarvittavat

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 28.1.2009 1 / 28 Esimerkki: murtoluvun sieventäminen Kirjoitetaan ohjelma, joka sieventää käyttäjän antaman murtoluvun.

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

Lisätiedot

Käyttöpaneelin käyttäminen

Käyttöpaneelin käyttäminen Tässä luvussa on tietoja käyttöpaneelista, tulostinasetusten muuttamisesta ja käyttöpaneelin valikoista. Useimmat tulostinasetukset voidaan muuttaa sovellusohjelmalla tai tulostinajurilla. Sovellusohjelmalla

Lisätiedot

Ohjeisto Trimble Pro 6H yhdistämisestä Juno 5:een

Ohjeisto Trimble Pro 6H yhdistämisestä Juno 5:een Liite 4 1(19) KEMIN ENERGIA Ohjeisto Trimble Pro 6H yhdistämisestä Juno 5:een Janne Pirttimaa 12.2.2013 Liite 4 2(19) SISÄLLYSLUETTELO 1 Yhdistäminen bluetoothilla... 3 2. Ongelmatilanteet ja ratkaisut...

Lisätiedot

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.

Lisätiedot

Asko Ikävalko, k0201291 22.2.2004 TP02S-D. Ohjelmointi (C-kieli) Projektityö. Työn valvoja: Olli Hämäläinen

Asko Ikävalko, k0201291 22.2.2004 TP02S-D. Ohjelmointi (C-kieli) Projektityö. Työn valvoja: Olli Hämäläinen Asko Ikävalko, k0201291 22.2.2004 TP02S-D Ohjelmointi (C-kieli) Projektityö Työn valvoja: Olli Hämäläinen Asko Ikävalko LOPPURAPORTTI 1(11) Ratkaisun kuvaus Käytetyt tiedostot Tietuerakenteet Onnistuin

Lisätiedot

MY STANDARD -OHJE. mystandard.hansaworld.com. Standard ERP Pilvipalvelu Sivu 1/6

MY STANDARD -OHJE. mystandard.hansaworld.com. Standard ERP Pilvipalvelu Sivu 1/6 MY STANDARD -OHJE mystandard.hansaworld.com Standard ERP Pilvipalvelu Sivu 1/6 KÄYTTÖÖNOTTO Mikäli Standard ERP -ohjelmistonne on HansaWorldin pilvipalvelimella (hostingissa), teidän on mahdollista hallinnoida

Lisätiedot

Tietokantojen hallinta

Tietokantojen hallinta Tietokantojen hallinta 1. Yleistä Ensimmäinen vaihe ennen Odoo käytön aloittamista, on varmuuskopioiden tekeminen. Se kannattaa tehdä riittävän usein. Kun Odoo toimii omalla koneella, on tietokantojen

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 26.10.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 26.10.2015 1 / 28 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta

Lisätiedot

PHP tehtävä 3 Atte Pekarinen TIKT13A 4.12.2014

PHP tehtävä 3 Atte Pekarinen TIKT13A 4.12.2014 PHP-kielen perusteet 3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. Heredoc on ominaisuus PHP-koodaamisessa, jolla voidaan kirjoittaa pitkiä tekstejä

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

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Artikkelin lisääminen

Artikkelin lisääminen Sisällys Artikkelin lisääminen...3 Artikkelin muokkaaminen...5 Kuvan lisääminen artikkeliin...6 Väliotsikoiden lisääminen artikkeliin...9 Navigointilinkin lisääminen valikkoon...10 Käyttäjätietojen muuttaminen...13

Lisätiedot

VALIKON LISÄÄMINEN Moduulin lisääminen Valikon nimikkeen lisääminen Moduulien järjestyksen muuttaminen

VALIKON LISÄÄMINEN Moduulin lisääminen Valikon nimikkeen lisääminen Moduulien järjestyksen muuttaminen ETAPPI ry JOOMLA 2.5 VALIKON LISÄÄMINEN Moduulin lisääminen Valikon nimikkeen lisääminen Moduulien järjestyksen muuttaminen ETAPPI ry JOOMLA 2.5 Sivu 1(13) Sisällysluettelo 1. Uuden valikon lisääminen...

Lisätiedot

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki HELIA TIKO-05 1 (17) SQL / DML 4 Alikyselyt...2 Joukko-operaatiot...7 Yhdiste, unioni...8 Leikkaus...9 Erotus... 10 Tietokannan datan muokkaus... 11 Lisäys... 11 Yhden rivin lisääminen... 12 Useamman rivin

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

Www-tallennuksen käyttöohje

Www-tallennuksen käyttöohje OPETUSHALLITUS Laskentapalvelut puh: (09) 7747 7090 E-mail: laskentapalvelut@oph.fi Www-tallennuksen käyttöohje Sisällys Käyttäjätunnukset Koulutuksen järjestäjä (saajatunnus) Laitokset/koulutusmuodot

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")

Lisätiedot

SELECT-lauseen perusmuoto

SELECT-lauseen perusmuoto SQL: Tiedonhaku SELECT-lauseen perusmuoto SELECT FROM WHERE ; määrittää ne sarakkeet, joiden halutaan näkyvän kyselyn vastauksessa sisältää

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

2 Konekieli, aliohjelmat, keskeytykset

2 Konekieli, aliohjelmat, keskeytykset ITK145 Käyttöjärjestelmät, kesä 2005 Tenttitärppejä Tässä on lueteltu suurin piirtein kaikki vuosina 2003-2005 kurssin tenteissä kysytyt kysymykset, ja mukana on myös muutama uusi. Jokaisessa kysymyksessä

Lisätiedot

Uuden palvelun lisääminen liityntäpalvelimelle esuomi.fi

Uuden palvelun lisääminen liityntäpalvelimelle esuomi.fi Uuden palvelun lisääminen liityntäpalvelimelle esuomi.fi esuomi.fi/palveluntarjoajille/palveluvayla/tekninen-aineisto/konfigurointiohjeita/uuden-palvelun-lisaaminen-liityntapalvelimelle/ Suomi.fi-palveluväylä

Lisätiedot

OPAS KULTA2 -JÄRJESTELMÄN KÄYTTÖÖN

OPAS KULTA2 -JÄRJESTELMÄN KÄYTTÖÖN OPAS KULTA2 -JÄRJESTELMÄN KÄYTTÖÖN 1. Kulta2 -järjestelmän käyttäminen ensimmäistä kertaa s. 1-3 2. Järjestelmään kirjautuminen olemassa olevalla käyttäjätunnuksella ja salasanalla s. 4-5 3. Hakemuksen

Lisätiedot

Java ja tietokannan käsittely (JDBC)

Java ja tietokannan käsittely (JDBC) Java ja tietokannan käsittely (JDBC) Javan tietokannan käsittely luokat (java.sql.*) Yhteys tietokantaan Tietokannan yhteyden sulkeminen Tiedon haku tietokannasta Tiedon päivitys tietokantaan Transaktio

Lisätiedot

KULTA2-JÄRJESTELMÄN KÄYTTÖOPAS Liikunta-, kulttuuri-, nuoriso-, hyvinvointiavustukset

KULTA2-JÄRJESTELMÄN KÄYTTÖOPAS Liikunta-, kulttuuri-, nuoriso-, hyvinvointiavustukset KULTA2-JÄRJESTELMÄN KÄYTTÖOPAS Liikunta-, kulttuuri-, nuoriso-, hyvinvointiavustukset Sisällysluettelo: 1. Sisällysluettelo s. 1 2. Kulta2-järjestelmän käyttäminen ensimmäistä kertaa s. 2-3 3. Kirjautuminen

Lisätiedot

ESRC:n uusiutumassa olevat kotisivut on toteutettu WordPress-ohjelmalla (WP). Samaa ohjelmaa käyttävät menestyksellä ainakin SSql, HSRC ja JSK.

ESRC:n uusiutumassa olevat kotisivut on toteutettu WordPress-ohjelmalla (WP). Samaa ohjelmaa käyttävät menestyksellä ainakin SSql, HSRC ja JSK. PIKAOHJEET VIESTIEN KÄYTTÖÖN ESRC:N KOTISIVUILLA Versio 3, 27.12.2006 ESRC:n uusiutumassa olevat kotisivut on toteutettu WordPress-ohjelmalla (WP). Samaa ohjelmaa käyttävät menestyksellä ainakin SSql,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 23.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 23.2.2009 1 / 44 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta

Lisätiedot

Ohjeet asiakirjan lisäämiseen arkistoon

Ohjeet asiakirjan lisäämiseen arkistoon Ohjeet asiakirjan lisäämiseen arkistoon 1. Jos koneellesi ei vielä ole asennettu Open Office ohjelmaa, voit ladata sen linkistä joka löytyy Arkisto => Asiakirjapohjat sivulta seuran kotisivuilta. Jos ohjelma

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka

Lisätiedot

RATKI 1.0 Käyttäjän ohje

RATKI 1.0 Käyttäjän ohje RATKI RATKI 1.0 Käyttäjän ohje Ohje 0.5 Luottamuksellinen Vastuuhenkilö Petri Ahola Sisällysluettelo 1. Yleistä... 3 1.1. Kuvaus... 3 1.2. Esitiedot... 3 1.3. RATKIn käyttöoikeuksien hankinta... 3 1.4.

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

58131 Tietorakenteet ja algoritmit (syksy 2015)

58131 Tietorakenteet ja algoritmit (syksy 2015) 58131 Tietorakenteet ja algoritmit (syksy 2015) Harjoitus 2 (14. 18.9.2015) Huom. Sinun on tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. 1. Erään algoritmin suoritus vie 1 ms, kun syötteen

Lisätiedot

Ohje kehitysympäristöstä. Dokumentti: Ohje kehitysympäristöstä.doc Päiväys: 15.03.2005 Projekti : AgileElephant

Ohje kehitysympäristöstä. Dokumentti: Ohje kehitysympäristöstä.doc Päiväys: 15.03.2005 Projekti : AgileElephant AgilElephant Tekijä: Petri Kalsi Omistaja: ElectricSeven Dokumentti:.doc Päiväys: 15.03.2005 Aihe: Sivu 1 of 6 Dokumenttihistoria Muutoshistoria Revision Revision Yhteenveto muutoksista Revision tekijä

Lisätiedot

Kangasniemen yrityshakemisto KÄYTTÖOHJE YRITTÄJÄLLE. KANGASNIEMEN KUNTA yrityshakemisto.kangasniemi.fi

Kangasniemen yrityshakemisto KÄYTTÖOHJE YRITTÄJÄLLE. KANGASNIEMEN KUNTA yrityshakemisto.kangasniemi.fi 2015 Kangasniemen yrityshakemisto KÄYTTÖOHJE YRITTÄJÄLLE KANGASNIEMEN KUNTA yrityshakemisto.kangasniemi.fi 1 Sisällysluettelo 1. Sivustolle rekisteröityminen... 2 2. Yrityksen lisääminen... 3 2.1. Yritystiedot...

Lisätiedot

ECDL Tietokannat. Copyright 2015 ECDL Foundation ECDL Tietokannat Sivu 1 / 7

ECDL Tietokannat. Copyright 2015 ECDL Foundation ECDL Tietokannat Sivu 1 / 7 ECDL Tietokannat Copyright 2015 ECDL Foundation ECDL Tietokannat Sivu 1 / 7 Tavoite Tässä esitellään tutkintovaatimukset moduulille ECDL Tietokannat, joka määrittelee tarvittavat tiedot ja taidot näyttökokeen

Lisätiedot

Visma Nova. Visma Nova ASP käyttö ja ohjeet

Visma Nova. Visma Nova ASP käyttö ja ohjeet Visma Nova Visma Nova ASP käyttö ja ohjeet Oppaan päiväys: 2.2.2012. Helpdesk: http://www.visma.fi/asiakassivut/helpdesk/ Visma Software Oy pidättää itsellään oikeuden mahdollisiin parannuksiin ja/tai

Lisätiedot

Osa. Toimintojen toteuttaminen ohjelmissa vaatii usein haarautumisia ja silmukoita. Tässä luvussa tutustummekin seuraaviin asioihin:

Osa. Toimintojen toteuttaminen ohjelmissa vaatii usein haarautumisia ja silmukoita. Tässä luvussa tutustummekin seuraaviin asioihin: Osa II 8. oppitunti Kehittynyt ohjel- man kulku Toimintojen toteuttaminen ohjelmissa vaatii usein haarautumisia ja silmukoita. Tässä luvussa tutustummekin seuraaviin asioihin: Mitä silmukat ovat ja kuinka

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

Osallistavan suunnittelun kyselytyökalu

Osallistavan suunnittelun kyselytyökalu Osallistavan suunnittelun kyselytyökalu Käyttöohje ARFM- hankkeessa jatkokehitetylle SoftGIS-työkalulle Dokumentti sisältää ohjeistuksen osallistavan suunnittelun työkalun käyttöön. Työkalu on käytettävissä

Lisätiedot