12. Leia lugejad, kelle eesnimi ja perenimi algavad M tähega. SELECT Perenimi, Eesnimi FROM LUGEJA WHERE Perenimi LIKE 'M%' AND Eesnimi LIKE 'M%'; 13. Leia lugejad, kes elavad Riia tänaval. SELECT Eesnimi, Perenimi, Aadress FROM LUGEJA WHERE Aadress LIKE '%Riia%'; 14. Leia lugejad, kelle ametiks on õpilane. SELECT Amet FROM LUGEJA WHERE Amet='õpilane'; Ülesanne 5. Tekstifunktsioonide kasutamine MySqlis 1. Väljasta lugejate ees- ja perenimi ühes veerus. Kasuta aliast Nimi. SELECT concat(eesnimi,' ',perenimi) as Nimi FROM LUGEJA; 2. Väljasta lugejate perenimi ja perenimede esitäht. Kasuta aliast p_esitaht. SELECT Perenimi,LEFT(Perenimi,1) as p_esitaht FROM LUGEJA; 3. Väljasta lugejate eesnimi ja eesnime viimane täht. Kasuta aliast e_viimane_t.. SELECT Eesnimi,RIGHT(Eesnimi,1) AS e_viimane_t FROM LUGEJA; 4. Väljasta lugejate eesnimed suurtähtedena.
1. Kasutades MySql’i loo andmebaasi andmetabel LAPS, milles on järgmised andmeväljad: LapsID – positiivne täisarv primaarvõtme väli ja automaatselt suurenev ning ei tohi olla null, Nimi sõne, pikkus 40 ja väärtus ei tohi olla null, Pikkus positiivne täisarv, väärtus ei tohi olla null, Synniaasta aasta, SynniLinn positiivne täisarv. CREATE TABLE `LAPS` ( `LapsID` int NOT NULL AUTO_INCREMENT, `Nimi` varchar( 40) NOT NULL, `Pikkus` int( 255) NOT NULL, `Sünniaasta` YEAR, `Synnilinn` INT( 2), PRIMARY KEY ( `LapsID`) ); MariaDB [mittristoiktkhk_uusDatabase]> CREATE TABLE `LAPS` ( -> `LapsID` int NOT NULL AUTO_INCREMENT, -> `Nimi` varchar( 40) NOT NULL, -> `Pikkus` int( 255) NOT NULL, -> `Sünniaasta` YEAR, -> `Synnilinn` INT( 2), -> PRIMARY KEY ( `LapsID`) -> ); Query OK, 0 rows affected ( 0.004 sec) 2. Lisa tabelisse järgnevalt toodud andmed Nimi, Pikkus, Synniaasta, SynniLinn Juku, 179, 2000, 1 Kati, 1
1. Kasutades MySql’i loo andmebaasi andmetabel LAPS, milles on järgmised andmeväljad: LapsID – positiivne täisarv primaarvõtme väli ja automaatselt suurenev ning ei tohi olla null, Nimi sõne, pikkus 40 ja väärtus ei tohi olla null, Pikkus positiivne täisarv, väärtus ei tohi olla null, Synniaasta aasta, SynniLinn positiivne täisarv. CREATE TABLE `LAPS` ( `LapsID` int NOT NULL AUTO_INCREMENT, `Nimi` varchar( 40) NOT NULL, `Pikkus` int( 255) NOT NULL, `Sünniaasta` YEAR, `Synnilinn` INT( 2), PRIMARY KEY ( `LapsID`) ); MariaDB [mittristoiktkhk_uusDatabase]> CREATE TABLE `LAPS` ( -> `LapsID` int NOT NULL AUTO_INCREMENT, -> `Nimi` varchar( 40) NOT NULL, -> `Pikkus` int( 255) NOT NULL, -> `Sünniaasta` YEAR, -> `Synnilinn` INT( 2), -> PRIMARY KEY ( `LapsID`) -> ); Query OK, 0 rows affected ( 0.004 sec) 2. Lisa tabelisse järgnevalt toodud andmed Nimi, Pikkus, Synniaasta, SynniLinn Juku, 179, 2000, 1 Kati, 1
Kui aga peetava kursuse eesmärgiks on anda ka andmebaaside projekteerimise põhialused (nagu kõrgkoolides kombeks), siis on vaja lisaks tutvuda veel andmemudelite, normaalkujude jm. andmebaasiteooria alla kuuluvate teemadega. Iga osa lõpus on ülesanded. Neid on püütud sättida nõnda, et keskmisel õppuril oleks paras jutt läbi lugeda, läbi mõelda, mõni näide ka järele proovida. Ning siis ülesanded ette võtta ja nende abil kogu lugu otsast peale uuesti läbi teha. Kui aga mõni ülesanne tundub juba tõsiselt tuttav ja liialt lihtne, eks selle või siis vahele jätta. Või kiiresti läbi proovida, et kas ikka on nii lihtne kui pealtnäha tundub. Samuti, kui pärast ülesannete läbitegemist kipub vastav peatükk ikka segaseks jääma, tuleb kindlasti kasuks, kui enesele või oma õpilastele mõned teemakohased toimetused juurde mõelda ning sealtkaudu kogu lugu veel korra läbi katsetada. Kordamine on tarkuse ema.
Database changed 3 mysql> show tables; 4 +---------------------------+ 5 | Tables_in_php_edasijounud | 6 +---------------------------+ | kliendid | 7 | veebilehe_kasutajad | 8 +---------------------------+ 9 2 rows in set (0.04 sec) 10 Konsoolist väljumiseks kirjuta EXIT; Andmebaasi graafiline kasutajaliides Nendele, kel meeldib rohkem kõike visuaalselt näha, on mõeldud graafilised kasutajaliidesed: phpMyAdmin Navicat Webyog jt. (http://www.webdesigneronline.co.uk/10-great-alternatives-to- phpmyadmin) Kuna WAMP serveriga tuleb phpMyAdmin kenasti kaasa, siis seda me kasutamegi. Programmi käivitamiseks lisa aadress http://localhost/phpmyadmin. Kuna parooli endiselt ei eksisteeri, siis seda ka ei küsita. Vasakul tabelis näeme kenasti olemasolevaid andmebaase, millele klikkides kuvatakse vastavas andmebaasis olevad tabelid. 02 - PHP ja MySQL - Andmebaasi kasutaja
jutumärke ja äärmisel vajadusel kasuta samaaegselt teisi. Erinevus on muutuja
väärtuste väljastamisel. Nimelt eespool nägime, et ühekordsete jutumärkide puhul
pidime muutujad ja teksti siduma omavahel punktiga. Topeltjutumärkide puhul
võite aga kirjutada muutujad otse muutuja sisse.
?
1 //kahekordsed jutumärgid
2 echo "$nimi on $vanus aastane
";
3
4 //ühekordsed jutumärgid
echo $nimi.' on '.$vanus.' aastane
';
5
Testides on topeltjutumärkide kasutamine ka natukene kiirem
(www.phpbench.com). Topeltjutumärkidega saame muutujat jätkata muu teksiga -
näiteks käänata. Ning selleks tuleb kasutada loogelisi sulge muutuja nimes.
?
1 //muutuja käänamine
2 echo "${enimi}il on kiire auto!
";
Aga mis saab siis kui on vaja tekstis kuvada jutumärke ja/või ülekoma? Sel juhul
kasuta väljaspool teisi märke. Näiteks soovid tekstis kuvada kahekordseid
jutumärke, siis väljapoole lisa ühekordsed ja vastupidi.
?
Nagu järgnevas näites: massiivid m2 ja m näitavad samadele andmetele. Kui ühe muutuja kaudu andmeid muuta, siis muutuvad ka teise muutuja kaudu nähtavad andmed nagu väljatrüki juures paistab. Algselt on massiivi m ja m2 elemendid 40, 48, 33. Pärast massiivi m elemendi number 1 muutmist 32ks, on ka massiivi m2 elemendid muutunud - väärtusteks 40, 32, 33. Nõnda on suurte andmemassiivide juures teise muutuja tegemine andmete juurde pääsemiseks arvuti jaoks kerge ülesanne. Samas aga peab vaatama, et vajalikke andmeid kogemata ettevaatamatult ei muudaks. int[] m=new int[3]{40, 48, 33}; int[] m2=m; //Viide samale massiivile Tryki(m2); m[1]=32; Tryki(m2); Kui soovida, et kaks algsetest andmetest pärit massiivi on üksteisest sõltumatud, siis tuleb teha algsest massiivist koopia (kloon). int[] m3=(int[])m.Clone(); //Andmete koopia m[1]=20; Tryki(m3);
Nagu järgnevas näites: massiivid m2 ja m näitavad samadele andmetele. Kui ühe muutuja kaudu andmeid muuta, siis muutuvad ka teise muutuja kaudu nähtavad andmed nagu väljatrüki juures paistab. Algselt on massiivi m ja m2 elemendid 40, 48, 33. Pärast massiivi m elemendi number 1 muutmist 32ks, on ka massiivi m2 elemendid muutunud - väärtusteks 40, 32, 33. Nõnda on suurte andmemassiivide juures teise muutuja tegemine andmete juurde pääsemiseks arvuti jaoks kerge ülesanne. Samas aga peab vaatama, et vajalikke andmeid kogemata ettevaatamatult ei muudaks. int[] m=new int[3]{40, 48, 33}; int[] m2=m; //Viide samale massiivile Tryki(m2); m[1]=32; Tryki(m2); Kui soovida, et kaks algsetest andmetest pärit massiivi on üksteisest sõltumatud, siis tuleb teha algsest massiivist koopia (kloon). int[] m3=(int[])m.Clone(); //Andmete koopia m[1]=20; Tryki(m3);
Kõik kommentaarid