Skrypty tekstowe *.sql są wygodną formą uruchamiania poleceń SQL. Sa 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 firsttable.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ą odroż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: praca z wbudowaną bazą 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.

Pliki do ściągniecia

Skrypt r035.zip
Skrypt firstdb.zip
Aktualny (tworzony narastająco) plik module-info.java
Aktualny (tworzony narastająco) plik DerbyUtil.java
Pliki tworzone narastająco zastępują poprzednie pliki o tej samej nazwie i działają dla wszystkich wcześniej opublikowanych przykładów we wszyskich wpisach w projekcie. W przypadku pliku module-info.java może być potrzebne skreślenie niepotrzebnych wpisów.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *