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



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

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

SELECT-lauseen perusmuoto

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

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

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

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

SQL - STRUCTURED QUERY LANGUAGE

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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

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

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

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

HAAGA-HELIA TIKO - Heti09 1 (22) ICT05 Tiedonhallinta ja Tietokannat E.Räty, O.Virkki, M.Laiho

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

Makrojen mystinen maailma lyhyt oppimäärä

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

CSE-A1200 Tietokannat

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

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

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

SQL:N PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

3. Taulujen määrittely ja muuttaminen

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

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

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

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

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

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Kyselyn yleisrakenne:

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

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

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

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

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

Kuva 7.2 vastaustaulu harjoitukseen 7.2

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

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

Opiskeluoikeuksien maaran tiedonkeruu

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

Ohjelmoinnin perusteet Y Python

Relaation tyhjyyden testaaminen

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

Ohjelmoinnin perusteet Y Python

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

Liitokset - haut useaan tauluun

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

Näkymät ja tiedon suojaus

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

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

Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

CSE-A1200 Tietokannat

SQL:N PERUSTEET MARKKU SUNI

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

OpenOffice.org Base 3.1.0

SQL-kielen perusteet. Tietokantojen perusteet

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

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

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

FORD ST _ST_Range_V2_ MY.indd FC1-FC3 27/06/ :24:01

Tietokannat II -kurssin harjoitustyö

Virta_Latausraportti - Tarkistukset

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

OUTER JOIN se vanha kunnon kaveri

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

ASTERI-OHJELMIEN SQL-ERIKOISKURSSI LUENTOKALVOT

Java-kielen perusteet

Johdatus Ohjelmointiin

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

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

VeRan laboratoriotietojen siirtoformaatti

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm:

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

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

Ohjelmoinnin perusteet Y Python

EXEC SQL BEGIN DECLARE SECTION

Python-ohjelmointi Harjoitus 5

Luento 5. Timo Savola. 28. huhtikuuta 2006

Transkriptio:

HELIA TIKO-05 1 (22) SQL / DML SQL / DML...2 Tiedon haku eli -lause...4 Distinct-määre...7 Lasketut sarakkeet...8 Sarakkeen uudelleen nimeäminen...9 SQL:n funktioita... 10 Merkkijonofunktiot... 10 Päivämääräfunktiot... 11 Muita funktioita... 12 Rivien valinta eli WHERE -ehto... 13 Vertailu... 13 Loogiset operaattorit:... 14 Hahmontunnistus... 16 Joukkoon kuuluminen... 18 Arvoväli... 19 Vertailu tyhjä-arvoon... 20 Lajittelu eli ORDER BY -osa... 21

HELIA TIKO-05 2 (22) SQL / DML ~ Data Manipulation Language ~ Tietojen käsittely INSERT tiedon (rivien) lisäys tauluun UPDATE taulussa olevan tiedon muuttaminen / päivitys DELETE tiedon (rivien) poisto taulusta kysely tietokannasta Materiaalissa käytetyt esimerkit liittyvät Conolly, Begg. Database Systems -kirjan esimerkkiin asunnon vuokraus -tietokannasta Asunnon vuokraus -tietokannan taulut ovat käytettävissä kurssin harjoitusympäristössä (select * from staff, select * from branch jne). (Huom! Luentomateriaalin ja harjoitusympäristön esimerkkitietokannan välillä on pieniä eroja taulujen rakenteissa, esim. sarakkeiden nimeäminen, sarakkeiden lkm yms.)

