Tietokantojen perusteet, s 1999 SQL- osa Harri Laine 1. SQL -ohjelmistojen markkinaosuuksia SQL. SQL - historiaa. SQL - standardointi

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

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

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

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

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

SQL-kielen perusteet. Tietokantojen perusteet

4.3.1 SQL tietokanta SQL:n kirjoitusasu SQL määrittelykielenä... 36

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

3. Taulujen määrittely ja muuttaminen

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

5 SQL TIETOKANTAKIELI...33

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

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

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

Kyselyn yleisrakenne:

SQL - STRUCTURED QUERY LANGUAGE

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

SELECT-lauseen perusmuoto

4.3.4 SQL kyselyt... 45

CSE-A1200 Tietokannat

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

Tietokantojen perusteet, syksy 1999 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

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

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

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

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

Näkymät ja tiedon suojaus

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki

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

Tietokantakurssit / TKTL

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

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

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

Relaatiomalli ja -tietokanta

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

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

Relaatioalgebra. Kyselyt:

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

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

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

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

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

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

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

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

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP

Relaation tyhjyyden testaaminen

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, )

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1.

HELIA 1 (12) Outi Virkki Tiedonhallinta

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

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

HELIA 1 (15) Outi Virkki Tiedonhallinta

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra Harri Laine 1. Relaatioalgebra

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

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

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

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

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

Yleinen SQL. Yleinen SQL. SQL:n kehitys

HELIA 1 (17) Outi Virkki Tiedonhallinta

2. Käsiteanalyysi ja relaatiomalli

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tietokannat II -kurssin harjoitustyö

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

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

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Näkökulmat tietoon. Abstraktiotasot tiedon käsittelyssä

Tietokannat II -kurssin harjoitustyö

SQL:N PERUSTEET MARKKU SUNI

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

Helsingin yliopisto/ tktl D Tietokantojen perusteet, s 2000 Relaatioalgebra. Harri Laine 1. Relaatioalgebra.

SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito. SQL - Tietokannan ylläpito

Lohdutus - tietokantadokumentti

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

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

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

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

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

Makrojen mystinen maailma lyhyt oppimäärä

Helsingin yliopisto/tktl Tietokantojen perusteet, k 2003 Relaatiomallin peruskäsitteet Harri Laine 1. Tietomallit. Näkökulmat tietoon

CSE-A1200 Tietokannat

Transkriptio:

SQL SQL:llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle tai tiedostoon sovellusohjelman käyttöön tehdä päivityksiä tietokantaan (muuttaa dataa) vuorovaikutteisesti sovellusohjelman kautta SQL -ohjelmistojen markkinaosuuksia 1996 Worldwide RDBMS Marketshare Oracle 9 % 6 % 13 % Informix Sybase MSFT SQLServer 19 % Other 53 % source: Gartner March 1997 SQL - historiaa System R (IBM:n tutkimuslaboratorio) 1972-1973 SEQUEL = Structured English QUEry Language Myöhemmin SQL Kaupallisia toteutuksia n. 1980 -> SQL - standardointi ANSI 1986 {noin 40 sivua} ISO 1987 ISO 1989 { + noin 20 sivua} ISO/ANSI SQL-92 {noin 1000 sivua} SQL-3 (työnimi) yhä tekeillä, pilkottu osiin SQL/CLI (call level interface) -1996 SQL/PSM (persistent stored modules) - 1997 SQL-tietokanta SQL-tietokanta muodostuu yhden tai useamman kaavion (schema) määrittelemistä tauluista (table) Kullakin kaaviolla on omistaja, joka omistaa myös kaavion määrittelemät taulut. Taulu muodostuu riveistä (row) Taulu vastaa relaatiomallin relaatiota, mutta sallii etenkin kyselyiden tuloksissa samanlaisen rivin toistumisen (duplikaatit) {monijoukko, multiset} SQL- määrittelykielenä Käyttäjät Kaaviot Perustaulut (base table) määritellään rivit fyysisesti olemassa Johdetut taulut (derived table) tästä myöhemmin DML Data Manipulation Language (tiedon) käsittelykieli DDL Data Definition Language (tiedon) määrittelykieli SQL:ssä molemmat! Harri Laine 1

