1 / 35

SQL

SQL. Haaga-Helia Ammattikorkeakoulu Kevät 2008. Sql:n historia. Sql on laajalti käytössä oleva relaatiotietokantojen ohjauskieli Kehitettiin SEQUEL kielen pohjalta 80-luvun puolivälissä Lukemattomia komentoja tietokannan muokkaamiseen ja käsittelemiseen käskyjä

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 Haaga-Helia Ammattikorkeakoulu Kevät 2008

  2. Sql:n historia • Sql on laajalti käytössä oleva relaatiotietokantojen ohjauskieli • Kehitettiin SEQUEL kielen pohjalta 80-luvun puolivälissä • Lukemattomia komentoja tietokannan muokkaamiseen ja käsittelemiseen käskyjä • Helppokäyttöinen ja kirjoitusmuodoltaan melko vapaa kieli

  3. SQL SQL toimii • kannankäsittelykielenä (ylläpito) • kyselykielenä • kannankuvauskielenä • kannanvalvontakielenä (käyttöoikeudet, tietohakemisto, varmistukset) SQL on kahdenlaista • komento-sql, jota voidaan käyttää tietokannan kyselyliittymässä • upotettua, jota käytetään perinteisellä ohjelmointikielellä tehdyssä ohjelmassa upotettuna

  4. Sql • Sql:n kielioppi on vapaa ja ei ole merkitystä onko asiat jaettu riveille vai ei • Myöskään isoilla ja pienillä kirjaimilla ei ole merkitystä • Usein varatut sanat kirjoitetaan kuitenkin isolla ja käytetään sisennyksiä • Sql jaetaan usein kahteen osaan DML:aan (Data Manipulation Language) ja DDL:aan (Data Definition Language)

  5. TIEDON KUVAUSKIELI (DDL) kuvauskielen avulla tehdään • tietokannan luonti • tietokannan muutos (rakenne) • tietokannan fyysisen rakenteen määrittely

  6. SQL - DDL (Data Definition Language) Tietokannan kuvauskieli Tietokannan taulut CREATE (luonti) ALTER (muutos) DROP (poisto)

  7. TIEDON KÄSITTELYKIELI (DML) käsittelykielen avulla • haetaan tietoja • päivitetään tietokantaa

  8. SQL - DML (Data Manipulation Language) Tietokannan käsittelykieli Tietokannan taulut SELECT (kyselyt) INSERT (lisäys) UPDATE (muutos) DELETE (poisto)

  9. Sql:n DML:n käyttö • DML:aa käytetään tavallisimmin erilaisten hakutoimintojen suorittamiseen relaatiotietokannoista • Hakuja voidaan esimerkiksi tehdä Access tietokannasta tai vaikkapa jollain ohjelmointikielellä toteutetuun ohjelmaan liitetystä tietokannasta

  10. SQL / DML - KÄSKYJÄ • SELECT kyselyjen teko • FETCH kyselyjentulostenkäsittely • INSERT rivien lisäys • UPDATE rivien päivitys • DELETE rivien poisto

  11. Select käsky • DML:n tärkein käsky on SELECT, jonka ympärille kyselyt yleensä rakennetaan • SELECT käskyn syntaksissa suluissa [] olevat osat ovat vapaaehtoisia lisämääreitä, joiden avulla käskyjä on mahdollista monipuolistaa ja lisätä erilaisia hakuehtoja

  12. KYSELYT (SELECT) SELECT [DISTINCT] sarakelista [ INTO muuttujalista ] FROM tauluista [ WHERE hakuehto ] [ GROUP BY ryhmittelysarake [ HAVING ryhmäehto ] ] [ ORDER BY lajittelusarakelista [ASC | DESC ] ]

  13. SELECT määrittää, mitä tietoja haetaan • FROM määrittää taulun (taulut), joista tietoa haetaan • WHERE ottaa mukaan ehdon mukaiset rivit • GROUP ryhmittelee annetun sarakkeen mukaan rivit ryhmiksi • HAVING ottaa mukaan ehdon mukaiset ryhmät • ORDER BY lajittelee tulosrivit annetun/ annettujen sarakkeiden mukaan nousevaan/laskevaan järjestykseen

  14. EsimerkkitietokantaSeuraavissa esimerkeissä teemme esimerkkihaut seuraavanlaisesta tietokannan taulusta ttekija.

  15. SELECT tnimi, nimikeFROM ttekija ”hae kaikkien työntekijöiden nimet ja nimikkeet” TnimiNimike Salmi Sihteeri Suomi Suunnittelija Jurva Sihteeri Kantola Pääjohtaja Virtanen Suunnittelija Arvila Sihteeri Aaltonen Myyntimies

  16. SELECT tnimi, nimikeFROM ttekijaWHERE palkka=15000 ”hae työntekijä, jonka palkka on 15000 nimi ja nimike” TnimiNimike Aaltonen Myyntimies

  17. SELECT nimikeFROM ttekija • ”tulosta nimikkeet ” Nimike Sihteeri Suunnittelija Sihteeri Pääjohtaja Suunnittelija Sihteeri Myyntimies

  18. DUPLIKAATTIEN ESTO (DISTINCT) SELECT DISTINCT nimikeFROM ttekija ”tulosta kukin nimike vain kertaalleen” Nimike sihteeri suunnittelija pääjohtaja myyntimies

  19. OPERAATTORIEN SUORITUSJÄRJESTYS 1. vertailuoperaattorit 2. NOT 3. AND 4. OR

  20. = <> > < >= <= NOT IN (lista) LIKE BETWEEN a AND b IS NULL / IS NOT NULL * / + - AND OR OPERAATTOREITA

  21. SELECT tnimi, palkkaFROM ttekijaWHERE palkka >= 7000 AND palkka <= 9000 ”hae niiden työntekijöiden nimi ja palkka, joiden palkka on vähintään 7000 ja enintään 9000” TnimiPalkka Salmi 7200 Jurva 8800

  22. SELECT tnimi, palkkaFROM ttekijaWHERE palkka BETWEEN 7000 AND 9000

  23. SELECT tnimi, palkkaFROM ttekijaWHERE nimike = ’suunnittelija’ ”hae niiden työntekijöiden nimi ja palkka, joiden nimike on suunnittelija” TnimiPalkka Suomi 19200 Virtanen 19200

  24. Merkkijonoista... • Sql:ssä merkkijonot suljetaan yksinkertaisten heittomerkkien sisään (‘) • HUOMAA, että heittomerkkien sisällä isot ja pienet kirjaimet ovat merkitseviä!!! • ‘virtanen’ ei ole sama kuin ‘Virtanen’ • Numeroiden kirjoittamisessa ei heittomerkkejä tarvita, vaan numeeriset vakiot kirjoitetaan sellaisenaan.

  25. SELECT tnimi, palkkaFROM ttekijaWHERE nimike IN ( ’sihteeri’ , ’suunnittelija’ ) ”hae niiden työntekijöiden nimi ja palkka, joiden nimike on suunnittelija tai sihteeri” TnimiPalkka Salmi 7200 Suomi 19200 Jurva 8800 Virtanen 19200 Arvila 10200

  26. SELECT tnimi, palkkaFROM ttekijaWHERE nimike = ’sihteeri’ ORnimike = ’suunnittelija’

  27. SELECT tnimi, nimikeFROM ttekijaWHERE nimike LIKE ’siht*’ (tai ’siht%’) ”hae niiden työntekijöiden nimi ja nimike, joiden nimike alkaa siht ” TnimiNimike Salmi sihteeri Jurva sihteeri Arvila sihteeri

  28. JOKERIMERKIT * / % tarkoittaa kuinka monta mitä tahansa merkkiä • Virtanen on sama kuin Virta* / Virta% ? /_ tarkoittaa yhtä mitä tahansa merkkiä • Nieminen on sama kuin ?iemine? /_iemine_

  29. SELECT tnimi, nimikeFROM ttekijaWHERE esimies IS NULL ”hae niiden työntekijöiden nimi ja nimike, joilla ei ole esimiestä (esimies on null) ” TnimiNimike Kantola pääjohtaja

  30. LAJITTELU (ORDER BY) SELECT tnimi, palkkaFROM ttekijaWHERE nimike LIKE ’siht*’ tai (’siht%’)ORDER BY tnimi ”hae niiden työntekijöiden nimi ja palkka, joiden nimike alkaa siht. Tulosta nimen mukaan nousevassa järjestyksessä” TnimiNimike Arvila sihteeri Jurva sihteeri Salmi sihteeri

  31. nouseva järjestys ASC (oletus) ORDER BY tnimi ASC • laskeva järjestys DESC • ORDER BY tnimi DESC TnimiNimike Salmi sihteeri Jurva sihteeri Arvila sihteeri

  32. Tehtävä • Tee Accessilla opiskelijatietokanta, johon luot sarakkeiksi jokaiselle opiskelijalle sotun, Sukunimen, Etunimen, Katuosoitteen, postinumeron, Puhelinnumeron ja aloitusvuoden • Mieti tarkoin millaisia millaisia tietotyyppejä sarakkeissa kannattaa käyttää ja millaisia ehtoja niille kannattaa asettaa

  33. Tehtävä... • Syötä taulukkoosi noin kymmennen mielikuvituksellista opiskelijaa • Tee seuraavat Sql harjoitukset liittyen taulukkoosi: • Hae taulukosta kaikkien opiskelijoiden Etu- ja sukunimet • Kokeile mitä DISTINCT määre vaikuttaa haun tulokseen

  34. Tehtävä... • Tee haku, jossa haet kaikkien opiskelijoiden kaikki tiedot • Tee haku, jossa haet esimerkiksi Matti nimisen opiskelijan kaikki tiedot • Tee haku, jossa haet kaikkien muiden opiskelijonden tiedot paitsi Matti etunimisen • Hae opiskelijoiden tiedot, jotka ovat aloittaneet ennen vuotta 1995 • Entäpä kuinka hakisit kaikki 1999 aloittaneet opiskelijat

  35. Tehtävä... • Kuinka hakisit opiskelijat, jotka ovat aloittaneet ennen 1998 ja joiden etunimi ei ole Matti • entäpä kuinka hakisit 1995 aloittaneet ja Matti nimiset • Kuinka hakisit 1995 tai myöhemmin aloittaneet ja tulostaisit tuloksen laskevaan aakkosjärjestykseen

More Related