HELIA TIKO-05 3 (22) Asunnon vuokraus tietokanta harjoitusympäristössä Branch(yrityksen toimipiste/haarakonttori) BRANCHNO STREET CITY POSTCODE B005 22 Deer Rd London SW1 4EH B007 16 Argyll St Aberdeen AB2 3SU Staff: STAFFNO FNAME LNAME OPOSITION SEX DOB SALARY BRANCHNO SL21 John White Manager M 01-OCT-45 30000 B005 SG37 Ann Beech Assistant F 11-OCT-60 12000 B003................ PrivateOwner: OWNERNO FNAME LNAME ADDRESS TELNO CO46 Joe Keogh 2 Fergus Dr, Aberdeen AB2 7SX 01224-861212 CO87 Carol Farrel 6 Achray St, Glasgow G32 9DX 0141-357-7419. PropertyForRent: PROPERT Y NO STREET CITY POST CODE PROPER TYTYPE ROOM S RENT OWNE R NO STAFF NO PA14 16 Aberdeen AB7 5SU House 6 650 CO46 SA9 B007 Holhead PL94 6 Argyll St London NW2 Flat 4 400 CO87 SL41 B005 Client: CLIENTNO FNAME LNAME TELNO PREFTYPE MAXRENT CR76 John Kay 0207-774-5632 Flat 425 CR56 Aline Stewart 0141-848-1825 Flat 350 Viewing: CLIENTNO PROPERTYNO VIEWDATE COMMENTS CR56 PA14 24-MAY-01 too small CR76 PG4 20-APR-01 too --ote Registration: CLIENTNO BRANCHNO STAFFNO DATEJOINED CR76 B005 SL41 02-JAN-01 CR56 B003 SG37 11-APR-00 BRANCH NO

HELIA TIKO-05 4 (22) Tiedon haku eli -lause ~ -lause etsii ja näyttää tietoja yhdestä tai useammasta tietokannan taulusta [DISTINCT ALL] { * [column_expression [AS new_name]] [,...]} table_name [alias] [,...] [WHERE condition] [GROUP BY column_list] [HAVING condition] [ORDER BY column_list]

HELIA TIKO-05 5 (22) Esim. Kaikki sarakkeet & kaikki rivit Hae kaikkien työntekijöiden kaikki tiedot * staff; tai staffno, fname, lname, address, tel_no, oposition, sex, dob, salary, branchno staff; staffno fname lname address tel_no oposition sex dob salary branchno SL21 John White Manager 30000.00 B5 SG37 Ann Beech Snr Asst 12000.00 B3 SA9 David Ford Deputy 18000.00 B3 SA9 Mary Howe Assistant 9000.00 B7 SG5 Susan Brand Manager 24000.00 B3 SL41 Julie Lee Assistent 9000.00 B5 Älä käytä valmiissa ohjelmakohdassa koskaan ' *' vaihtoehtoa; se lisää ohjelman tietoriippuvuutta ja heikentää samalla ylläpidettävyyttä

HELIA TIKO-05 6 (22) Esim. Tietyt sarakkeet, kaikki rivit Hae kaikkien henkilöiden numerot, nimet ja palkat. staffno, fname, lname, salary staff; stafffno fname lname salary SL21 John White 30000.00 SG37 Ann Beech 12000.00 SA9 David Ford 18000.00 SA9 Mary Howe 9000.00 SG5 Susan Brand 24000.00 SL41 Julie Lee 9000.00

HELIA TIKO-05 7 (22) Distinct-määre ~ valitaan vain yksi rivi yhtä sarakkeen arvoa kohti (tulostaulusta duplikaattirivit jää pois) DISTINCT:n vastakohta on ALL (ALL on oletus; ei siis tarvitse kirjoittaa) Esim. Hae kohdenumerot vuokrattavien kohteiden näyttötiedosta propertyno viewing; propertyno PA14 PG4 PG4 PA14 PG36 DISTINCT propertyno viewing; propertyno PA14 PG4 PG36

HELIA TIKO-05 8 (22) Lasketut sarakkeet -lauseessa voidaan käyttää myös laskutoimituksia numeeristen sarakkeet yhteydessä Esim: Hae henkilöiden numerot, nimet ja palkat se. henkilön palkka tulostetaan kuukausipalkkana staffno, fname, lname, salary/12 staff; staffno fname lname col4 SL21 John White 2500.00 SG37 Ann Beech 1000.00 SA9 David Ford 1500.00 SA9 Mary Howe 750.00 SG5 Susan Brand 2000.00 SL41 Julie Lee 750.00