SQL-kielestä SQL-kieli on avainsanat, taulu- käyttäjä ja sarakenimet voi kirjoittaa joko suur- tai pienaakkosina eli select merkki SELECT MerKKI Tietokannassa olevan datan suhteen kieli on kuitenkin herkkä kirjainmuodolle eli Merkki= Ford Merkki= FORD SQL-määrittelykielenä: käyttäjät create user username identified by password Lauseessa voi olla lisänä tkhj-kohtaisia lisämääreitä Käyttö edellyttää tietokannanhoitajan (database administrator, dba) oikeuksia. Tietokannanhoitaja on eräs käyttäjärooli. Käyttäjille voidaan myöntää rooleja grant role to user -lauseella alter user username identified by password salasanan vaihto, sallittu kaikille SQL-määrittelykielenä: käyttäjät Käyttäjistä pääsee helposti eroon komennolla drop username [cascade] hakasulkeet osoittavan valinnaisen osan jos cascade on mukana käyttäjän omistamien taulujen olemassaolo ei estä käyttäjän eliminointia vaan ne hävitetään samalla SQL-määrittelykielenä: käyttäjät Käyttäjällä on kaikki oikeudet omistamiinsa tauluihin. Hän voi luovuttaa oikeuksia myös muille komennolla grant operaatiot on kohde to {username role public } operatiot::= all, select, insert, update, delete, kohde::= taulu, johdettu taulu, sarakejoukko, Luvat voi myös perua: revoke operaatiot on kohde from {username role public } SQL-määrittelykielenä: kaaviot create schema authorization username nimeää kaavion ja kytkee sen omistajaan ei tarjolla kaikissa tkhj:ssä Standardin mukaan onnistuisi myös drop schema [cascade], joka hävittäisi koko kaavion määrittelemän osan tietokantaa create table tablename ( column definition 1,., column definition n [, constraint 1, ] ) sarakemäärittely ::= column_name datatype [not null] [default value] [ column constraint ] Harri Laine 2

Datatype ilmoittaa sarakkeen tietotyypin. Tietotyyppiin saattaa liittyä kokomääritys Merkkijonot character [varying] [(maksimipituus)] kiinteän (myös char) tai vaihtuvanpituinen (myös varchar) merkkijono, maksimipituuden yläraja järjestelmäkohtaista puuttuva maksimipituus = 1 nimi varchar(40), hetu char(11), Binäärinen tieto bit [varying] {(maksimipituus)} binääristä tietoa, esim. kuvia maksimipituuden yläraja järjestelmäkohtaista joissain järjestelmissä on erotettu erittäin pitkät merkkijonot (large varchar, long) ja binääritiedot (large binary, blob) omiksi tietotyypeikseen esim Oraclessa varchar maksimi 2000 ja long 64G ei voi välttämättä käyttää hakuehdoissa Tarkkoja numeerisia tyyppejä numeric [(precision [,scale])] decimal [(precision [,scale])] = dec integer = int (4 tavua) smallint (2 tavua) Likiarvoisia numeerisia tyyppejä: float (8 tavua?), real (4 tavua), double precision (8 tavua, järjestelmäkohtainen), eksponentti ja mantissa erikseen precision = kokonaispituus numeropaikkoina» Oraclella max 44 digits scale = desimaaliosan pituus decimal (5,2) maksimiarvo: 999.99 Aikoja Date päiväys Time kellonaika Timestamp päiväys ja kellonaika ( =Oraclella Date) Interval aikaero Aikoja voidaan verrata ja niillä voi laskea this_day date, this_day + 3 on kolmen päivän päästä Not null - määre kieltää tyhjäarvot määrettä on käytettävä pääavainsarakkeiden yhteydessä reknro varchar(8) not null, Default -määreellä voidaan määritellä oletusarvo, joka sarakkeeseen sijoitetaan, jos lisäysoperaation yhteydessä ei anneta sarakkeelle arvoa oletusarvoisesti tyhjäarvo (null) Harri Laine 3

