0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PostgreSQLでデータベースはじめてみる

Last updated at Posted at 2020-10-06

とりあえずデータベースを始めてみよう。
使うSQLソフトはPostgreSQLで。SQLはStructured Query Languageの略(ゼミ生に教えてもらった)。データベースを管理・操作するための言語のこと。
インストールはここから自分のOSに合わせて好きなのをどうぞ。
(といいつつ、これ以降はすべてWindows10を意識して書いていきます)
パスワードを設定するので忘れないように(基本的に毎回聞かれると思ってください)。
あとはインストールフォルダはデフォルトでもよいが、不都合が起こることもあるらしいので、僕はCドライブ直下の

C:\PostgreSQL\13

に設定(バックスラッシュの部分は状況によっては半角の「¥」マークにしてください。というかそっちになるか)。
他の部分は基本的にOK牧場。あとはインストール終わると追加インストールを聞かれるがとりあえずはなくても大丈夫だと思う(おれは追加のものを使ったことないからもし使ってみて便利な機能とかあったら教えて)。

それでは早速SQLを使ってみよう。
最初にWindowsボタンを右クリックして、「Windows PowerShell (管理者)」を実行してください。そこで、

C:\PostgreSQL\13\bin\psql.exe -U postgres

のように入力すると、パスワードを求められるのでそれを入力する。これで起動完了。

postgres=#

と出るはずなので、ここでSQL言語を打っていく感じ。
以降はコマンドを打ってエンターすれば実行できる。
これからいろいろデータベースを作成していくが、基本的な操作をまとめておくと、

  • \l:自分の環境内にあるデータベースの一覧を表示
  • \c データベース名:いじりたいデータベースへ移動

じゃあ、まずはデータベースを作ってみよう。作るときは「CREATE」を使うと作る!って感じ。
とりあえずデータないと作れないから車のガソリンデータベース(car)を作ってみよう。

CREATE DATABASE car; 

これで作成されます。このとき最後の「;」(セミコロン)を入力するってのがSQL言語の特徴かも。
基本的に実行したい命令の最後にはセミコロンって感じです。
それでは、次の表にあるデータをデータベースに登録してみましょう。

日付 ガソリンスタンド 走行距離 使用燃料 表示燃費 金額
2019年1月25日 A 952.7 33.68 32.1 4109
2019年2月11日 A 904.6 32.0 30.1 3840
2019年2月24日 B 789.5 27.38 32.4 3340
2019年3月13日 A 992.9 34.13 30.9 4266
2019年3月23日 C 3329
CREATE TABLE nenpi
(date DATE NOT NULL,
 gs CHAR(2) NOT NULL,
 dist NUMERIC ,
 gas NUMERIC ,
 nenpi NUMERIC ,
 price INTEGER ,
 PRIMARY KEY(date));

とすれば燃費(nenpi)という箱が作られる。
これもデータベース(正確にはテーブル)の特徴でデータを入れる前に箱を作っておかなくてはいけない。
さらに、箱を作る際にはそれぞれの変数名(列名)を決めて、その変数にどのような値(型という)が入るかまで決めておく必要がある。例えば上のコマンドの中を見ると、
変数名 変数の型 NULLの指定という感じで命令する。
変数名にはアルファベット、数字、アンダーバーの3種類を使い、最初の文字はアルファベットにするというルールがある(なぜか?)。
型に登場したのはSQLによって様々だが、上記の4つを知っておくと便利かなと。

  • DATE:日付
  • CHAR(数字):数字の桁数(文字数)の文字列(ただし固定長。可変にするならVARCHAR)
  • NUMERIC:実数値(他にもあるが基本これで大丈夫かな)
  • INTEGER:整数値

NULLの指定は?これはNOT NULLを指定すると空白を許さないという指定になります。上の表を作ろうと思うと、最初の2列以外は空白(欠損、NULL)があるので、そこはNULLの存在を許さないといけないですね。逆に日付わかんなかったらそのデータいらない!って感じならNULLを許さないとかにするって感じですかね(乱暴ですみません)。
複数行を同時に実行するためにTRANSACTIONを使います。
これやると「BEGINからCOMMIT;」までの間の処理を同時に行ってくれるようになります。
(あまり意識したことなかったけど学生からの質問を受けて。)

BEGIN TRANSACTION;
INSERT INTO nenpi VALUES('2019-1-25','A', 952.7, 33.68, 32.1, 4109);
INSERT INTO nenpi VALUES('2019-2-11','A', 904.6, 32,    30.1, 3840);
INSERT INTO nenpi VALUES('2019-2-24','B', 789.5, 27.38, 32.4, 3340);
INSERT INTO nenpi VALUES('2019-3-13','A', 992.9, 34.13, 30.9, 4266);
INSERT INTO nenpi VALUES('2019-3-23','C', NULL,  NULL,  NULL, 3329);
COMMIT;

これで実際に燃費のテーブルができた!
テーブルが出来たかを確認するためには

\dt;

を実行すると作られたテーブル一覧が表示される。
また、テーブルの中身を確認するためには、

SELECT * FROM nenpi

を実行すると出来上がったテーブルが表示される。
INSERTとかSELECTについてはもう少し機能があるので、また次の記事で説明しようと思います。ではまた。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?