HELIA TIKO-05 9 (22) Sarakkeen uudelleen nimeäminen Sarakkeen uusi nimi annetaan varatun sanan AS jälkeen Esim: Hae henkilöiden numerot, nimet ja palkat se. henkilön palkka tulostetaan kuukausipalkkana staffno, fname, lname, salary/12 AS monthly_salary staff; staffno fname lname monthly_salary SL21 John White 2500.00 SG37 Ann Beech 1000.00 SA9 David Ford 1500.00 SA9 Mary Howe 750.00 SG5 Susan Brand 2000.00

HELIA TIKO-05 10 (22) SQL:n funktioita Merkkijonofunktiot yhdistää kaksi merkki- tai bittijonoa UPPER LOWER muuttaa kirjaimet suuriksi muuttaa kirjaimet pieniksi CHAR_LENGTH palauttaa merkkijonon pituuden SUBSTRING POSITION TRIM palauttaa osan merkkijonosta palauttaa merkkijonon position (toisesta merkkijonosta) poistaa merkkijonosta johtavat (LEADING), päättävät (TRAILING) tai molemmat (BOTH) merkit Esim. fname lname CHAR_LENGTH( Beech ) palauttaa 5 SUBSTRING( Beech 1 to 3) palauttaa Bee POSITION ( ee IN Beech ) palauttaa 2 TRIM (BOTH * *** Hello World *** ) palauttaa Hello World

HELIA TIKO-05 11 (22) Päivämääräfunktiot päivämäärätiedot tallentuvat muodossa yyyy-mm-dd HH:mi:ss CURRENT_DATE CURRENT_TIME nykyinen päivämäärä nykyinen ajanhetki CURRENT_TIME_STAMP nykyinen päivämäärä ja aika EXTRACT päivämäärän osa Esim. CURRENT_TIME(2) palauttaa ajan sadasosasekunnin tarkkuudella CURRENT_TIME_STAMP(0) palauttaa pvm ja aika sekunnin tarkkuudella WHERE EXTRACT (YEAR viewdate) viewing comments IS NULL; Samoin toimivat päivä (DAY) ja kuukausi (MONTH)

HELIA TIKO-05 12 (22) Muita funktioita CAST CURRENT_USER konvertoi lausekkeen arvon toiseksi tietotyypiksi nykyisen käyttäjän tunnus USER SESSION_USER istunnon hallitsijan tunnus SYSTEM_USER systeemikäyttäjän tunnus Esim. CAST(5E3 AS INTEGER) Ehdollinen palautus, CASE CASE propertytype WHEN House THEN 1 WHEN Flat THEN 2 ELSE 0 END

HELIA TIKO-05 13 (22) Rivien valinta eli WHERE -ehto Vertailu ~ comparison ~ vertaa lauseketta toiseen Vertauluoperaattorit: =, <, >, <=, >=, <> erisuuruus myös!= (ei ISO) Esim. Listaa kaikki henkilöt, joiden palkka on suurempi kuin 10 000. staffno, fname, lname, salary staff WHERE salary > 10000; staffno fname lname salary SL21 John White 30000.00 SG37 Ann Beech 12000.00 SA9 David Ford 18000.00 SG5 Susan Brand 24000.00

HELIA TIKO-05 14 (22) Loogiset operaattorit: OR, AND, NOT 1. prioriteettijärjestys: NOT, AND, OR 2. suluissa oleva evaluoidaan ensin 3. lausekkeen evaluointi vasemmalta oikealla Esim. Tulosta henkilönumerot henkilöiltä, joiden nimi on John White WHERE AND staffno staff fname = John lname = White ; staffno SL21

HELIA TIKO-05 15 (22) Esim. Listaa sellaisten haarakonttoreiden osoitteet, jotka sijaitsevat Lontoossa tai Glasgow:ssa. WHERE OR branchno, street, area, city, postcode branch city = London city = Glasgow ; BRANCH STREET AREA CITY POSTCODE NO B5 22m Deer Rd Sidcup London SW1 4EH B3 163 Main St Patrick Glasgow G11 0QX B2 56 Clover Dr London NW10 6EU

