はじめに
こんにちは!初級エンジニアのふかこうです!
私が現在勉強中のPostgreSQLについて記事を書いていこうと思います。
興味がある方、ぜひ一緒に勉強していきましょう!
この記事の対象者
・PostgreSQLを学びたい方
・初級エンジニア
・IT企業に就職する学生
筆者のレベル
・初級エンジニア
PostgreSQLとは
PostgreSQLは、拡張性とSQL準拠を強調するフリーでオープンソースの関係データベース管理システム。
ライセンスコストがかからないこと、世界中の技術者による知見によって開発される高品質なプログラムであること、ベンダーロックインを回避できることなど、OSSならではのメリットに加え、商用に耐えうる機能の豊富さや性能、堅牢性、拡張性を備えています。
よく使うSQL文
■Copyコマンド、カンマ区切り
Copy テーブル名 from 'ファイル名' (delimiter ',' format csv, header true)
ヘッダーがない場合は、header trueを削除
■Copyコマンド タブ区切り
COPY users TO 'ファイル名' (delimiter e'\t' format csv)
■Update
update テーブル名 set カラム名 = value where 条件式;
他の方も見ているテーブルの場合、影響を最小限に留めるためにupdateをよく使用する
■truncate
truncate テーブル名;
サイズが大きいテーブルを削除する場合に使用。deleteと違い、検索せずにテーブルを削除できるため、処理スピードが速い
■revoke
ユーザーから、テーブルへのアクセス権限を奪うときに使用
REVOKE SELECT ON テーブル名 FROM ユーザー名;
■grant
ユーザーにテーブルへのアクセス権限を付与するときに使用
grant SELECT ON テーブル名 to ユーザー名;
ロールバックについて
実行中のトランザクションの処理を全て廃棄し、データをトランザクション開始前の状態にすること。
Begin;
update テーブル名 set カラム名 = 1 where 条件式;
rollback;
ロックについて
トランザクションが実行され、あるレコードにアクセスしている際に、他のトランザクションから削除や更新できないようにすること
ex)
Select * from テーブル名 where 条件式 for upate;
select 文が実行された時点で、commit/rollbackが実行されるまで条件に一致した行にロックがかけられる。