SQL学習のためのエクステンションガイド

SQLはStructured Query Languageといい、RDBMS(リレーショナルデータベース管理システム)を操作するデータベース言語のことである。ちなみに、通称データベースといっているのは、正確にはRDBMのことを指している。リレーショナルというのは、基本的にひとつのデータベースの中に、ひとつのテーブルというのは存在せず、複数のテーブルで成り立っている。それらのテーブル同士を関係づけていることをいっている。たとえば、この商品のIDは、商品明細のIDを紐付けるというように成り立っているわけである。これをリレーションシップといい、データベースの設計で定義される。

Visual Studio CodeでSQLを学習するには、拡張機能をインストールする。ただし、あくまでも操作だけなので、データベースやテーブルを作ったとしても、テーブル同士のリレーションシップは定義できない。学習だけではなくデータベース設計からSQLまで本格的に取り組むならクライアントを使用するのが一番よい。クライアントで代表的なのが、MySQL Workbench(英語版)とDBeaver(日本語対応)である。前者はMySQLのみだが、後者はMariaDB、MySQL、PostgreSQL、SQL Serverなど、対応しているデータベスが多い。そのほかにはphpMyAdminがある。

今回の記事はVisual Studio CodeでSQLを学習したい人が対象である。そこにこだわらなければ、MySQL Workbench、DBeaver、phpMyAdminなどを使うといいだろう。場合によっては、ターミナルでMySQLを起動してもできるのである。

環境

  • Linux mint 20.3 MATE Edition
  • Visual Studio Code 1.66.2
  • SQLTools MySQL/MariaDB Driver 0.2.0

エクステンションガイド

SQLTools

シンプルなデータベースの操作ができる拡張機能で、データベースの操作はすべてSQLを発行して行われる。マウスでワンクリックで操作するものではない。この拡張機能を選んだのもそのためである。

この拡張機能を使う前に接続ドライバーが必要となる。ドライバーは拡張機能として用意されているので、必要なものをインストールするといいだろう。サポートしているデータベースは、MySQL、MariaDBのほかにSQLite3、PostgreSQL、SQL Server/Azureである。

インストールはわかっているとは思うが、一応簡単に説明しておく。まず、Ctrl+Shift+Xを押して、拡張機能を開き、検索欄に「SQLTools」と入力する。該当する拡張機能が表示されたら、[インストール]をクリックしてインストールする。

SQLToolsとドライバーのインストール
SQLToolsとドライバーのインストール
使い方

使用する前の注意点は以下のとおり。

  1. MariaDB(MySQL)がインストールされている。XAMPPがインストールされていれば問題ない
  2. MariaDB(MySQL)がすでに起動している
  3. MariaDB(MySQL)のユーザー(root)のパスワードが設定されている
  4. 学習用データベース(books)が作成されている

いずれかのひとつでも該当しない場合は利用不可である。注意点がすべてクリアできているという前提でやっていく。

拡張機能のアイコンの下にSQLToolsアイコンが表示されているのでクリックして、[Add new connection]をクリック。接続するデータベースを選択する。

接続するデータベースを選択
データベースの選択

いくつか表示されているが、SQLTools MySQL/MariaDB Driver 0.2.0以外のドライバーをインストールしているだけなので気にしなくていい。

MariaDBまたはMySQLを選択して接続情報を入力する。

接続情報を入力する
接続情報の入力

入力する項目は、項目名の後ろに*印がついているものだけでよい。わからない場合はデフォルトのままにしておく。Use Passwordは選択肢が3つあり、以下のとおりになっている。

・ Ask on connect ———- データベースに接続時にパスワードの入力を求められる(デフォルト)
・ Use empty password – パスワードを設定していない場合に選択する
・ Save password ———– 接続情報にパスワードが保存される

どれかを選択する。

記事の例では、次のように設定した。それ以外は、デフォルトのままにしている。

項目名設定内容
Connection nameBooksDatabase
Databasebooks
Usernameroot
Use passwordSave password
Password*******
表1. 設定した接続情報

接続情報の入力が終わったら、少し下にスクロールさせて[TEST CONNECTION]をクリックする。問題がなければ「Successfully connected」が表示されるはずである。[SAVE CONNECTION]をクリックして、接続情報を保存する。

設定された接続情報が表示される
保存された接続情報

[CONNECTION NOW]をクリックしてbooksに接続する。

SQLを記述する
SQLを記述する

この画面でSQLを記述していくことになる。記述したSQLを発行するには、上に表示されている[Run on active connection]をクリックする。では、実際にテーブルを作成してみよう。テーブル名はtbl_bookとした。

フィールド名データ型PrimaryNull
idintKeyNot Null
titlevarchar(50)Not Null
priceint
publishervarchar(50)
isbnvarchar(17)Not null
tbl_bookのテーブルデザイン
CREATE TABLE books.tbl_book (
    id int NOT NULL,
    title varchar(100) NOT NULL,
    price int,
    publisher varchar(60),
    isbn varchar(17) NOT NULL,
    PRIMARY KEY(id)
);

上記のSQLを発行すると、無事にテーブルが作成されている。SQLの書き方は大文字でも小文字でも構わないが、フィールド名だけは大文字小文字が区別されるので注意が必要である。CTRL+Sを押して保存しておく。

データを登録してみよう。

INSERT INTO tbl_book(id, title, price, publisher, isbn) VALUES (1,'ちゃんとしたプロになるPHP基礎入門', 2500, 'エムディーエヌコーポレーション', '9784295201106');
INSERT INTO tbl_book(id, title, price, publisher, isbn) VALUES (2, 'いちばんよくわかるWebデザインの基本', 2400, 'SBクリエイト株式会社', '9784815609610');
INSERT INTO tbl_book(id, title, price, publisher, isbn) VALUES (3, 'Vue.js3超入門', 3200, '秀和システム', '9784798063737');
INSERT INTO tbl_book(id, title, price, publisher, isbn) VALUES (4, 'いちばんやさしいGit入門教室', 2180, '株式会社ソーテック', '9784800712452');
INSERT INTO tbl_book(id, title, price, publisher, isbn) VALUES (5, 'スッキリわかるJAVA入門第2版', 2600, '株式会社インプレス', '9784844336389');

手元にあった書籍を適当に選んだものである。実行すると、エラーが表示されるが、無視してよい。ちゃんと登録されている。なぜ、このエラーが表示されるのかわからない。ターミナルでMySQLを起動して、ひとつひとつ登録してみたが、問題が出なかった。調べてみたところ、拡張機能のバグのようである。

エラーが表示されるが無視する
エラーが表示されるが無視する
登録したデータを表示
登録したデータを表示

以上でVisual Studio CodeでSQL学習のためのエクステンションガイドを終わる。気に入らなければ、今回インストールした拡張機能をアンインストールして、他の拡張機能をインストールして試してみるのもいいだろう。