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.