Andmebaasiprogramm - andmeohjur Andmebaas - andmetabelite komplekt Tabel - tulbad ja read Tulp - tüüp SELECT koeranimi, synniaasta FROM koerad WHERE synniaasta<2005 UPDATE koerad SET synniaasta=2005, koeranimi='Mammu' WHERE id=2 DELETE FROM koerad WHERE id=3 INSERT INTO koerad (koeranimi, synniaasta) VALUES ('Polla', 2003); Kirjandust: Veebistuudiumi konspekt Ain Isotamm. Andmed, andmemudelid ja päringukeeled Alo Lintam. Access; Interneti kodulehe tegemine Erki Eessaar. Andmebaaside projekteerimine CREATE TABLE autod ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, mark VARCHAR(20), regnr VARCHAR(8), aasta INT, regpiirk INT ); INSERT INTO autod(mark, regnr, aasta, regpiirk) VALUES('', '', ,); INSERT INTO autod(mark, regnr, aasta, regpiirk) VALUES('Audi', '123 ABC', 2000,1); INSERT INTO autod(mark, regnr, aasta, regpiirk) VALUES('Ford', '777 AAA', 1988,2); INSERT INTO autod(mark, regnr, aasta, regpiirk) VALUES('Ford', 'FIN 772', 2002,1); SELECT DISTINCT mark FROM autod; SELECT regnr FROM autod WHERE aasta<1993; SELECT regnr FROM autod WHERE aasta<1993 ORDER BY regnr; SELECT MIN(aasta) FROM autod; UPDATE autod SET regnr='333 KKK' WHERE id=3; DELETE FROM autod WHERE id=4; INSERT INTO autod (mark, regnr, aasta, regpiirk) VALUES ('Nissan', '555 NNN', 2007, 2); SELECT * FROM autod; CREATE TABLE piirkonnad( id INT NOT NULL PRIMARY KEY, piirkonnanimi VARCHAR(50) ); INSERT INTO piirkonnad (id, piirkonnanimi) VALUES (1, 'Harjumaa'); INSERT INTO piirkonnad (id, piirkonnanimi) VALUES (2, 'Virumaa'); Küsige registreerimisnumber koos piirkonna nimega SELECT regnr, piirkonnanimi FROM autod INNER JOIN piirkonnad ON autod.regpiirk=piirkonnad.id SELECT * FROM autod WHERE regnr LIKE '%A%' SELECT mark, COUNT(*) FROM autod GROUP BY mark SELECT aasta, mark, COUNT(*) FROM autod GROUP BY aasta, mark SELECT mark, AVG(aasta) FROM autod GROUP BY mark SELECT mark, MAX(aasta)-MIN(aasta) FROM autod GROUP BY mark Mitu viidet samasse tabelisse abielud (abielu_id, pruudi_id, peigmehe_id) inimesed(inimene_id, eesnimi, perekonnanimi) Päring abielude loetelu jaoks, kus oleksid kirjas iga abielu kohta pruudi ja peigmehe eesnimi Kõik abiellunud Kati Juku Jaan Karin SELECT eesnimi FROM inimesed, abielud WHERE abielud.pruudi_id=inimesed.inimese_id OR abielud.peigmehe_id=inimesed.inimese_id Kõik paarid Kati Juku Karin Jaan inimesed id eesnimi 1 Kati 2 Juku 3 Jaan 4 Karin 5 Marta abielud id pruudi_id peigmehe_id 1 1 2 2 4 3 SELECT naised.eesnimi as naisenimi, mehed.eesnimi as mehenimi FROM inimesed as mehed, inimesed as naised, abielud WHERE abielud.pruudi_id=naised.inimese_id AND abielud.peigmehe_id=mehed.inimese_id inimesed id eesnimi isa_id ema_id 1 Kati 6 7 2 Juku NULL 8 3 Jaan 6 7 4 Karin NULL 8 5 Marta 1 2 6 Johannes NULL NULL 7 Leida NULL NULL 8 Katariina NULL NULL eesnimi isanimi emanimi SELECT ise.eesnimi, emad.eesnimi as emanimi, isad.eesnimi as isanimi FROM inimesed as ise left join inimesed as emad on ise.ema_id=emad.id left join inimesed as isad on ise.isa_id=isad.id; SELECT regnr FROM autod WHERE aasta<(SELECT AVG(aasta) FROM autod) SELECT mark, aasta, regnr FROM autod as tabel1 WHERE aasta<(SELECT AVG(aasta) FROM autod as tabel2 WHERE tabel1.mark=tabel2.mark ) SELECT * FROM autod as tabel1, (SELECT AVG(aasta) as keskmineaasta, mark FROM autod GROUP BY mark) as tabel2 WHERE tabel1.mark=tabel2.mark AND tabel1.aasta 100 THEN SET NEW.aasta = 100; END IF; END;// delimiter ; mysql> CREATE PROCEDURE kysija() -> SELECT * FROM autod WHERE aasta>1975; Query OK, 0 rows affected (0.06 sec) mysql> call kysija(); +----+------+---------+-------+----------+ | id | mark | regnr | aasta | regpiirk | +----+------+---------+-------+----------+ | 2 | Ford | 777 AAA | 1988 | 2 | | 3 | Ford | FIN 772 | 2002 | 1 | | 4 | Ford | 111 bbb | 1988 | 1 | | 6 | Audi | 333 iii | 2004 | 2 | | 7 | Audi | 666 rre | 2007 | 2 | | 8 | Audi | 666 yyy | 1988 | 2 | | 9 | Audi | 222aaa | 1980 | 1 | +----+------+---------+-------+----------+ 7 rows in set (0.03 sec) Query OK, 0 rows affected (0.03 sec) http://www.java2s.com/Tutorial/MySQL/CatalogMySQL.htm