DB sukūrimas ir užpildymas duomenimis
Duomenų bazės kūrimas Naujas bendrąsias DB kuria sistemos administratorius. Lokalias DB gali kurti darbo stoties vartotojasadministratorius. DB kuriama: kompiuterio diske, disko kataloge ar atskirose bylose - DB įrenginyje (angl. database device).
DB kūrimo sakiniai SQL standarte nėra sakinių duomenų bazėms kurti. Daugelyje DBVS yra sakinys CREATE DATABASE <DB vardas> CREATE DATABASE Darbai DROP DATABASE Darbai
Duomenų bazės pildymas Kuriamos lentelės Stulpelių sąrašas Jų tipai Įterpiami duomenys
Duomenų tipai Kuriant lentelę reikia išvardinti jos stulpelius, kiekvienam būtina nurodyti galimų reikšmių aibę - stulpelio tipą. DB naudojami šie duomenų tipai: Simboliniai duomenys Skaičiai Dvejetainiai duomenys Datos Laikas Loginiai duomenys
Simboliniai duomenys Simbolių eilutė turi simbolių skaičiaus atributą - maksimalų ilgį. Fiksuoto ilgio simbolių eilutės: CHARACTER(n) Tinka fiksuoto ilgio duomenims, pvz.: asmens kodas - CHARACTER(11) Kintamo ilgio: CHARACTER VARYING(n) Tinka kintamo ilgio duomenims, pvz.: vardams
Skaitiniai sveikieji duomenys SMALLINT sveikieji skaičiai (2b) [-32 768; 32 767]. INTEGER 'dideli' sveikieji skaičiai (4b) [-2 147 483 648; 2 147 483 647]. BIGINT 'ypač dideli' sveikieji skaičiai (8b) [-9223372036854775808; 9223372036854775807]
Sveikieji slankaus kablelio duomenys NUMERIC(viso-sk, po-kablelio) NUMERIC(viso-sk) Pvz.: 23.5141 viso 6 skaitmenys, 4 po kablelio Maksimalus ilgis priklauso nuo DBVS Tinka pinigams skaičiuoti Speciali reikšmė 'NaN' Sinonimas - DECIMAL
Slankaus kablelio duomenys REAL slankaus kablelio (4b) 6 dešimtainiai skaitmenys DOUBLE PRECISION (8b) 15 dešimtainių skaitmenų
Dvejetainiai duomenys BYTEA Realizacija priklauso nuo DBVS
Datos duomenys DATE '1999-01-08' TIME laikas TIMESTAMP data ir laikas DATE ir TIME vaizdavimas priklauso nuo terpės (locale) '2005.01.01', '12:00:00', '2005-01-01-12.15.55.330000' DBVS visada 'supranta' ISO 8601 datą ir laiką: '2005-01-01', '12.00.00'
Loginio tipo duomenys BOOLEAN Konstantos: TRUE, 't', 'true', 'y', 'yes', '1' FALSE, 'f', 'false', 'n', 'no', '0'
Lentelės apibrėžimas Lentelės (struktūros) apibrėžimas 'aktyvus' veiksmas. Lentelės kuriamos SQL DDL sakiniu CREATE TABLE Kuriant (apibrėžiant) lentelę būtinai nurodoma: lentelės vardas, galima patikslinti schema lentelės stulpelių vardai ir jų tipai.
DB 'Darbai' lentelės CREATE TABLE Vykdytojai ( Nr INTEGER NOT NULL, Pavardė CHARACTER VARYING(30) NOT NULL, Kvalifikacija CHARACTER VARYING(16) DEFAULT 'Informatikas', Kategorija SMALLINT, Išsilavinimas CHARACTER(10) ); NOT NULL - stulpelis negali įgyti NULL reikšmės. DEFAULT - numatytoji reikšmė.
CREATE TABLE Projektai ( Nr INTEGER NOT NULL, Pavadinimas CHARACTER VARYING(254) NOT NULL, Svarba CHARACTER(10) DEFAULT 'Vidutinė', Pradžia DATE, Trukmė SMALLINT); CREATE TABLE Vykdymas ( Projektas INTEGER NOT NULL, Vykdytojas INTEGER NOT NULL, Statusas CHARACTER VARYING(32) DEFAULT 'Programuotojas', Valandos SMALLINT);
Naujų duomenų įvedimas Pirmoji forma: INSERT INTO <lentelės vardas> [(<stulpelio vardas> {, <stulpelio vardas>})] VALUES (<reikšmė> {,<reikšmė>}) <reikšmė> := <reiškinys> NULL DEFAULT
Pavyzdžiai INSERT INTO Vykdytojai (Nr, Pavardė, Kvalifikacija, Kategorija, Išsilavinimas) VALUES (6, 'Baltakis', 'Informatikas', 2, NULL); INSERT INTO Vykdytojai VALUES (6, 'Baltakis', 'Informatikas', 2, NULL); INSERT INTO Vykdytojai VALUES ('Baltakis', 6, 'Informatikas', 2, NULL); klaida INSERT INTO Vykdytojai VALUES (6, 'Informatikas', 'Baltakis', 2, NULL); klaida? INSERT INTO Vykdytojai (Nr, Pavardė, Kategorija) VALUES (6, 'Baltakis', 2)
Duomenų įvedimas antroji forma INSERT INTO <lentelės vardas> [(<stulpelio vardas> {, <stulpelio vardas>})] <užklausa> Perkelti eilutes apie seniai pasibaigusius projektus į kitą lentelę: INSERT INTO Seni_Projektai SELECT * FROM Projektai WHERE Pradžia + CAST(Trukmė 'MONTHS' AS INTERVAL) < CURRENT DATE INTERVAL '1 YEAR'
Duomenų importas/eksportas Duomenys į lentelę gali būti įvedami ir tarnybinėmis programomis. Duomenų importas - duomenų iš failo įvedimas į lentelę. Duomenų eksportas - užklausos rezultato išsaugojimas faile.
Duomenų šalinimas DELETE FROM <lentelės vardas> [WHERE <paieškos sąlyga>] Visos (!) tenkinančios paieškos sąlygą eilutės pašalinamos. Pašalinamos visos lentelės Vykdymas eilutės: DELETE FROM Vykdymas Pašalinamos perkeltos į 'archyvą' eilutės: DELETE FROM Projektai WHERE Pradžia + CAST(Trukmė 'MONTHS' AS INTERVAL) < CURRENT DATE INTERVAL '1 YEAR'
Dauomenų šalinimas - pavyzdys Baltakiui išėjus iš darbo: DELETE FROM Vykdymas WHERE Vykdytojas = (SELECT Nr FROM Vykdytojai WHERE Pavardė = 'Baltakis'); DELETE FROM Vykdytojai WHERE Pavardė = 'Baltakis';
Šalinamų duomenų peržiūra Prieš vykdant sakinį DELETE FROM <lentelės vardas> WHERE <paieškos sąlyga> rekomenduojama įvykdyti SELECT FROM <lentelės vardas> WHERE <paieškos sąlyga>
Esamų duomenų keitimas UPDATE <lentelės vardas> SET <stulpelio vardas> = <reiškinys> {,<stulpelio vardas> = <reiškinys>} [WHERE <paieškos sąlyga>] Atnaujinamos visos (!) eilutės, tenkinančios paieškos sąlygą. Gražulytė baigė VU ir dėl to jai pakeliama kategorija vienetu: UPDATE Vykdytojai SET Išsilavinimas='VU',Kategorija=Kategorija+1 WHERE Pavardė = 'Gražulytė'
Lentelių šalinimas DROP TABLE <lentelės vardas> Pvz.: DROP TABLE Vykdymas