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
Kuidas praktikumides tehtud tööd arvestatakse?
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 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)!
Olemasoleva andmebaasiga ühenduse võtmine Käivitada klient (näiteks: Central) Sisestada 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
Nõutud: SQL Anywhere failid 1 põhifail (laiendiga.db). 1 abifail (laiendiga.log) -> pole tekstifail! Soovitus: Andmebaasi esitamisel tuleb esitada mõlemad failid (ärge muutke log-faili andmebaas ei pruugi muudetud log-faili korral enam avaneda). Lisaks kõigi ülesannete lahenduste SQL tekstid ühe tekstifailina. (NB! SQL lause lõpeb semikooloniga.)
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 meie põhivahend (kahe tekstiaknaga klient) Käivitub Centralist Tools -> SQL Anywhere 17 -> Open Interactive SQL Käivitub käsurealt ISQL (dbisqlc.exe) Java põhine (dbisqlg.exe)
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) );
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 eesnimi, perenimi FROM inimesed;
Kirje vaatamine SELECT * FROM inimesed WHERE isikukood= 'midagi'; SELECT * FROM inimesed WHERE sugu= 'm'; SELECT * FROM inimesed WHERE isikukood= 'midagi' OR isikukood = 'midagi'; 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 )