OPPITUNTI 12 MySQL-tietokannan käyttö
|
|
- Sakari Sipilä
- 8 vuotta sitten
- Katselukertoja:
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', 'sharp@adomain.com' )"; 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 (!@mysql_select_db( $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ä:
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ätiedotTuotteiden 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ätiedotLINUX-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ätiedotOPPITUNTI 11 DBM-funktioiden käyttö
11. DBM-funktioiden käyttö 193 OPPITUNTI 11 DBM-funktioiden käyttö Jos sinulla ei ole pääsyä SQL-tietokantaan, esimerkiksi MySQL- tai Oracle-tietokantaan, sinulla on varmaankin mahdollisuus käyttää DBM-tyylistä
LisätiedotOPPITUNTI 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ätiedotOPPITUNTI 5 Ohjelman kulku
5. Ohjelman kulku 67 OPPITUNTI 5 Ohjelman kulku Viime tunnilla luomamme skriptit olivat suoraviivaisia. Ohjelmalauseet suoritettiin aina samassa järjestyksessä, joten ohjelmissamme ei ollut lainkaan joustavuutta.
LisätiedotSELVITYSRAPORTTI 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ätiedotOhjelmoinnin 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ätiedotProseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008
Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT Jouni Huotari S2008 2 Proseduurit Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)
LisätiedotPROSEDUURIT, 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ätiedotOPPITUNTI 3 Ensimmäinen skripti
3. Ensimmäinen skripti 35 OPPITUNTI 3 Ensimmäinen skripti Kun olet asentanut PHP:n ja asettanut sen kokoonpanon, on aika laittaa ohjelmisto testaukseen. Tällä tunnilla luot ensimmäisen skriptisi ja tutkit
LisätiedotTIETOKANTOJEN 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ätiedotJohdanto 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ätiedotWritten 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ätiedotSQL-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ätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
LisätiedotOPPITUNTI 24 Esimerkki (Osa 2)
24. Esimerkki (Osa 2) 429 OPPITUNTI 24 Esimerkki (Osa 2) Luvussa 23, "Esimerkki (Osa 1)" rakensimme ympäristön, joka sallii käyttäjien kirjoittautua palveluun ja lisätä kerho- ja tapahtumatiedot järjestelmään.
Lisätiedot6. Funktiot 85. Kuinka funktioita määritellään ja kutsutaan. Kuinka funktioille viedään arvoja ja niistä palautetaan arvoja
6. Funktiot 85 OPPITUNTI 6 Funktiot Funktiot ovat hyvin laaditun skriptin perusta. Ne tekevät koodista helppolukuista ja uudelleen käytettävää. Laajoja projekteja on mahdotonta hallita ilman funktioiden
LisätiedotTIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun
LisätiedotOhjelmoinnin 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ätiedotSQL 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ätiedotSisä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ätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotJavaScript 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ätiedotTiedonhallinnan 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ätiedotC-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ätiedotOPPITUNTI15 Päivämäärien käsittely
15. Päivämäärien käsittely 269 OPPITUNTI15 Päivämäärien käsittely Päivämäärät kuuluvat niin usein jokapäiväiseen elämään, että niiden käsittely on rutiininomaista. Kalenterin käsittely ei aina ole kuitenkaan
LisätiedotSQL - STRUCTURED QUERY LANGUAGE
SQL Peruskomentoja SQL - STRUCTURED QUERY LANGUAGE SQL on tietokantojen käsittelyyn kehitetty kieli Esimerkkejä kielellä hoidettavistaa toiminnoista: Tietokannan rakenteen määrittely ja muuttaminen Kyselyt
LisätiedotAlkuarvot 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ätiedotTiedonhallinnan 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ätiedotOpettajana 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ätiedotOhjelmoinnin 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ätiedotTIETOKANNAT: 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ätiedotOhjelmoinnin 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ätiedotKirjasto 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ätiedotZeon 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ätiedotMUITA 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ätiedotInsert 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ätiedot11. 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ätiedot7. Taulukot 105. Kuinka taulukoiden tietoa käsitellään ja lajitellaan
7. Taulukot 105 OPPITUNTI 7 Taulukot Taulukot ja niiden käsittelyyn liittyvät toiminnot laajentavat suuresti PHP4-skriptien käyttöaluetta ja joustavuutta. Kun tunnet taulukot, voit tallentaa niihin monimutkaisia
LisätiedotHELIA 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ätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja
LisätiedotWWW-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ätiedotMakrojen mystinen maailma lyhyt oppimäärä
Makrojen mystinen maailma lyhyt oppimäärä Makrot osana SAS-teknologiaa Yleiskuva Jouni Javanainen Aureolis lyhyesti Aureolis on jatkuvia Business Intelligence -palveluita tuottava asiantuntijaorganisaatio
LisätiedotLuento 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ätiedotTä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ätiedotMuita 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ätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan
LisätiedotAsiointipalvelun 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ätiedotHarjoitus 3 (viikko 39)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien
LisätiedotOsa. 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ätiedotOhjelmoinnin 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ätiedot11. 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ätiedotFakta 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ätiedot12. 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ätiedotCSE-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ätiedotOPPITUNTI 20 Tilan tallentaminen istuntofunktioilla
20. Tilan tallentaminen istuntofunktiolla 353 OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla Edellisellä tunnilla tutkimme tilan tallentamista evästeiden ja kyselymerkkijonojen avulla. PHP4 on kuitenkin
LisätiedotTaulukot. 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ätiedot815338A 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ätiedotHSMT 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ätiedotTietokannat. 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ätiedotOhjelmoinnin 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ätiedotTietotyypit 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ätiedotKirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.
Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita
LisätiedotIDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit
IDL - proseduurit 25. huhtikuuta 2017 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ätiedotOhjelmistojen 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ätiedotATK 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ätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2018-2019 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ätiedotOhjelmoinnin 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ätiedotExcel-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ätiedotYllä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ätiedot12. 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ätiedotKoottu 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ätiedotICT1TN004. 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ätiedotOhjelmoinnin 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ätiedotOhjelmoinnin 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ätiedotOpenOffice.org Base 3.1.0
OpenOffice.org Base 3.1.0 Sisällysluettelo 1 Tietokannan luominen...1 2 Taulukon eli taulun luominen...3 3 Kysely...9 4 Raportti...14 1 Tietokannan luominen Tietokanta on kokoelma tietoja, joilla on yhteys
Lisätiedot815338A 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ätiedotTietokannat. 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ätiedotOhjelmoinnin 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ätiedot3.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ätiedotToimittajaportaalin 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ätiedotTietuetyypin 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ätiedotJavaScript 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ätiedot8. Oliot 123. Kuinka luokkia luodaan ja olioita saadaan aikaan. Kuinka luodaan ja käsitellään ominaisuuksia ja metodeja
8. Oliot 123 OPPITUNTI 8 Oliot Oliopohjainen ohjelmointi on vaarallista. Se muuttaa koodaamista koskevia ajatuksiasi ja kun uudet käsitteet ovat saaneet jalansijaa, ne eivät katoa mitenkään. PHP on Perlin
LisätiedotWebpalvelin muistitikulle - Ohje
- Ohje Jari Sarja jari.sarja @ 2017 Creative Commons Nimeä-JaaSamoin 4.0 Kansainvälinen SISÄLLYSLUETTELO 1 Johdanto... 3 1.1 Miksi asennus muistitikulle?... 3 2 Webpalvelimen asennus... 4 3 Käyttöliittymä...
Lisätiedot14. Hyvä ohjelmointitapa 14.1
14. Hyvä ohjelmointitapa 14.1 Yleistä Ohjelman elinkaari ei tyypillisesti pääty sen toteuttamiseen; ohjelmaa voidaan käyttää ja ylläpitää jopa vuosikymmeniä. Jotta koodin muuttaminen on mahdollista, sen
LisätiedotKä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ätiedotToimittajaportaalin pikaohje
1 Toimittajaportaalin pikaohje Toimittajaportaalin rekisteröityminen Toimittajaportaalin sisäänkirjautuminen Laskun luonti Liitteen lisääminen laskulle Asiakkaiden hallinta Uuden asiakkaan lisääminen Laskujen
Lisätiedot811120P 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ätiedot5.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ätiedotOhjelmoinnin 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ätiedotOhjelmoinnin 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ätiedotToteutusdokumentti. 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ätiedotTietojen 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ätiedotSQL. ! 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ätiedotOhjelmoinnin 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ätiedotSisä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ätiedotOsoitin 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ätiedotMerkkijono 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