Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Samankaltaiset tiedostot
2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL - STRUCTURED QUERY LANGUAGE

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä

Liitokset - haut useaan tauluun

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

OUTER JOIN se vanha kunnon kaveri

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

SELECT-lauseen perusmuoto

CSE-A1200 Tietokannat

HELIA TIKO-05 1 (15) ICT03D Tieto ja tiedon varastointi Räty, Virkki

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

CSE-A1200 Tietokannat

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto.

CSE-A1200 Tietokannat

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

Kuva 7.2 vastaustaulu harjoitukseen 7.2

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

HELIA 1 (14) Outi Virkki Tiedonhallinta

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu.

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

HELIA 1 (14) Outi Virkki Tiedonhallinta

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! ! Henri Nurmi! !

Opiskeluoikeuksien maaran tiedonkeruu

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

HELIA TIKO-05 1 (22) Tieto ja tiedon varastointi E.Räty, O.Virkki

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Vain valitut kentät: SELECT Päivämäärä, Laskutusnimi, [ale mk], Loppusumma FROM Laskuotsikot

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

Kyselyn yleisrakenne:

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

4.1 Yleistä SQL:stä 4.2 SQL-lauseet 4.3 DML: datan hallinta 4.4 DDL: rakenteen määrittäminen 4.5 DCL: valtuuttaminen 4.6 TxCL: tapahtumanhallinta

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.

KOOSTEFUNKTIOT. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT

INSERT INTO koulutus VALUES ( Helsinki, 22.6, 4);

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

Tietokannat II -kurssin harjoitustyö

Proseduurit, 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 K2009

Relaation tyhjyyden testaaminen

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

SQL:N PERUSTEET MARKKU SUNI

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Opintopiiritehtävä 3: Verkkohuutokauppa

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

ASTERI-OHJELMIEN SQL-ERIKOISKURSSI LUENTOKALVOT

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

HELIA 1 (72) Räty, Virkki, Kurki Lahtinen Tiedonhallinta

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli

T Testiraportti TR-3. ETL-työkalu

DriveGate -ohjeet. DriveGate-käyttöohjeet: Rekisteröityminen palveluun. Rekisteröitymisohjeet ja rekisteröitymisprosessin kuvaus

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Tietokantakurssit / TKTL

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm:

2. Käsiteanalyysi ja relaatiomalli

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

OpenOffice.org Base 3.1.0

Access-kyselyt. Luetteloinnin kehittämispäivä Mia Kujala

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HELIA 1 (11) Outi Virkki Tiedonhallinta

Yleinen SQL. Yleinen SQL. SQL:n kehitys

SMT / SUOMEN MATKATOIMISTO OY Y-TUNNUS / FO-NUMMER / BUSINESS ID

Turnitin-ohjelma käyttö opettajana Turnitin.comissa

3. Taulujen määrittely ja muuttaminen

Toteutusdokumentti. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos

SQL-kielen perusteet. Tietokantojen perusteet

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

Ohjelmoinnin perusteet Y Python

Metropolia ammattikorkeakoulu TU00BS : ICT-teknologiaosaaminen Tuntitehtävät 5 Pasi Ranne

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

PIC-koodin luominen URF-tietokantaan Participant Portal

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

Näkymät ja tiedon suojaus

TIETOKANNAT JOHDANTO

SPARQL(SPARQL Protocol and RDF Query Language)

Transkriptio:

Tällä viikolla Kertaus SQL-asioista jatketaan SQL-tekstifuntio-harjoituksia tehdään pelifirman tietokannasta ER-malli MySQL:llä, tarkastellaan mallin toimivuutta ja korjataan, jos korjattavaa löytyy, tehdään parityöskentelynä jatketaan parityöskentelynä: katsotaan netistä peliohjelmasivua ja tutkitaan miten sivun sisältö voitaisiin tallentaa tietokantaan, parit saavat valita oman sivustonsa tai annan linkin Uusi SQL-aihe

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)] ORDER BY sarake1 ASC/DESC

Taulun luonti: CREATE TABLE henkilo ( tunnus CHAR(3), etunimi VARCHAR(20), sukunimi VARCHAR(20) osasto SMALLINT)

