1 / 12

SQL

SQL. Standardoitu kieli, jonka avulla voidaan Luoda ja hallita tietokantoja Hakea tietoa tietokannasta Muuttaa tietokannan tietoja Standardoinnista huolimatta kukin TKHJ tukee omaa SQL-murrettaan PostgreSQL lähellä standardia MySQL ei lähelläkään standardia. SQL:stä tällä kurssilla.

vivi
Download Presentation

SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQL • Standardoitu kieli, jonka avulla voidaan • Luoda ja hallita tietokantoja • Hakea tietoa tietokannasta • Muuttaa tietokannan tietoja • Standardoinnista huolimatta kukin TKHJ tukee omaa SQL-murrettaan • PostgreSQL lähellä standardia • MySQL ei lähelläkään standardia

  2. SQL:stä tällä kurssilla • Tietokantojen, käyttäjien ja taulujen luominen ja tuhoaminen • Tietotyypit, viiteavainmäärittelyt • Kyselyt • Peruskyselyt, alikyselyt, aggregaattifunktiot, NULL-arvojen käsittely • Päivitysoperaatiot

  3. SQL:n numeeriset tietotyypit (1) • SMALLINT • Etumerkillinen kokonaisluku, tallennustila 2 tavua • Arvoalue [-32768, 32767] • INTEGER • Etumerkillinen kokonaisluku, tallennustila 4 tavua • [-2147483648, 2147483647] • SERIAL • PostgreSQL:n oma datatyyppi • Sarjanumeroiden (esim. Id:n) generointiin • Monissa TKHJ:ssä oma vastineensa

  4. SQL:n numeeriset tietotyypit (2) • REAL • Reaaliluku, tarkkuus vaihtelee alustan mukaan • DOUBLE • Tarkempi reaaliluku, tarkkuus vaihtelee • DECIMAL(m,n) • Halutun tarkkuuden reaaliluku; m on numeroiden kokonaismäärä ja n desimaalien määrä • Esim. DECIMAL(6,2) voisi kuvata hintaa; suurin arvo 9999.99

  5. SQL:n aikatietotyypit • DATE eli päivämäärä muodossa YYYY-MM-DD • Esim. 2007-01-31 • TIME eli kellonaika muodossa HH:MM:SS • Usein mahdollisuus myös millisekuntien tarkkuuteen • Esim. 14:15:00 • TIMESTAMP eli aikaleima eli tyyppien DATE ja TIME yhdistelmä • Tilauksen tms. ajankohta

  6. SQL:n tekstitietotyypit (1) • CHAR(n) • Korkeintaan n:n pituinen merkkijono • Tallennustilan tarve tallennettavan merkkijonon pituudesta riippumatta aina n tavua • VARCHAR(n) • Korkeintaan n:n pituinen merkkijono • Tallennustila korkeintaan n tavua (sekä lisäksi joitakin tavuja pituutiedon tallentamiseen) • TEXT • Vaihtelevan pituinen merkkijono • Tallennustilan tarve merkkijonon pituus (sekä lisäksi joitakin tavuja)

  7. SQL:n tekstitietotyypit (2) • Tietotyypin valinta riippuu tallennettavasta datasta • Rekisterinumero, sosiaaliturvatunnus tai muu tieto, jonka pituus on käytännössä vakio: CHAR • Nimi, osoite tai muu vaihtelevan pituinen tieto: VARCHAR • Vaihtelevan pituisena tallennettavat merkkijonot säästävät tilaa, mutta pituusinformaation käsittely hidastaa operaatioita • Toisaalta myös tyhjän tilan käsittely hidastaa

  8. Muita tietotyyppejä • Monet TKHJ:t tarjoavat lisäksi muitakin tietotyyppejä • PostgreSQL:ssä geometriset tietotyypit • McKoi SQL:ssä JAVA_OBJECT • Tietotyypit binääridatalle • Taulukot

  9. NULL-arvot • NULL tulkitaan tuntemattomaksi arvoksi • Totuusarvona ”ehkä” • Kokonaislukuna mikä tahansa luku • Merkkijonona mikä tahansa merkkijono • Saattavat aiheuttaa hankaluuksia • Alikyselyt, liitokset

  10. Kolmiarvologiikka (1) • Perinteisten totuusarvojen TRUE ja FALSE lisäksi mukana myös NULL • NOT TRUE = FALSE, NOT FALSE = TRUE ja NOT NULL = NULL • NULL voidaan siis tulkita totuusarvona ”ehkä”

  11. Kolmiarvologiikka (2)

  12. NULL-arvojen käsittely (1) • Miksi totuusarvoiksi evaluoituvat • TRUE OR NULL OR FALSE? • TRUE AND NULL OR FALSE? • TRUE OR NOT NULL • 5 < NULL? • NULL = NULL? • NULL IS NULL? • Jos siis halutaan tutkia onko jokin arvo tosiaan NULL, on käytettävä IS NULL -vertailua

More Related