32. SQLite 1 - MantsSk/CA_PTUA14 GitHub Wiki

Parsisiųskite DB Browser for SQLite - https://sqlitebrowser.org/

Parsisiųskite duombazės failiuką - https://github.com/robotautas/kursas/blob/master/DB/db1/person.db

Atsidarykite duombazę programoje DB Browser for SQLite ir skiltyje "Execute SQL" galite sekti paskaitos teoriją:

Užklausos

Viena dažniausiai naudojamų SQL užklausų:

SELECT * FROM person

žvaigždutė reiškia 'viską', person - lentelės pavadinimas. Su ja paimama absoliučiai viskas iš lentelės.

galima išrinkti tik stulpelius, kurie mus domina:

SELECT first_name, gender FROM person;

norėdami išrinkti unikalias (nepasikartojančias) reikšmes, po SELECT prirašome DISTINCT:

SELECT DISTINCT gender FROM person;

Pridėję count() galime suskaičiuoti eilučių skaičių

SELECT count(*) FROM person;

WHERE

WHERE naudojame užklausos papildymui kokia nors sąlyga:

SELECT * FROM person WHERE gender="Female";

kitas pavyzdys:

SELECT * FROM person WHERE date_of_birth > date('1980-01-01');

sąlygas galima kombinuoti su OR arba AND:

SELECT * FROM person WHERE date_of_birth > date('1990-01-01') AND gender="Female";

ORDER BY

papildoma sąlyga rezultato išrūšiavimui pagal tam tikrą stulpelį:

SELECT * FROM person WHERE date_of_birth > date('1980-01-01') ORDER BY company;

Gale prirašius DESC gausime atvikštinį rūšiavimą:

SELECT * FROM person WHERE date_of_birth > date('1980-01-01') ORDER BY company DESC;

Duomenų įterpimas

INSERT

duomenų įterpimui naudojame INSERT, pvz:

INSERT INTO person VALUES(
"Jotautas", "Treigys", "[email protected]", "Male", date('1981-04-25'), "FTMC"
);

galime įterpinėti tik į konkrečius stulpelius:

INSERT INTO person 
	(first_name, last_name, gender, date_of_birth, company)
VALUES
	("Antanas", "Šampanas", "Male", date('1979-02-02'), "Microsoft");

UPDATE

Norėdami pakeisti įrašus, naudojame UPDATE:

UPDATE person SET email = "[email protected]" WHERE first_name = "Antanas";

kitas pvz.:

UPDATE person SET company = "Microsoft" WHERE date_of_birth >= date('1990-01-01') AND gender = "Female";

(Nelabai korektiškas pvz...)

Galime pakeisti keleto stulpelių reikšmes:

UPDATE person SET first_name = "Mikrosoftas", last_name = "Mikrosoftauskas" WHERE company = "Microsoft";	

išrinkę viską pagal kompaniją 'Microsoft', gausime:

DELETE

Triname su DELETE. Pvz.:

DELETE FROM person where company = "Microsoft";

jeigu nenurodome sąlygos, bus ištrintos visos eilutės:

DELETE FROM person;

tas pats įvyktų, jeigu naudotumėm

TRUNCATE person;

jeigu norime ištrinti lentelę su visa struktūra:

DROP TABLE person;

Parsisiųskite lentelę "darbuotojai.db", atsidarykite ją programoje DB Browser for SQLite ir skiltyje "Execute SQL" atlikite šias SQL užklausas:

  • Išrinkite visus duomenis iš lentelės “DARBUOTOJAI”.
  • Išrinkite visus duomenis iš stulpelio “GIMIMO_DATA” - lentelėje “DARBUOTOJAI”.
  • Išrinkite visus duomenis iš stulpelių “VARDAS”,”PAVARDĖ”, “PAREIGOS” - lentelėje “DARBUOTOJAI”.
  • Išrinkite unikalias reikšmes iš stulpelio SKYRIUS_PAVADINIMAS - lentelėje “DARBUOTOJAI”.
  • Išrinkite visus duomenis apie darbuotojus, kurie dirba Gamybos skyriuje.
  • Išrinkite duomenis, kokias pareigas užima Giedrius
  • Išrinkite visus duomenis apie darbuotojus, kurių gimimo data - 1986-09-19
  • Išrinkite darbuotojų vardus, kurių pavardės yra Sabutis
  • Išrinkite duomenis (vardą ir pavardę) apie programuotojus iš Gamybos skyriaus
  • Įterpkite į lentelę “DARBUOTOJAI” naują darbuotoją, užpildydami visus reikiamus laukus (vardą, pavardę, gimimo metus, pareigas, skyriaus pavadinimą).
  • Įterpkite į lentelę “DARBUOTOJAI” naują darbuotoją, užpildydami tik laukus (vardą, pavardę, gimimo metus). Pareigas ir skyriaus pavadinimą palikite neužpildytus.
  • Užpildykite likusius tuščius laukus “DARBUOTOJAI” lentelėje, jūsų prieš tai įterptame įraše. Priskirkite darbuotojui pareigas ir skyrių.
  • Ištrinkite lentelės “DARBUOTOJAI” įrašą, kurio gimimo data yra tokia, kurią jūs sukūrėte.
  • Įterpkite, du darbuotojus, pavarde Antanaitis kurių pareigos būtų “Programuotojas”.
  • Pakeiskite, abiejų Antanaičių pareigas į “Testuotojas” vienu sakiniu.
  • Suskaičiuokite, kiek įmonėje dirba Testuotojų.