
Apache Derby: tworzenie skryptów SQL
Skrypty w pliku tekstowym *.sql są wygodną formą uruchamiania poleceń SQL. Są szczególnie przydatne przy tworzeniu bardzo skomplikowanych i zaawansowanych baz danych i poleceń oraz przy wprowadzaniu dużych ilości danych, które należy wcześniej starannie przejrzeć.
Umownie – na nasze potrzeby – możemy podzielić skrypty na dwa rodzaje:
- Skrypty ij
- Skrypty SQL
Skrypty ij
Skrypty ij zawierają kod SQL oraz kod języka skryptowego narzędzia ij. Polecenia skryptowe są skryptowymi odpowiednikami poleceń JDBC.
Skrypt firstdb.sql
CONNECT 'jdbc:derby:firstdb;create=true'; CREATE TABLE firsttable ( id INT PRIMARY KEY, name VARCHAR (30) ); INSERT INTO firsttable VALUES (1, 'Mirka'), (2, 'Ula'), (3, 'Jacek') ; SELECT * FROM firsttable; SELECT * FROM firsttable WHERE id=2; DISCONNECT;
Polecenia CONNECT oraz DISCONNECT są poleceniami języka skryptowego narzędzia ij.
Zwróć uwagę, że zgodnie z regułami narzędzia ij linia polecenia kończy się zawsze znakiem średnika. Nawiasy i klamry muszą być sparowane. Polecenia SQL pisane są dużymi literami. W języku SQL małe i duże litery nie są odróżniane. Pisanie komend SQL dużymi literami ułatwia czytanie skryptów.
To co skrypt wykonuje było omówione w recepturze: Narzędzie ij – wbudowana baza danych.
Istotną rzeczą jest, aby plik skryptu był zakodowany w UTF-8, ponieważ baza danych również pracuje w UTF-8.
Skrypty SQL
Skrypty SQL zawierają jedynie polecenia SQL z zakresu dostępnego w Apache Derby.
Skrypt r035.sql
CREATE TABLE temperatura(
id INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1),
val DOUBLE
);
CREATE INDEX i_val ON temperatura (val ASC);
INSERT INTO temperatura (val) VALUES (37.8);
INSERT INTO temperatura (val) VALUES (39.7);
INSERT INTO temperatura (val) VALUES (36.6);
INSERT INTO temperatura (val) VALUES (33.2);
INSERT INTO temperatura (val) VALUES (39.2);
INSERT INTO temperatura (val) VALUES (40.6);
INSERT INTO temperatura (val) VALUES (41.2);
INSERT INTO temperatura (val) VALUES (40.1);
INSERT INTO temperatura (val) VALUES (39.8);
INSERT INTO temperatura (val) VALUES (38.9);
INSERT INTO temperatura (val) VALUES (38.3);
INSERT INTO temperatura (val) VALUES (37.9);
INSERT INTO temperatura (val) VALUES (37.4);
INSERT INTO temperatura (val) VALUES (37.1);
INSERT INTO temperatura (val) VALUES (36.8);
INSERT INTO temperatura (val) VALUES (36.7);
INSERT INTO temperatura (val) VALUES (36.6);
SELECT * FROM temperatura;
Ten typ skryptów będzie również bardzo użyteczny przy pracy z poziomu aplikacji Java używających JDBC.
Uruchamianie skryptów
Uruchamianie skryptów omówię w następnym wpisie.
