Zielony Smok - logo witryny

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.