MySQL
データベース管理ツール
macOS Catalina 10.15.7 / MySQL Server 5.7.16 / node v20.15.1
ユーザが作成した MySQLデータベースの定義情報を収集しデータベース化する。Webアプリケーションを介してそれらの情報を参照し、データベースの構造を容易に把握できるようにする。集めるのは、データベース名、テーブル名、テーブルのカラム情報として、フィールド名、データ型、ヌル値可否、主キーの設定とする(デフォルト値、Extra値も収集するが表示はしない)。
データベース、テーブル、カラムそれぞれに「タイトル」と詳細な説明等を記載できる「備考欄」を設け、Webから入力できるようにする。また個々のデータベースに対して、Webから SQLステートメントを実行できるようにする。
データベース定義情報の照会
データベース情報
データベース名、データベースのタイトル、remarksリンク、execSQLリンクが表示される。タイトルは入力可能であり、更新ボタンのクリックにより保存される。
remarksリンクをクリックすると、データベースの備考欄が表示される。ここはテキストの入力が可能であり、更新ボタンのクリックにより保存される。
テーブル情報/カラム情報の表示
データベース名(例では health)のリンクをクリックするとテーブル情報/カラムの情報を表示したページが別ウィンドウとして開く。テーブル名、テーブルタイトル、カラム情報としてフィールド名、カラムタイトル、データ型、キーの設定、ヌル値可否が表示される。
テーブルタイトルとカラムタイトルは入力可能である。また、Tableリンク、Columnリンクをクリックすると、それぞれの備考欄が表示され、テキストを入力することができる。入力したタイトルと備考は更新ボタンのクリックにより保存される。
テーブルの備考を開いたとき
SQLステートメントの実行
データベース情報ページの execSQLリンクをクリックすると、次に示す SQLステートメント実行ウィンドウが開く。ここでは、当該データベースにおいて任意の SQLステートメントを入力し実行することができる。
保存ボタンをクリックすると、入力した SQLステートメントをデータベースに保存する。次にウィンドウを開いたときに初期値として表示される。
左側の テキストエリアにSQLステートメントを記述し実行ボタンをクリックする。SELECT文のように戻り値がある場合、右側のテキストエリアにデータを表示する。表示形式は、JSON形式、表形式のいずれにも対応し、表示中に切り替えることもできる。
本アプリケーションは SQLステートメントの複文の実行に対応していない。よって次のような SQL文は実行できない。
複文を実行できるようにするには SQL接続時 multipleStatementsプロパティの設定によって可能だが、セキュリティの観点からお薦めはされてないようだ。
[補足] このアプリケーションはテスト版なので INSERT、UPDATEましてや DROPステートメント等のデータやデータベースの構成を変化させる命令も実行できてしまうが、実用上は制限するべきであろう。
テーブルベース管理ツールの作成手順
データベース管理ツールが利用するデータベースを作成する
SQLステートメント
データベース:db_management
構成テーブル
データベース情報:database_info
- name:データベース名
- title:タイトル(入力項目)
- remarks:備考(入力項目)
- idx:順序番号
-
statement:SQLステートメント(入力項目)データベース管理システムからSQLステートメントを実行することができる。そのコードを保存するエリア。
※入力項目は、データベース管理システムから入力/変更できるエリアで、項目の説明等を(主に日本語で)記述するためのエリア
テーブル情報:table_info
- database_name:データベース名
- name:テーブル名
- title:タイトル(入力項目)
- remarks:備考(入力項目)
- idx:順序番号
カラム情報:column_info
- database_name:データベース名
- table_name:テーブル名
- field:フィールド名
- type:データ型
- null:ヌル値可否
- key:設定キー
- defauly:デフォルト値
- extra:付加情報
- title:タイトル(入力項目)
- remarks:備考(入力項目)
- idx:順序番号