- データベース管理システム(DBMS)
- データベースとは、データの組織的な集合であり、そのデータへのアクセス、管理、変更等の制御が容易に行えるようにしたもの が、『デー タベース管理 ステム( DBMS)』 です。多くの場合は単にデータベースと呼んでいます。
- リレーショナルデータベース管理システム(RDBMS)
- 『データベース管理システム』の代表的なものです。列と行を持つテーブル(表)の集合で、デ―タ1件が行単位で格納されま
す。データの書
き込みや処理要求には『構造化クエリ言語(SQL)』を使用します。NoSQLデータベースやオブジェクト指向データベースなどの他の構造の
データベースと区別する意味で『リレーショナルデータベース』と呼びます。
主なRDBMSには商用の「Oracle]や「SQLServer」の他に「MySQL」や「PostgreSQL」など無料で 使えるオープ ンソースのデータベースもあります。
- データベースとは何か
- MZ Platformとデータベースの接続
- JDBCドライバーは各社データベースのインストール時に同時にインストールされるか、インストールCDに同梱されていま す。
HPから入 手 できる場合もあります。
ダウンロードの際は必ず使っているデータベース、OS、JREのバージョンに適合しているか 確認してください。 - SQLについて
- データ操作言語(Data Manipulation Language) データベースに対してデータを追加・更新・削除などを行うためのSQL命令文の種類で、 SELECT(データの検索)、 INSERT(データの追加)、 UPDATE(データの更新)、DELETE(データの削除)などがあります。
- データ定義言語(Data Definition Language) データベースやテーブルなどを作成・削除したり、設定を変更したりするためのSQL命令文です。
- データ制御言語(Data Control Language) GRANT(権限付与) REVOKE(権限剥奪) COMMIT(トランザクションの確定)など、アクセス権の付与やをデータベースの状態制御のための命令文です。
- データベースの準備
- CREATE DATABASE [データベース名] ここで言う『データベース』はリレーショナルデータベース管理システムである「MySQL」ではなく、「MySQL」の 中に作るリレーショナルデータベース(RDB)を指します。
- USE [デーータベース名] データベース名を指定せずに接続した場合は、使用するデータベースを指定します。
- CREATE TABLE [テーブル名] (列名 データ型,・・・) データベースやテーブルなどを作成・削除したり、設定を変更したりするためのSQL命令文です。
- データの追加
- INSERT INTO [テーブル名] (列名1, 列名2, ...) VALUES (値1, 値2, ...)
- または INSERT INTO [テーブル名] VALUES (値1, 値2, ...) 値を入れる列名と値を指定します。 全ての列の値を指定する場合は、列名は省略可です。
- データの検索
- SELECT 列名1,列名2, ... FROM [テーブル名]
検索して表示したい列名を指定します。
「Select * from テーブル名」でテーブル全列のデータを取得できます。 - SELECT 列名1, 列名2, ... FROM [テーブル名] WHERE [条件] 条件を指定して取得するデータを抽出することができます。
- データの更新
- UPDATE [テーブル名]SET 列名1=値1 WHERE [条件] 値を更新する列名と値を指定します。
- データの削除
- DELETE FROM [テーブル名] WHERE [条件] 条件を指定しないとテーブル全体が削除されます。
- DROP [テーブル名またはデータベース名] テーブルやデータベース全体を削除します。
- テーブル構造の変更
- ALTER TABLE テーブルや列名の変更、列の追加や削除、データ型の変更などができます。
- MySQLのデータ型
代表的なデータベースとドライバファイル
MZ PlatformからデータベースへはJavaの技術を介して接続します。JDBC(データベースへアクセスするためのJava標準API)のドライバーファイルが用意されていれば、MZ Platformからアクセス可能で す。
(チュートリアルでは世界中で広く使われているオープンソースデータベースの『MySQL』を例に取上げています。)
データベース名 |
Webページ (23年4月現在)/JDBCドライバーファイル名 |
MySQL |
https://www.mysql.com/jp/ https://dev.mysql.com/downloads/mysql/ mysql-connector-java-8.0.xx-bin.jar (Connector/J 8.0.xx) |
MariaDB | https://mariadb.com/ mariadb-java-client-3.1.3.jar |
PostgreSQL |
https://www.postgresql.jp/
https://jdbc.postgresql.org/ postgresql-42.6.x.jar |
SQLite | https://www.sqlite.org/index.html sqlite-jdbc-3.4x.x.x.jar |
H2 | https://www.h2database.com/html/main.html h2-xxxx.jar |
Oracle |
https://www.oracle.com/jp/index.html ojdbc8.jar, ucp.jar |
Micrsoft SQL Server |
https://www.microsoft.com/ja-jp/sql-server/sql-server-downloads mssql-jdbc-12.2.0.jre8.jar |
データベースへの接続文字列
データベースアクセスコンポーネントの引数設定
MZ Platformからデータベースへ接続するには、[データベースアクセス]コンポーネントのメソッド「データベースに
接続する (String,String,String,String)」を使用します。
引数1~4までの設定情報は以下の通りです。
基本的にJavaのプログラ ムから接続するときと同様になります。
MySQL |
||
引数1 |
ドライバ名 |
com.mysql.jdbc.Driver (MySQL5.7まで) |
引数2 |
データベースのURL |
jdbc:mysql://ホスト名:3306/データベース名 |
引数3 |
ユーザ名 |
(必須) |
引数4 |
パスワード |
(必須) |
MariaDB |
||
引数1 | ドライバ名 | org.mariadb.jdbc |
引数2 | データべ―スのURL | jdbc:mariadb://ホスト名:3306/データベース名 例) jdbc:mariadb://localhost:3306/DBName |
ユーザー名、パスワード必須 | ||
PostgreSQL |
||
引数1 | ドライバ名 | org.postgresql.Driver |
引数2 | データベースのURL |
jdbc:postgresql://ホスト名:ポート名/データベース名 例)jdbc:postgresql://localhost:5432/DBName |
ユーザー名、パスワード必須 | ||
SQLite |
||
引数1 | ドライバ名 | org.sqlite.JDBC |
引数2 | データベースのURL | jdbc:sqlite:データベースファイルまでのパス 例)jdbc:sqlite:C:\MZPlatform\sqLite\test.db |
ユーザー名、パスワードは無し | ||
H2 |
||
引数1 | ドライバ名 | org.h2.Driver |
引数2 | データベースのURL | jdbc:h2:データベースファイルまでのパス 例)jdbc:h2:~/test(組み込みモード) jdbc:h2:tcp://サーバー名/ファイルまでのパス(サーバーモード) |
ユーザー名(スーパーユーザー:sa)、パスワード必須 | ||
Oracle |
||
引数1 | ドライバ名 | oracle.jdbc.driver.OracleDriver |
引数2 | データベースのURL | jdbc:oracle:thin:@HOSTNAME:1521/DATABASENAME 例)jdbc:oracle:thin:@localhost:1521:ORCL |
ユーザー名、パスワード必須 | ||
SQLServer |
||
引数1 | ドライバ名 | com.microsoft.sqlserver.jdbc.SQLServerDriver |
引数2 | データベースのURL | jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]] 例)jdbc:sqlserver://localhost;encrypt=true; databaseName=AdventureWorks;integratedSecurity=true; |
ユーザー名、パスワード必須 |
SQLの命令の種類
SQL(構造化クエリ言語)はリレーショナルデータベース(RDBMS)を操作するための言 語です。データベースに対して命令を出して、必要なデータを格納したり、 格納したデータを取り出したりすることができ ます。
CREATE(テーブルの作成)、ALTER(テーブルの設定変更)、DROP(テーブルの削除)、TRUNCATE(テーブルデー タの削除)な どがあります。
データベースのテーブル構成は、最初に定義した後で頻繁に変更することはありませんが、データベースを作成、管理するときに必要な言 語です。
基本的なSQL文
条件を付けて更新するデータを限定することができます。
データベース完成後に構造の変更を頻繁に行うことは、あまりありません。
-
MySQLのデータ型とMZ Platformのテーブルに設定したときのデータ型は以下の通りです。
MySQLデータ型 | MZ Platformテーブルでの列型 |
---|---|
TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT | java.lang.Integer |
FLOAT | java.lang.float |
DOUBLE | java.lang.double |
DECIMAL | 実数型 |
BIT | 文字列型 |
DATE、DATETIME、TIMESTAMP、TIME、YEAR | 日付型 |
CHAR、VARCHAR | 文字列型 |
BINARY、VARBINARY | 文字列型 |
TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB | 文字列型 |
TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT | 文字列型 |
ENUM | 文字列型 |
SET | 文字列型 |