Eheysehdot liittävät tauluun rajoitteita. Primary key osoittaa pääavaimen, Foreign key puolestaan viiteavaimen taulu voi sisältää monta viiteavainta, mutta enintään yhden pääavaimen, joka voi koostua useasta sarakkeesta yksisarakkeisten kohdalla rajoitteet voidaan esittää sarakekohtaisina, muuten taulukohtaisena Create table harjoitusryhma ( kurssitunnus varchar(10) not null, ryhmanro numeric(3) not null,.., primary key (kurssitunnus, ryhmanro), foreign key (kurssitunnus) references kurssi(kurssitunnus) ) create table auto ( reknro varchar(8) not null primary key,.) Viiteavain määrittelyyn voidaan liittää toimintasääntö operaation rikkoessa viiteeheyden foreing key (sarakkeet) references taulu [(sarakkeet2)] [ on delete {restrict cascade nullify} ] [ on update {restrict cascade nullify} ] viitteen kohde katoaa: restrict estää rikkovan operaation (oletus) cascade vyöryttää, poistaa tai muuttaa viittaavat rivit nullify tyhjentää viittaukset SQL-kysely perusteet Kyselyn yleisrakenne: select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] Kysely tuottaa nimettömän tulostaulun. select merkki, reknro vari = punainen and merkki like Fo% order by merkki, reknro Vuoden 1996 mallia olevien punaisten merkiltään Fo -alkuisten autojen merkki ja rekisterinumero merkin ja saman merkin sisällä rekisterinumeron mukaan järjestettynä select merkki, reknro projektio vari = punainen and merkki like Fo% order by merkki, reknro Vuoden 1996 mallia olevien punaisten merkiltään Fo -alkuisten autojen merkki ja rekisterinumero merkin ja saman merkin sisällä rekisterinumeron mukaan järjestettynä Harri Laine 4

select merkki, reknro valinta vari = punainen and merkki like Fo% order by merkki, reknro : Tulostietomäärittely Tulostietomäärittely määrittelee tulostaulun sarakkeiden nimet ja niiden sisällön koostuu jonosta pilkulla erotettuja alkiomäärittelyjä alkiomäärittely: lauseke [ [AS] uusinimi ] Vuoden 1996 mallia olevien punaisten merkiltään Fo -alkuisten autojen merkki ja rekisterinumero merkin ja saman merkin sisällä rekisterinumeron mukaan järjestettynä lauseke määrittele sisällön ja oletusnimen. Se on yksinkertaisemmillaan sarakenimi tai vakio, mutta voi sisältää laskentaoperaatioita ja funktioita - alkion nimeksi tulee esim. Oraclessa oletusarvoisesti lauseke sellaisenaan ellei sitä nimetä uudelleen : Tulostietomäärittely Lausekkeessa, esim: Pituus, sarakenimi Paino / Pituus *0.25 aritmeettinen lauseke Etunimi Sukunimi merkkijonojen liimaus 30 numeerinen vakio length(sukunimi) merkkijono funktio substring(sukunimi,1,1) osamerkkijono null tyhjäarvo ifnull(sukunimi, ) tyhjäarvon korvaus SQL:ssä on tarjolla muiden ohjelmointikielten tapaan joukko valmiita funktioita tuloksen muokkaukseen merkkijonofunktiot (täyttö, liimaus, korvaus, muunnos, etsintä, osan eristys, jne) numeeriset funktiot (pyöristys, katkaisu, itseisarvo,..) päiväysfunktiot (päivän nimi, kuukauden nimi, kuukauden päästä, kuun viimeinen, ) yleiset funktiot (valinta arvon perusteella, tyhjäarvon korvaus,..) systeemifunktiot (käyttäjätunnus,nykyhetki,...) ongelma: funtioiden nimet ja valikoima vaihtelevat järjestelmäkohtaisesti - vaihtelua Oraclessa: (tulos suomeksi) select 'Tänään on ' lower( rtrim(to_char(sysdate,'day')) to_char(sysdate, DD. )) rtrim(to_char(sysdate,'month')) ta from dual (dual olkoon taulu, jossa on yksi rivi) Solidissa: (tulos englanniksi) select To-day is dayname(curdate()) convert_char(dayofmonth(curdate())) th of MonthName(curDate()) from dual Tulostietomäärittely: * (tähti) tulostauluun valitaan kaikki from osassa mainittujen taulukkeiden sarakkeet joissain järjestelmissä sallitaan myös muoto taulu.* jolloin mukaan tulevat kaikki tuon taulun sarakkeet Harri Laine 5

