LoginSignup
1
1

More than 1 year has passed since last update.

WindowsのPostgreSQLで初めてテーブルを作った件について

Last updated at Posted at 2021-07-21

はじめに

前回はDBをつくるところまでした。

今回はテーブルをつくって、出力するところまでやっていこうと思う
どんな形で出力すればいいのだろう。。。
初心者にはまだまだわからないところだらけ

まずは作ったDBにログイン

psql -U (登録したロール) (新規作成したDB)

無事ログイン。
テーブル作成に入ります。
とはいっても仕事で使ってるのを使うわけにもいかないので、、、

ひとまずメンバーリストというテーブル(名前はmember)を作成すると想定して作る。
id
name
age
mailaddress

上のリンクによると、数字型・文字列型があるみたいだけど、

id(char(3))
name(varchar(15))
age(varchar(3))
mailaddress(text)

という感じにする。

というわけでコマンド

first.sql
CREATE TABLE member
(id char(3) not null,
name varchar(15) not null,
age varchar(3) not null,
mailaddress text not null);

コマンドで打つ場合は、Enterをおすと実行されてしまうので
Shift + Enterを押して改行する点に注意。
Enterを押すと
CREATE TABLEと出て、
作れたことになります。

¥d

でテーブル一覧を開き、作られてるのを確認。
項目も確認したい場合は、下記

¥d member

閑話休題 − 困ったこと

PRIMARY KEY がどれだか確認しにくい気がする。。。

そもそもSQLってみんなうち間違えないのかな。
なんかエディタっぽいのがあってそこから送信できるといいよね
→と思ったら、Visual Studio Code(今後VSCと略)でエディタがあるらしい。

ちょうど今使ってたから超タイムリー。

ということで使ってみたが、めっちゃ素敵。
コマンドスクリプトと違って、Enterを押してもすぐ実行にならず、
SQLが間違いないか確かめて、Run Queryを押せばいいだけなのがよい。
しかも何度も使える。
コマンドスクリプトのように途中で間違えたらもう一回やり直しにならないところがすばらしい。

データを追加する

データを追加する方法としては

1) コマンドで直接追加
2) CSV(エクセルとかで作る)でデータファイルを作ってそれを入れる

の2つがある。

1)コマンドで直接追加

下記の通り。 INTOの次にTable名を書き、
VALUESの次に()をつけて、その中に、
カラムごとの値を書いていく。

※下記の()はわかりやすく書いてるだけで、
実際に書くときには()はつけない。

first.sql
INSERT INTO (Table名) Values(
 (一番左のカラムの値),...,(一番右のカラムの値)
)

2)csvファイルは実際に作るのだけど、ちょっと作ってみた。

ここで注意することは、列名は書かないこと。
たとえばidとか名前、年とか。

いきなりデータから入力してOK。
そして、csv形式で保存する時に、必ずUTF−8で保存する。
csv保存してメモ帳で開いて保存画面でUTF−8を選べば良い。
エクセル上ではutf-8に変更できないらしい。

また、ファイルパスに日本語を入れない。
そうしないとエラーになる。
またNETWORK SERVICEグループにファイルまたはフォルダの権限を付与する。
詳しくは下記。

そしてVSCで、
COPY (ファイル名) from (ファイルパス) with (format csv, DELIMITER ';');
とかくと、ちょっと保存に時間がかかるが、できるようになる。

select * from (テーブル名);で
今のデータが確認できる。 
コマンドスクリプトでなく、VSCだと、すごくわかりやすい。

これで、単独行でも、複数行でも自由自在にデータを入れられるようになった。

MySQLでもできるかどうか、次の記事で試す。

1
1
2

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
1
1