「標準SQL+データベース」サポートページ
正誤表、補足情報、サンプルデータなど
Ubuntuインストール後は「端末」を使い、コマンドを入力することでテスト環境に必要なソフトウェアのインストールをします。 コマンドは、以下の書式で示しています。
command
そのままコピーして使いやすくするため、プロンプトや実行結果(実行したコマンドが表示するメッセージなど)は入っていません。 実際に実行している様子の画像をつけているので、適宜参考にしてください。
テスト環境の構築に必要なコマンドラインのみを示しており、各コマンドの使い方などは紹介していません。【宣伝】Linuxコマンドにご関心がある方は姉妹本「Linux+コマンド入門」をご覧下さい。
VMwareのインストールファイルとUbuntuのISOイメージを使用します。 VMwareのダウンロードにはBroadcomのアカウント(無料※2024年9月現在)が必要です。
Broadcomでメールアドレスを登録してアカウントを作成します。 Broadcom
※参考:2024年9月現在 ❶[Register]でメールアドレスと画像の文字列を入力して[Next]をクリック→❷入力したメールアドレス宛に6桁のverification codeが送信されるので入力して[Verify Continue]をクリック→❸名前等を入力し[Create Account]をクリック
ダウンロード用のリンクは以下のとおりです。❶Broadcomにログインしていない場合はログイン→❷「Personal Use」をクリックし、❸バージョンを選択して❹ダウンロードします。ダウンロードに先立ち追加のverificationが求められた場合は[Yes]で進み、❺住所を入力して[Submit]をクリックするとダウンロード画面に戻るので、❻改めてダウンロードアイコンをクリックします。
Windows: VMware Workstation Pro Download macOS: VMware Fusion Pro Download
※参考:リンク元 VMware Workstation Pro: Now Available Free for Personal Use
(以下Windows用の画面)
「Prior to downloading this file, additional verification is required. Proceed?」というメッセージが表示されたら[Yes]をクリック
インストール用のイメージファイルは https://jp.ubuntu.com/download からダウンロードできます。本書では、Ubuntu Desktop 24.04 LTS(ubuntu-24.04-desktop-amd64.iso
)を使用しています。
※本ページでは学習用にDesktop版を選択しています。GUIツール(DBeaver等)を使用しない場合はUbuntu Serverでも問題ありません。
上記リンクからダウンロードできない場合はミラーサイトからダウンロードしてください。httpまたはhttpsと記載があるリンクの場合はWebブラウザからのダウンロードが可能です。 Mirrors : Ubuntu
インストーラを実行し、画面に従ってインストールを行います。
【参考】VMwareのインストール画面: ※Windows環境の状態やVMwareのバージョンによって異なる画面が表示される可能性があります。
途中の設定はいずれも任意です。
Windows機能互換性の設定の変更は他の仮想環境(WSL2やVirtualBox)に影響を与えることがあります。筆者の環境(Windows 11)ではW「indowsの機能の有効化または無効化」で「Hyper-V」「Windowsハイパーバイザープラットフォーム」「Linux用Windowsサブシステム」を有効にしてVMware, VirtualBox, WSL2が使用可能な状態になっていますが、これらの設定で動作しない、あるいはパフォーマンスが落ちる場合は、ご自身の環境にあわせて導入する仮想環境を選択してください。
[Windows で Hyper-V を有効にする | Microsoft Learn](https://learn.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) |
VMwareを起動するとライセンスキーの入力を求められますが、「個人利用目的」を選択することで入力をスキップできます。
VMwareを実行し、新規仮想マシンの作成(Ctrl+N)で仮想マシンを作成、ゲストOS(Ubuntu)をインストールします。
ゲストOSに割り当てるメモリーのサイズは、たくさん割り当てることでゲストOSが快適に動作するようになりますが、その分、ホストOSの動作が犠牲になります。 本書のSQLを試すだけであれば、1024~2048MB程度で問題ありません。
UbuntuのISOイメージを使ってゲストOSを起動し、Ubuntuをインストールします。
仮想マシンの「CD/DVD」をクリック(仮想マシンを選択して「仮想マシンの設定を編集する」または「編集」→「環境設定」→「CD/DVD」)してダウンロードしてあるUbuntuのISOイメージを選択します。
ゲストOSの画面をクリックすると、キー操作やマウス入力をゲストOSが受け取る状態(キャプチャされた状態)となり、右Ctrl+Altで解放されてホストOS側の操作が可能になります。
マウスポインタをゲストOSの外に動かすと自動的にホストOS側の操作に戻りますが、一部のキー操作(PrtScreen等)がゲストOS側にキャプチャされたままになることがあります。この場合も右Ctrl+AltでホストOS側での操作が可能になります。
再起動するとインストール時に設定したアカウントが表示されるので、クリックしてログインしてください。
Ubuntuデスクトップは以下の様な画面構成になっています。
コマンドは「端末」アプリケーションで入力して実行します。アプリはダッシュボードに登録できます。
「VMware Tools」をインストールすると、ホストOSと端末の間でのコピー&ペーストが可能になります。
VMware Toolsは自動インストールされますが、インストール中インターネットに接続できなかった等でインストールできていない場合があります。ホストOSと端末の間でのコピー&ペーストやファイル共有ができない場合は、「端末」で以下のコマンドを実行してVMware Toolsをインストールしてください。インストール後、再起動するとホストOSと端末の間でのコピー&ペーストが可能になります。
sudo apt install open-vm-tools-desktop
※インストール済みの場合はその旨表示される
VirtualBoxでは、任意のタイミングでゲストOSのスナップショットを作成しておくことができます。本書の学習ではあまり必要ありませんが、興味がある方は以下を参考にしてください。
スナップショットの活用(Linux1+コマンド入門サポートページ内)
システム全体の設定は、デスクトップ右上をクリック→歯車のアイコン()で開く「設定」画面で行います。
なお、デスクトップの設定は「Ubuntuソフトウェア」の「Extension Manager」でもカスタマイズできます(例:Hide ClockエクステンションでTopパネルのカレンダーを非表示にする、等)。
「設定」をクリック→スクロールして「ディスプレイ」を探し、クリックして「解像度」を変更、「適用」で保存 ※解像度はVMwareの「表示」メニューや、ウィンドウサイズの変更でも調整可能
学習の性質上、画面を見ているが操作はしない、という時間が長くなりがちです。デフォルトでは操作していないと5分で画面がオフになりますが、この時間は「電源管理」の「省電力オプション」で設定できます。
スリープ状態のゲストOSを選択すると、入力がキャプチャされた状態(キーボードからの入力をホストOSではなくゲストOSが取得する状態)のままになることがあします。この場合は、マウスカーソルをゲストOSの外に移動するか、右Ctrl+Altで解除してください。
ユーザーフォルダ(ユーザーのホームディレクトリ)にある「書類」や「ピクチャ」などのフォルダは、WindowsやmacOSの場合、実体はDocumentsやPicturesなどのアルファベットで付けられた名前になっていますが、日本語用にインストールしたUbuntuデスクトップの場合は実体も「書類」など日本語の名前になっています。本書ではコマンドラインでこれらのフォルダを扱うことはありませんが、今後、コマンドラインでほかの操作にも慣れていこうという場合、アルファベットの名前の方が扱いやすいでしょう。変更する場合は以下のコマンドを実行し画面の指示に従ってください。
LANG=C xdg-user-dirs-gtk-update
※LANG=C
スペースxdg-u
Tabs-g
TabEnterで実行できます。パスワード入力を求められたらUbuntuインストール時のパスワードを入力してください。
再起動後あらためてフォルダ名の変更を確認するメッセージが表示されたら「次回から表示しない」にチェックマークを入れて「古い名前のままにする」をクリックしてください。
以下のコマンドでMariaDBをインストールします。
sudo apt -y install mariadb-server
インストールするとMariaDB(サーバー)が自動で起動します。 起動できているかどうかは下記のコマンドで確認できます([q]キーで終了)。
systemctl status mariadb
※active
と表示されていない場合は、sudo systemctl restart mariadb
を実行してエラーメッセージの有無を確認、エラーメッセージが出ていたら公式サイト等で確認。
MariaDBはデフォルトで自動起動されるよう設定されています。 通常、変更する必要はありません。変更したい場合や現在の設定を確認したい場合は以下のコマンドを使用してください。
# 無効にする
sudo systemctl disable mariadb
# 有効にする場合:
sudo systemctl enable mariadb
# 現在の設定を確認する
systemctl is-enabled mariadb
mariadb-secure-installationコマンドで、最低限のセキュリティ設定およびデータベース管理者(root)でMySQLサーバーに接続する際のパスワードを設定します。 root用のパスワードを入力する他は、基本的に、すべて「y」で処理を進めてください。
sudo mariadb-secure-installation
MariaDBはMySQLを元に開発されたデータベースで、多くのコマンド名が共通で使える様になっています。mariadb-secure-installation
とmysql_secure_installation
の機能は同じです。
$ sudo mariadb-secure-installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
(略)
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
$
mariadbコマンド(MariaDBサーバーに接続するためのコマンドでmysqlという名前でも実行可能)で、サンプル用のデータベースと、データベースに接続するためのユーザーを作成します。
sudo mariadb -u root -p
-u root
はユーザー名rootで接続、-p
はパスワードを使用するという意味のオプション
mariadbが起動すると、MariaDB[(none)]>というプロンプトが表示されるので、以下のコマンドを実行します。
--
以降はコメントなので入力不要です。この画面からコピー&ペーストして実行する場合は--
以降の部分も一緒にペーストしても問題ありません。
また、SQLのキーワードは大文字にしていますが、入力は小文字でもかまいません(👉2.1節「標準SQLと基本的な書式」)。
-- サンプルデータベース用のデータベース3つを作成
CREATE DATABASE testdb default character set utf8mb4;
CREATE DATABASE sampledb default character set utf8mb4;
CREATE DATABASE sampledb2 default character set utf8mb4;
-- 確認(MariaDBで管理しているデータベースが一覧表示される)
SHOW DATABASES;
引き続き、データベース接続用のユーザーを作成します。
データベース接続用ユーザーユーザーを作成します。ここでは、Ubuntuをインストールする際に作成したユーザー名と同じ名前のユーザー(study)を作成しています。
study
部分はデータベースに接続するユーザー、mypqssword
部分は接続に使用するパスワードです。 適宜、ご自身のユーザー名と使用したいパスワードに置き換えて実行してください。
なお、パスワードはALTER USER ユーザー名 IDENTIFIED BY '新しいパスワード'
で変更できます。
-- データベース接続用のユーザーを作成
-- CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'データベース接続用のパスワード';
CREATE USER 'study'@'localhost' IDENTIFIED BY 'mypassword';
作成したデータベースに対し、データの追加や削除などを含めたすべての権限を与えます。
WITH GRANT OPTION
は権限の追加や削除も行えるようにするためのオプションです。
ここでは上で作成したユーザー「study」を使用しています。study
部分は適宜ご自身が作成したユーザー名に置き換えて実行してください。
GRANT ALL ON testdb.* TO 'study'@'localhost' WITH GRANT OPTION;
GRANT ALL ON sampledb.* TO 'study'@'localhost' WITH GRANT OPTION;
GRANT ALL ON sampledb2.* TO 'study'@'localhost' WITH GRANT OPTION;
設定した権限を再読込してmariadbコマンドを終了します。
FLUSH PRIVILEGES;
quit
サンプルデータをダウンロードします。 ファイルはカレントディレクトリに保存されます。
wget https://nisim-m.github.io/sqlbook2/sample/testdb.sql
wget https://nisim-m.github.io/sqlbook2/sample/sampledb.sql
wget https://nisim-m.github.io/sqlbook2/sample/sampledb2.sql
mariadbコマンド(MariaDBサーバーに接続するためのコマンドでmysqlという名前でも実行可能)で
「mariadb -u ユーザー名 -p データベース名 < SQLファイル」のように実行することで、サンプルデータを登録できます。-u
はデータベースに接続するユーザーを指定するオプションで、現在ログイン中のユーザーと同じ名前である場合は省略できます。-p
はパスワードを使って接続するというオプションです。
mariadb -p testdb < testdb.sql
mariadb -p sampledb < sampledb.sql
mariadb -p sampledb2 < sampledb2.sql
※管理者(root)で取り込む場合
mariadb -u root -p testdb < testdb.sql
mariadb -u root -p sampledb < sampledb.sql
mariadb -u root -p sampledb2 < sampledb2.sql
Ubuntu環境の場合、DBeaverはsnap
コマンドでインストールできます。
sudo snap install dbeaver-ce
ダウンロードとインストールが終わるとinstalled
と表示されます。
study@ubuntu:~$ sudo snap install dbeaver-ce
[sudo] study のパスワード:
dbeaver-ce 24.2.0.202409011551 from DBeaver (dbeaver-corp) installed
study@ubuntu:~$
初回起動時、サンプルデータベースを作成するかどうかのメッセージが表示されます。サンプルは不要なので「いいえ」をクリックして進みます。
「新しい接続を作成する」というダイアログが表示されるので、画面に従って設定を行います。
※接続するDBMSを追加する場合はShift+Ctrl+N(データベース→新しい接続)で再度この画面を開くことができます。
「localhost」をクリックすると「ドライバの設定」が表示されるので、画面に従ってドライバファイルをダウンロードします。
データベースを選択して「SQL」でSQLエディタを開きます。SQL文は▶ボタンまたはCtrl+Enterで実行され、実行結果が画面に表示されます。
データベース → テーブルを選択すると列の定義情報や「データ」タブで登録されているデータを確認できます。
データベースをダブルクリック→「ER図」タブでテーブル同士の関係をER図(第5章参照)で確認できます。
DBeaverでは、テーブルを右クリック→「データのインポート」でCSVデータのインポートができるようになっていますが、本書のサンプルコードはSQLコマンドで書かれているためこのメニューから取り込むことはできません。
以下を参考に、SQLエディタまたはSQLコンソールでサンプルデータを読み込んで実行してください。
本書のサンプルは原則としてMariaDBでの実行結果を掲載していますが、PostgreSQLでも同じように実行可能です。ご興味のある方は以下を参考にしてください。MariaDBと同じ環境にインストールできます。
sudo apt -y install postgresql
インストールするとPostgreSQL(サーバー)が自動で起動します。 起動できているかどうかは下記のコマンドで確認できます([q]キーで終了)。
systemctl status postgresql
※active
と表示されていない場合は、sudo systemctl restart postgresql
を実行してエラーメッセージの有無を確認、エラーメッセージが出ていたら公式サイト等で確認。
PostgreSQLはデフォルトで自動起動されるよう設定されています。 通常、変更する必要はありません。変更したい場合や現在の設定を確認したい場合は以下のコマンドを使用してください。
# 無効にする
sudo systemctl disable postgresql
# 有効にする場合:
sudo systemctl enable postgresql
# 現在の設定を確認する
systemctl is-enabled postgresql
まず、管理者用(postgres)のパスワードを設定します。ここではpsql
コマンドを使用しています。
psql
コマンドはPostgreSQLサーバーに接続するためのコマンドで、MySQLのmysql
コマンドに相当します。
psql
だけで実行するとpostgres=#
というプロンプトが表示されてSQLを実行できる他、psql -c "SQL文"
でSQL文を実行することができます。
ここでは、後者の方法でALTER文を実行しています。SQLキーワードは大文字で示していますが、入力は小文字でかまいません(👉2.1節「標準SQLと基本的な書式」)。
なお、PostgreSQLの管理者はpostgresというユーザーなので、ここではsudo -u postgres psql -c "SQL文"
のようにsudoコマンドを使用して実行しています。adminpassword部分はご自身が使用したいパスワードで置き換えて実行してください。
※sudoコマンドの-u
オプションは、どのユーザーの権限で実行するかを指定するオプションで、省略時はrootの権限で実行されます。
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'adminpassword'"
テスト用のユーザーstudy
を作成し、サンプル用データベースtestdb
sampledb
sampledb2
を作成します。
PostgreSQLの場合、ユーザー作成用およびデータベース作成用のコマンドが用意されています。 ここでは、テスト用のユーザーとして、Ubuntuをインストールする際に作成したユーザー名と同じ名前のユーザー(study)を作成しています。
sudo -u postgres createuser study
sudo -u postgres createdb -E utf-8 -O study testdb
sudo -u postgres createdb -E utf-8 -O study sampledb
sudo -u postgres createdb -E utf-8 -O study sampledb2
先ほどと同じALTER文で、テスト用のユーザーstudy
がPostgreSQLに接続する際のパスワードを設定します。mypassword部分はご自身が使用したいパスワードで置き換えて実行してください。
sudo -u postgres psql -c "ALTER USER study WITH PASSWORD 'mypassword'"
サンプルデータをダウンロードします。 ファイルはカレントディレクトリに保存されます。
wget https://nisim-m.github.io/sqlbook2/sample/testdb.sql
wget https://nisim-m.github.io/sqlbook2/sample/sampledb.sql
wget https://nisim-m.github.io/sqlbook2/sample/sampledb2.sql
SQLが書かれたファイルは、psql
コマンドを使いpsql -U ユーザー名 -d データベース名 -f SQLファイル名
で取り込むことができます。以下はダウンロード済みのSQLファイルがあるディレクトリで実行してください。
psql -U study -d testdb -f testdb.sql
psql -U study -d sampledb -f sampledb.sql
psql -U study -d sampledb2 -f sampledb2.sql
psql -U ユーザー名 -d データベース名
でデータベースを指定して起動し、\dt
コマンドを実行すると、データベースに登録されているテーブルが一覧表示されます。
\dt
はpsql独自のコマンドで、\
は日本語キーボードの[¥]記号で入力します。画面表示が¥
となっていても意味は同じです。
この他、\c データベース名
でデータベースの変更、\q
でpsqlコマンドを終了できます。
すぐに試してみたい方は以下のSELECT文でお試し下さい。
select * from 生徒マスター where 校舎='新宿';
select * from students where branch='新宿';
実行結果が長い場合、最下行に[:]が表示されます。Enterで1行、スペースで1画面進み、上下矢印キーでスクロールできます。[Esc]キーで表示が終了します。 ※Linux環境で使われているlessコマンドと同じキー操作です。
❶「新しい接続」(Ctrl+Shift+N)で❷PostgreSQLを選択し、「Show all databases」にチェックマークを入れてユーザー名とパスワードを入力します。
「postgres」をクリックすると「ドライバの設定」が表示されるので、画面に従ってドライバファイルをダウンロードします。
ドライバのインストールが終わると元の画面に戻るので、postgresをクリックし、データベースを選択します。 データベース→スキーマ→public→テーブルでテーブル名をダブルクリックするとテーブルの情報を確認できます。
データベースを選択して「SQL」でSQLエディタを開きます。SQL文は▶ボタンまたはCtrl+Enterで実行され、実行結果が画面に表示されます。
データベースが「postgres」(デフォルトデータベース)のみで、サンプル用データベースの作成の手順で作成したtestdbなどのサンプルデータベースが表示されない場合は、接続を編集して「Show all databases」にチェックマークを入れてください。