Tarkentaminen jos sarake esiintyy useassa kyselyn from-osan taulussa on siihen viitattaessa käytettävä tarkennetta. Sarakeviittaus on muotoa [ [ [tietokanta.]kaavio.]taulu.]sarakenimi (jos kaaviota ei ole erikseen nimetty kaavio=taulun omistajan tunnus) tktl.laine.auto.reknro: kannan tktl käyttäjän laine taulun auto sarake reknro Tulostietoluettelon elementeille lasketaan normaalitapauksessa arvo jokaista valintaehdot täyttävää riviyhdistelmää kohden select merkki vari = punainen and merkki like Fo% order by merkki Jos taulussa auto olisi 100 punaista vuoden 1996 Fordia tulisi merkki Ford tulostauluun 100 kertaa. Toimii siis toisin kuin relaatioalgebran projektio Projektion kaltainen toistuvien arvojen karsinta saadaan aikaan liittämällä tulostietomäärittelyn alkuun avainsana distinct select distinct merkki vari = punainen and merkki like Fo% order by merkki Nyt Ford tulisi tulokseen vain kerran Normaalisti esimerkiksi raporttiin ei haluta samanlaisia, samaa asiaa ilmaisevia rivejä moneen kertaan. Jos tällaisia voisi tulla, on ne syytä karsia distinct-määreellä. Distinct-määrettä ei tarvita, jos esimerkiksi avaimen mukanaolo takaa rivien erilaisuuden Aina ei ole syytä karsia toistuvia arvoja olkoon henkilö(,palkka, ) taulu, josta halutaan laskea työntekijöiden keskipalkka. Tällöin pitää palkat hakea select palkka from työntekijä, eikä select distinct palkka from työntekijä. select palkka from työntekijä, 9000, 9000,9000, 9000,12000,25000 keskiarvo: 12167 select distinct palkka from työntekijä 9000,12000,25000 keskiarvo: 15333 From-osassa on oltava mukana ainakin ne taulut, joista halutaan tietoja tulokseen luettelossa tauluke (table constructor, taulun kaltainen olio): taulu (useissa SQL toteutuksissa vain tämä) alikyselyn tulostaulu liitostaulu = liitoksen tulostaulu Harri Laine 6

Jos from-osassa on vain yksi taulu: tulokseen mukaan ne taulun rivit, jotka täyttävät where- osassa annettavan valintaehdon. Select * from taulu ilman valintaehtoa tuottaa koko taulun sisällön epämääräisessä järjestyksessä. (epämääräinen järjestys = ei taata että rivit tulevat aina samassa järjestyksessä) jos where-osassa on ehtoja ne vaikuttavat kuten valintaehdot relaatioalgebassa Valintaehto on SQL:ssä monipuolinen. Vertailtavina sarakkeet, vakiot, näistä muodostetut lausekkeet, funktiot Vakion esitysmuoto: merkkitieto ja päiväykset hipsuissa ( arvo ) numeeriset ilman hipsuja ( 9999 ) päiväyksen esitystapa riippuu järjestelmästä ja kieliasetuksista: Solid: 1999-9-22, Oracle: asetuksilla valittavissa, esim: tai 22-SEP-1999 tai 1999-9-22 tai.. Vertailuoperaatoreina =,<,>,<=,>=,<> (myös muodossa!=) arvo in (joukko) arvo between ala and ylä = arvo>= ala and arvo<=ylä merkkijonoille: arvo like maski maskissa % on mikä tahansa merkkijono ja _ (alaviiva) mikä tahansa merkki arvo is null, arvo is not null Reknro like OG% {kaikki OG alkuiset} Reknro like 23 {kuusimerkkiset 23 loppuiset} merkki in ( Ford, Opel, Volvo ) = merkki= Ford or merkki= Opel or merkki= Volvo Paikkakunta < Helsinki aakkosvertailu (suhtautuminen paikallismerkistöön voi vaihdella) Harri Laine 7