You are on page 1of 23

Andmebaasid

(6EAP)

I praktikum
Mida praktikumides tehakse?
• Õpitakse SQL’i
– Tehakse andmebaas ope (igas praktikumis natuke,
kuni lõpuks saab valmis)
– Tehakse andmebaas edu (kui ope on valmis,
tehakse edu, alustades praktikumis ja lõpetades
kodus (ühe nädala jooksul))
• Õpitakse disainima andmebaasi
– Oma Suur Projekt (rühmatööna)
• Kinnistatakse loengus õpitut teooriat ja tehakse teste
• Vaadeldakse veebiteenustega ja andmebaaside
administreerimisega seotud probleeme
Mõisteid
• Server on arvutisüsteem või selles töötav tarkvara,
mis pakub teatud infoteenust sellega ühenduvatele
klientidele.
• Klient on tarkvara, mis võimaldab suhelda serveriga.
• Rakendustarkvara võimaldab kasutajal teatava
kindla ülesande täitmist.

• Klient ja server võivad olla ka samas arvutis


Tuntumad andmebaaside
juhtsüsteemid ja tegijad
• IBM DB2
• Microsoft SQL Server
• Oracle
• PostgreSQL
• Sybase (SAP company) SQL Anywhere
• MySQLOracle
SQL Anywhere
(tarkvara kättesaadavus)

• Väljapool arvutiklassi kasutamise korral registreeruge ja


laadige alla
• https://www.sap.com/cmp/syb/crm-xu15-int-sqldevft/index.html
• Moodle
– moodle.ut.ee
SQL Anywhere installeerimine

• Kõike pole vaja


• Ultralite, Mobilink, SQL Remote - pole
vajalikud!
• Dokumentatsioon on soovitatav!
Käivitamine Windows keskkonnas ja
andmebaasiga ühenduse võtmine

• Käivitada Sybase Central (juhtimiskeskus – graafilise


liidesega klient, administraatori töövahend)
• Start -> All Programs -> SQL Anywhere 17 -> Sybase Central
– Uue andmebaasi loomiseks Sybase Central abil
• Tools -> SQL Anywhere 17 -> Create Database
– Olemasoleva andmebaasiga tegelemiseks (Sybase Central vahendusel)
• Connections -> Connect with SQL Anywhere 17
• Kohe vaatame täpsemalt 
Andmebaasi loomine
• Käivita Sybase Central ja loo uus andmebaas
– Tools -> SQL Anywhere 17 -> Create Database
– Mõistlik on nõustuda vaikimisi määratud valikutega va mõned
erandid:
• Oma andmebaasi nimeks pane ope (asukohaks loo eraldi kaust ketta
„juure“ lähedal (näiteks: Z:\AB))
• Parooli pikkuseks 3
• Kasutajanimi DBA, parool sql Palun kõigil kasutada sama kasutajanime
ja parooli!
• Kooditabeliks vali UTF-8 ja võta see kasutusele
• Vali variant, mis ühildub varasemate versioonidega
• Arvesta, et komplekti kuulub ka log-fail (ära muuda vaikimisi
seadeid)!
• Kui andmebaas on loodud, palun sulge Central ja vaatame,
kuidas võtta ühendust andmebaasiga, mis on juba loodud.
Olemasoleva andmebaasiga ühenduse
võtmine
• Käivitada klient (Central)
• Ühendada serveris andmebaasiga
või ikoon
• Sisesta kasutaja nimi ja parool (DBA, sql)
• Määrata tegevus: Start and connect a database on this
computer
• Näidata andmebaasi (faili ope.db) asukoht
• Ühenduse võtmisel käivitub server automaatselt

• Kui mõni klient on juba andmebaasiga ühenduse loonud


(server töötab), siis on vaja sisestada vaid kasutaja nimi ja
parool. Tegevuseks peab olema: Connect to running
database on this computer
Nimedest
• Kaks serverit (samas võrgus) ei saa olla sama
nimega
• Kaks andmebaasi sama serveri sees ei saa olla
sama nimega
• dbeng17 -n minuserver
• c:\mina\ope.db c:\tema\ope.db -n teine
SQL Anywhere’iga kaasas
• Interactive SQL (ISQL) – meie põhivahend
(kahe tekstiaknaga klient)
– Käivitub Centralist
• Tools -> SQL Anywhere 17 -> Open Interactive SQL
• Sisestage taas kasutajanimi (DBA) ja parool (sql)