Lisäys-, päivitys- ja poistokyselyt INSERT INTO henkilo VALUES( MMe', Masa', Meikäläinen'); UPDATE henkilo SET etunimi='matti WHERE tunnus= MMe DELETE FROM henkilo WHERE etunimi= Matti'

Laskenta-funktiot: SUM, AVG, MIN, MAX, COUNT SELECT rating, AVG(rental_rate) FROM film GROUP BY rating

Loogiset operaattorit AND ja OR: SELECT title, length, rental_duration FROM film WHERE length=55 OR length=95 SELECT title, length, rental_duration FROM film WHERE length=55 AND rental_duration=4

Kyselyiden yhdistäminen, UNION / UNION ALL: SELECT city FROM offices UNION SELECT city FROM customers UNION yhdistely on aina distinct, UNION ALL tuo kaikki rivit Sisäkyselyt: Kyselyä voi käyttää toisen kyselyn lähteenä tai vaikka WHEREehdossa. WHERE-ehdossa eksakti vertailu (=) yhteen arvoon tai joukkoon (IN): SELECT COUNT(*) FROM (SELECT city FROM offices UNION ALL SELECT city FROM customers) AS temp SELECT * FROM customers WHERE city IN (SELECT city FROM offices WHERE country='uk')

Tekstinkäsittelyfunktioita: UPPER - muuttaa merkit isoiksi (uppercase) SELECT UPPER(customerName) FROM customers LOWER - muuttaa merkit pieniksi (lowercase) SELECT LOWER(customerName) FROM customers SELECT 'Teksti' - palauttaa kirjoitetun tekstin CONCAT - yhdistää tekstimuotoisia kenttiä tai kirjoitettua tekstiä SELECT CONCAT(firstName, ' ', lastname) FROM employees SUBSTRING - merkkijonon haku SELECT SUBSTRING(productname, 5, 8) FROM products RIGHT - hakee kentän oikeanpuoleisia merkkejä n kappaletta SELECT RIGHT(email,4) FROM employees LEFT - hakee kentän vasemmanpuoleisia merkkejä n kappaletta SELECT LEFT(productName,4) FROM products LENGTH - kentän pituus = merkkien määrä SELECT LENGTH(firstName) FROM employees

- Hae products-taulusta kaikki Ferrarit - Hae products-taulusta kaksi kenttää, joissa ensimmäisessä lukee 'Ferrari' ja toisessa 'Classic car'. Hyödynnä edellistä kyselyä. Tulokseen tulee kaksi riviä. - Edellisen tehtävän tulokseen tuli kaksi riviä. Millä yhdellä määreellä saat karsittua tuplarivin pois? - Muodosta yhteen kenttään teksti, jossa ensin tuotteen nimi, sitten kaksoispiste ja lopuksi tuotekuvaus - Sama kuin edellä, mutta muuta tuotenimi isoiksi kirjaimiksi ja tuotekuvaus pieniksi kirjaimiksi - Hae työntekijöiden etunimi ja toiseen kenttään etunimen pituus - Tee kahden kentän kysely, jossa ensimmäisessä lukee "Etunimi" toisessa on työntekijän etunimi - Tee sama kuin edellä, mutta tiedot yhteen kenttään ja välilyönti ennen nimeä - Muodosta "ohjelause peliin": "Valitse ajoneuvo:" ja sitten lista ajoneuvoista. (UNION-kysely) - Hae eri kenttiin työntekijöiden etunimen alkukirjain ja sukunimen alkukirjain - Hae työntekijöiden nimikirjaimet muodossa (esim.) "E.S." eli etunimen alkukirjain ja sukunimen alkukirjain - Hae tuotteen S10_2016 tuotekuvauksesta sana "logos

-- Hae products-taulusta kaikki Ferrarit SELECT * FROM products WHERE productname LIKE '%Ferrari% -- Hae products-taulusta kaksi kenttää, joissa ensimmäisessä lukee 'Ferrari' ja toisessa 'Classic car'. Hyödynnä edellistä kyselyä. Tulokseen tulee kaksi riviä. SELECT SUBSTRING(productname,5,8), LEFT(productLine, 11) FROM products WHERE productname LIKE '%Ferrari% -- Edellisen tehtävän tulokseen tuli kaksi riviä. Millä yhdellä määreellä saat karsittua tuplarivin pois? SELECT DISTINCT SUBSTRING(productname,5,8), LEFT(productLine, 11) FROM products WHERE productname LIKE '%Ferrari% -- Muodosta yhteen kenttään teksti, jossa ensin tuotteen nimi, sitten kaksoispiste ja lopuksi tuotekuvaus SELECT CONCAT(productname, ': ', productdescription) FROM products -- Sama kuin edellä, mutta muuta tuotenimi isoiksi kirjaimiksi ja tuotekuvaus pieniksi kirjaimiksi SELECT CONCAT(UPPER(productname), ': ', productdescription) FROM products -- Hae työntekijöiden etunimi ja toiseen kenttään etunimen pituus SELECT firstname, LENGTH(firstName)FROM employees -- Tee kahden kentän kysely, jossa ensimmäisessä lukee "Etunimi" toiesessa on työntekijän etunimi SELECT 'Etunimi', firstname FROM employees -- Tee sama kuin edellä, mutta tiedot yhteen kenttään ja välilyönti ennen nimeä SELECT 'Etunimi', firstname FROM employees -- Muodosta "ohjelause peliin": "Valitse ajoneuvo:" ja sitten lista ajoneuvoista. (UNION-kysely) SELECT 'Valitse ajoneuvo listalta:' AS Ohje UNION SELECT productname FROM products -- Hae eri kenttiin työntekijöiden etunimen alkukirjain ja sukunimen alkukirjain SELECT LEFT(firstName,1), LEFT(lastName,1) FROM employees -- Hae työntekijöiden nimikirjaimet muodossa (esim.) "E.S." eli etunimen alkukirjain ja sukunimen alkukirjain SELECT CONCAT(LEFT(firstName,1), '.', LEFT(lastName,1), '.') FROM employees -- Hae tuotteen S10_2016 tuotekuvauksesta sana "logos SELECT SUBSTRING(productdescription,21,5) FROM products WHERE productcode='s10_2016'

Nämä kyselyt world-tietokantaan 1) Hae kaupunkien nimet ja väkiluku, kun väkiluku ylittää 8 miljoonaa järjestettynä väkiluvun mukaan laskevasti. 2) Lisää edelliseen kenttä, jossa kaupungin nimi lyhennetään siten että yksi kirjain alusta ja kaksi lopusta. 3) Muodosta country-taulusta Euroopan maista tekstit: [Name] :ssa on [Population] asukasta. 4) Monta prosenttia suomalaisista puhuu äidinkielenään muuta kuin suomea? Tee kysely ainakin kahdella eri tavalla.

