自分用まとめ
お試しは Unix 系環境前提。ただし Microsoft 製品は逆に Windows を想定。
お約束
間違いが含まれる可能性がそれなりにあります。
間違いを見つけたら「どこを」「どのように」修正すべきか教えてください。
主要製品
ここでは、よく名前を見聞きする5製品に注目
製品名 | 開発元 | オープンソースか? |
---|---|---|
MySQL | Oracle | ⭕️ |
PostgreSQL | PostgreSQL Global Development Group | ⭕️ |
Microsoft SQL Server | Microsoft | ❌ |
Oracle Database | Oracle | ❌ |
SQLite | D. Richard Hipp | ⭕️ |
注) オープンソースの製品は、誰でも無料で利用・改変できるが、無保証である場合が多い。
また、SQLite は少々特殊な製品である。
他の DBMS がサーバとして動作するのに対し、SQLite はライブラリのように振る舞う。
(SQLite データベースは単一のファイルから成り、接続時に初めてそのファイルが開かれる)
ゆえに SQLite は、それ以外の DBMS とは用いられる場面が異なるように見える。
(一般の DBMS がシステムのデータ管理に使われるのに対し、SQLite はブラウザ内や Android アプリ内で使用されている)
試し方
色々な製品でテーブルを作成し、データを挿入してから、その表を問い合わせしてみる。
-- DROP TABLE Students;
CREATE TABLE Students (
id INT PRIMARY KEY,
name VARCHAR(16),
age INT
);
INSERT INTO Students VALUES
(1, 'Alice', 16),
(2, 'Bob', 18),
(3, 'Charlie', 15),
(4, 'David', 23);
SELECT * FROM Students;
以下の表が得られたら OK
Students
ID | NAME | AGE |
---|---|---|
1 | Alice | 16 |
2 | Bob | 18 |
3 | Charlie | 15 |
4 | David | 23 |
MySQL
- apt なり yum なり brew なりで mysql をインストールする
-
mysql.server start
コマンドで、サーバを起動 -
mysql -uroot
コマンドでサーバに接続 - (データベースを作っていないなら)
CREATE DATABASE (データベース名);
でデータベースを作成 -
USE (データベース名)
でデータベースに接続 - (いろいろ試してみる)
-
\q
で切断 -
mysql.server stop
コマンドで、サーバを終了
PostgreSQL
- apt なり yum なり brew なりで postgresql をインストールする
-
initdb
コマンドで、新規データベースを作成 -
pg_ctl start
でサーバを起動 -
psql -d postgres
でサーバに接続、postgres
データベースが開かれる - (いろいろ試してみる)
-
\q
で切断 -
pg_ctl stop
でサーバを終了
-
initdb
,pg_ctl
では-D
オプションにより保存ディレクトリを指定できる-
initdb
に関しては指定が必須 -
pg_ctl
に関しては、ディレクトリ指定の代わりに、環境変数PGDATA
で指定することもできる
-
- Ubuntu では
initdb
,pg_ctl
は/usr/lib/postgresql/バージョン番号/bin/
にある。ただし、pg_ctl
の代わりに/etc/init.d/postgresql
を使う方が良さそう。
注意
ちょっと試すだけなら上記でも良いかもしれないが、ちゃんと使うなら、postgres
データベース上で作業するべきではないだろう。CREATE DATABASE
して、目的ごとにデータベースを作ると良いのではないだろうか。
Microsoft SQL Server
ここだけ Windows を想定。
Microsoft 製品を選ぶような人は、Windows を使っているはず…
- https://www.microsoft.com/ja-JP/sql-server/sql-server-downloads の下の方にある Express をダウンロードし、ウィザードに沿ってインストールする
- https://docs.microsoft.com/ja-jp/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15 より、SQL Server Management Studio (SSMS) をダウンロード、インストール
- 再起動後、SSMS を起動
- ダイアログはそのまま Connect して、上部メニューの"New Query"をクリック
- (いろいろ試してみる)
- "SQL Server インストール センター" では、"新規スタンドアロン インストールを実行"を選択
- Windows 以外でも、Docker があれば、SQL Server イメージを用いて実行することができる
注意
ちょっと試すだけなら上記でも良いかもしれないが、ちゃんと使うなら、別途データベースを作ると良いのではないだろうか。
Oracle Database
Live SQL という、Web上で気軽に試せる環境がある
- https://livesql.oracle.com/ を開く
- プロファイル登録またはログイン
- 同意画面が出るので同意
- SQL Worksheet が出たらOK
- (いろいろ試してみる)
この環境で作成したテーブル等は、しばらく(セッション中?)は残る模様。
何度も同じ CREATE TABLE を実行すると、「そのテーブルは既にありますよ」と怒られるので注意。
注意
上述の SQL コードでは、INSERT の複数行挿入の部分でエラーが出てしまう。
Oracle Database では、次のようにして試した。
-- DROP TABLE Students;
CREATE TABLE Students (
id INT PRIMARY KEY,
name VARCHAR(16),
age INT
);
INSERT ALL -- MySQL, PostgreSQL などとは書き方が異なることに注意
INTO Students VALUES (1, 'Alice', 16)
INTO Students VALUES (2, 'Bob', 18)
INTO Students VALUES (3, 'Charlie', 15)
INTO Students VALUES (4, 'David', 23)
SELECT * FROM DUAL;
SELECT * FROM Students;
SQLite
- apt なり yum なりで sqlite3 をインストールする
-
sqlite3
コマンドで実行 - (いろいろ試してみる)
-
.q
で終了
- Mac なら最初から入っているはず
- ファイルを指定すればそのファイルで、指定しなければ in-memory で実行される
いろいろな製品で SQL をお試しできる環境が整った!楽しい!
✌(’ω’✌ )三✌(’ω’)✌三( ✌’ω’)✌