– Käivitub käsurealt
• ISQL (dbisqlc.exe)
• Java põhine (dbisqlg.exe)
SQL Anywhere failid
• Nõutud:
– 1 põhifail (laiendiga .db).
– 1 abifail (laiendiga .log) -> pole tekstifail!
• Andmebaasi esitamisel tuleb esitada mõlemad failid
(ärge muutke log-faili).
• Soovitus:
– Lisaks kõigi ülesannete lahenduste SQL tekstid ühe
tekstifailina (NB! SQL lause lõpeb semikooloniga).
– Võite ka alustades tööd valida ISQL aknas SQL  Start
Logging ja pärast SQL  Stop Logging (.sql fail)
TABEL inimesed

Käivita iSQL ja sisesta tabeli definitsioon (DDL)

CREATE TABLE inimesed (


eesnimi varchar(30) not null,
perenimi varchar(100) not null,
sugu char(1) not null check (sugu in ('m', 'n')),
synnipaev date not null,
sisestatud datetime not null default current timestamp,
isikukood varchar(11),
CONSTRAINT pk_inimesed PRIMARY KEY (isikukood)
);
Centralis
Kirje lisamine ja vaatamine
INSERT INTO inimesed
(eesnimi, perenimi, sugu, synnipaev, isikukood)
VALUES
('Juku', 'Mets', 'M', '1980-02-04', '38002042715');

Lisage kaks kirjet kasutades käsku INSERT

SELECT * FROM inimesed;

* SELECT lauses tähendab kõik. Vali kõik sellest tabelist.

SELECT eesnimi, perenimi FROM inimesed;


Kirje vaatamine
SELECT * FROM inimesed WHERE eesnimi=
‘Juku';
SELECT * FROM inimesed WHERE sugu= 'm';
SELECT * FROM inimesed WHERE isikukood=
'midagi' OR eesnimi = ‘Juku';
SELECT * FROM inimesed WHERE isikukood=
'midagi' AND isikukood = 'midagi';
???
Kirjete muutmine

UPDATE inimesed SET eesnimi = 'Jüri' WHERE eesnimi = 'Juku';


(kui sellist eesnime pole, ei tehta midagi)

INSERT INTO inimesed (eesnimi, perenimi, sugu, synnipaev,


isikukood)
VALUES ('Mati', 'Karu', 'M', '1985-02-04', '38002042715');
(annab vea, kuna selline võti (isikukood) on juba olemas)
Kirjete kustutamine
DELETE inimesed WHERE eesnimi = 'Juku';

DELETE inimesed WHERE eesnimi = 'Jüri';

Ettevaatust!!!
DELETE inimesed;
kustutab kõik kirjed tabelist inimesed (andmete kustutamine).
Kõigi kirjete kustutamiseks kasutatakse käsku TRUNCATE, mis
töötab kiiremini
DROP TABLE inimesed;
Kustutab tabeli (objekti) – tabeli inimesed kirjelduse ja andmed
Kokkuvõtvalt:
CREATE TABLE
INSERT INTO
UPDATE
DELETE
DROP TABLE

SELECT
Tähistused

< > ümbritsevad nimesid


[ ] mittekohustuslik osa
{ } kohustuslik grupeeritud osa – kõik mis nende vahel
on, peab SQL lauses olemas olema
| alternatiivide eraldaja, üks alternatiiv tuleb valida
... kordus
:= see on (defineerimiseks)
suurtähed - SQL keele reserveeritud sõnad
väiketähed - muutujad (nimed, literaalid)
Mõtlemiseks …

INSERT [INTO ] <tabeli nimi> (<väli1>, <väli2>, ...)


VALUES (<väärtus1>, <väärtus2>, ...)

SELECT [DISTINCT ] {*|<väli1>[, <väli2>, ...]}


FROM <tabel1>[, <tabel2>, ...]
WHERE <avaldis> [{AND|OR} <avaldis> ...]

<avaldis> := <väli> {=|<|>|<>|!=} <väärtus>


SQLZOO

http://www.sqlzoo.net/

Ülesanne:
Teha läbi esimesed kolme tutoriali
(„SELECT basics“, „SELECT from
World“ ja „SELECT from Nobel“)

You might also like