developppのblog

木下やま人の技術メモ

2016年10月

CSVの作成と取込


SELECT結果をCSVに出力


--CSV作成
copy (select * from test_table) to '/tmp/ファイル名.csv';



CSVからテーブルにデータ作成


--CSVからデータ取込
copy test_table from '/tmp/ファイル名.csv';


inser文発行時に自動採番する方法

serial型

テーブルを作成する際に、自動的に番号を採番したいフィールドに対しserial型を指定する。
※serial型を指定すると自動的にシーケンスが作成される。

create table sequence_test (
  auto_no serial ,
  name varchar(50),
  primary key(auto_no)
);

insert into sequence_test (name) values('test1');
insert into sequence_test (name) values('test2');

select * from sequence_test;
--auto_no, name
--1, test1
--2, test2

--sequence_test_auto_no_seqというシーケンスが自動的に作成され連番を振っている。



シーケンスを作成しcreta tableに組み込む

テーブルを作成する際に、あらかじめ作成したシーケンスを指定する。

create sequence sequence_test_seq;

create table sequence_test (
  auto_no int DEFAULT nextval('sequence_test_seq'),
  name varchar(50),
  primary key(auto_no)
);

insert into sequence_test (name) values('test1');
insert into sequence_test (name) values('test2');

select * from sequence_test;
--auto_no, name
--1, test1
--2, test2



GROUP BY、HAVINGを使用し重複行の抽出

SELECT
  カラム1                -- 重複しているカラム1
  ,COUNT(カラム1)   -- 重複件数
FROM
 テーブル1
GROUP BY
 カラム1
HAVING COUNT(カラム1) > 1 ;  -- 2つ以上重複しているカラムを対象

↑このページのトップヘ