HELIA TIKO-05 16 (22) Hahmontunnistus ~ pattern match ~ noudattaako merkkijono tiettyä hahmoa LIKE (NOT LIKE) % mikä tahansa merkkijono _ mikä tahansa merkki villimerkit SQL:ssä ovat erilaisia kuin 'yleensä'! Esim. sarake LIKE H% sarake LIKE H sarake LIKE %e sarake NOT LIKE H% sarakkeen arvo alkaa H:lla sarakkeen arvo alkaa H:lla ja sitä pitää seurata 4 merkkiä Sarakkeen arvo päättyy e:hen Sarakkeen arvo ei ala H:lla sarake 15#% ESCAPE # sarakkeen arvo 15%

HELIA TIKO-05 17 (22) Esim. Etsi kaikki henkilöt, joiden osoitekentässä on Glasgow -merkkijono WHERE staffno, fname, lname,address staff address LIKE %Glasgow% ; staffno fname lname address SG37 Ann Beech 81 George St,Glasgow PA1 2JR SA9 David Ford 63 Ashby St, Patrick,Glasgow G11 SG5 Susan Brand 5 Gt Western Rd,Glasgow G12

HELIA TIKO-05 18 (22) Joukkoon kuuluminen ~ set membership ~ kuuluuko lausekkeen arvo johonkin arvojoukkoon IN (NOT IN) Esim. Listaa kaikki managerit ja deputyt. WHERE staffno, fname, lname, oposition staff oposition IN ( Manager, Deputy ); staffno fname lname oposition SL21 John White Manager SG5 Susan Brand Manager SG14 David Ford Deputy tai WHERE OR staffno, fname, lname, oposition staff oposition = Manager oposition = Deputy ;

HELIA TIKO-05 19 (22) Arvoväli ~ range ~ kuluuko lausekkeen arvo tiettyjen arvojen väliin BETWEEN AND (NOT BETWEEN AND) Esim. Listaa sellaisten henkilöiden tiedot, joiden palkka on välillä 20 000 30 000 staffno, fname, lname, oposition, salary staff WHERE salary BETWEEN 20000 AND 30000; staffno fname lname oposition salary SL21 John White Manager 30000.00 SG5 Susan Brand Manager 24000.00 tai staffno, fname, lname, oposition, salary staff WHERE salary >=20000 AND salary <=30000;

HELIA TIKO-05 20 (22) Vertailu tyhjä-arvoon ~ testaa onko sarakkeen arvo tyhjä IS NULL (IS NOT NULL) Esim. Etsi sellaisten asuntonäyttöjen katsojien numerot, kohteiden numerot ja päivämäärät, joihin ei liity kommentteja WHERE clientno, propertyno, viewdate viewing comments IS NULL; clientno propertyno viewdate CR56 PG4 26-May-95 CR56 PG36 28-Apr-95

HELIA TIKO-05 21 (22) Lajittelu eli ORDER BY -osa ORDER BY -osaan liitetään niiden sarakkeiden nimet, joiden mukaan lajitellaan Jos lajittelusarakkeita useita, erotetaan ne toisistaan pilkulla lajittelu voi olla nouseva (ASCENDING, ASC, oletus) tai laskeva (DESCENDING, DESC) Esim. Listaa henkilöstö aakkosjärjestyksessä nimen mukaan staffno, fname, lname, salary staff ORDER BY lname, fname; staffno fname lname salary SG37 Ann Beech 12000.00 SG5 Susan Brand 24000.00 SA9 David Ford 18000.00 SA9 Mary Howe 9000.00 SL41 Julie Lee 9000.00 SL21 John White 30000.00

HELIA TIKO-05 22 (22) Esim. Listaa vuokrattavat huoneiston tyypin mukaisessa järjestyksessä propertyno, propertytype, rooms, rent propertyforrent ORDER BY type; Propertyno PropertyType Rooms Rent PL94 Flat 4 400 PG4 Flat 3 350 PG36 Flat 3 375 PG16 Flat 4 450 PA14 House 6 650 PG21 House 5 600 Esim. Listaa vuokrattavat huoneiston tyypin mukaisessa järjestyksessä ja kalleimmat ensin propertyno, propertytype, rooms, rent propertyforrent ORDER BY propertytype, rent DESC; Propertyno PropertyType Rooms Rent PG16 Flat 4 450 PL94 Flat 4 400 PG36 Flat 3 375 PG4 Flat 3 350 PA14 House 6 650 PG21 House 5 600