Nämä kyselyt world-tietokantaan 1) Hae kaupunkien nimet ja väkiluku, kun väkiluku ylittää 8 miljoonaa järjestettynä väkiluvun mukaan laskevasti. SELECT Name, Population FROM city WHERE population>8000000 ORDER BY population DESC; 2) Lisää edelliseen kenttä, jossa kaupungin nimi lyhennetään siten että yksi kirjain alusta ja kaksi lopusta. SELECT Name, CONCAT(LEFT(Name,1), RIGHT(Name,2)) AS Init, Population FROM city WHERE population>8000000 ORDER BY population DESC; 3) Muodosta country-taulusta Euroopan maista tekstit: [Name] :ssa on [Population] asukasta. SELECT CONCAT(Name, ':ssa on ',Population, ' asukasta.') AS Maan_asukkaat FROM country WHERE region LIKE '%Europe% 4) Monta prosenttia suomalaisista puhuu äidinkielenään muuta kuin suomea? Tee kysely ainakin kahdella eri tavalla. SELECT SUM(Percentage) FROM countrylanguage WHERE countrycode='fin AND language<>'finnish'

INNER JOIN LEFT JOIN RIGHT JOIN OUTER JOIN

Inner join, kaikki kaupungit ja niiden sijaintimaat: SELECT city.city, country.country FROM city INNER JOIN country ON country.country_id=city.country_id Left join, varastot ja kaikki osoite-taulun osoitteet vaikkei osoitteessa olisikaan varastoa: SELECT store.store_id, address.address FROM address LEFT JOIN store ON address.address_id=store.address_id Right join, varasto-taulun kaikki rivit ja osoite-taulusta vain varastoihin liittyvät osoitteet: SELECT store.store_id, address.address FROM address RIGHT JOIN store ON address.address_id=store.address_id

Monen taulun liitos: SELECT actor.last_name, film.title FROM actor INNER JOIN film_actor ON film_actor.actor_id=actor.actor_id INNER JOIN film ON film.film_id=film_actor.film_id Taulunimien aliasten käyttö: SELECT k.city, m.country FROM city k INNER JOIN country m ON m.country_id=k.country_id

Käytetään sakila-tietokantaa 1) Hae asiakkaiden nimet ja osoitteet 2) Hae elokuvan nimi ja sen kieli 3) Hae nimet työntekijöille (staff-taulu), jotka ovat vuokranneet (rental-taulu) elokuvia

Käytetään sakila-tietokantaa 1) Hae asiakkaiden nimet ja osoitteet SELECT c.first_name, c.last_name, a.address FROM customer c INNER JOIN address a ON a.address_id=c.address_id 2) Hae elokuvan nimi ja sen kieli SELECT f.title, l.name FROM film f INNER JOIN language l ON l.language_id=f.language_id 3) Hae nimet työntekijöille (staff-taulu), jotka ovat vuokranneet (rentaltaulu) elokuvia SELECT DISTINCT s.first_name, s.last_name FROM staff s INNER JOIN rental r ON s.staff_id=r.staff_id

JOIN-harjoituksia, käytetään world-tietokantaa, tehtävien vastaukset SQL-kyselyinä, käytetään JOIN-kyselyjä vaikka kyselyt voisi tehdä toisinkin. 1) Hae maan nimi ja toiseen sarakkeeseen maassa puhuttava kieli 2) Tee kysely, jossa näkyy WHERE-ehdossa määrätyn maan kaupungit 3a) Hae kaikki maiden nimet ja toiseen kenttään tietokannasta löytyvät maan kaupungit. Vihje: pitää käyttää LEFT tai RIGHT JOINia 3b) Miksi pitää käyttää LEFT tai RIGHT JOINia? 4) Hae kaupungit, joiden kielivalikoimaan kuuluu ruotsi (kolmen taulun liitos)