본문 바로가기
[SQL]/[postgresql]

postgresql 정리본

by Hevton 2021. 4. 8.
반응형

어쩌다 보니.. 수업에서 여태 써왔던 MYSQL이 아닌 POSTGRESQL을 사용하게 되었다.

 

현재 user/role 출력

\du  

 

 

show tables

\dt

 

desc table_name

\d table_name

 

use database_name

\c database_name;

 

 

이름 yy 비밀번호 zz 유저 생성.

create user yy with password 'zz'

 

 

자동 증가하는 PK인 ID 등록. MYSQL의 AUTO_INCREMENT와 같음

create table t (ID serial PRIMARY_KEY);

aspdotnet.tistory.com/2401

 

 

postgresql에서 테이블명, 컬럼명은 소문자를 권장한다. 자동 소문자로 변환되기도 한다.

명시적으로 대문자를 해주고 싶으면 따옴표로 감싸주면 된다.

create table "Hello"

dorongdogfoot.tistory.com/125

 

 

테이블명 변경

alter table director2 rename to director;

 

 

PK 지정

create table example(exam_ID integer PRIMARY KEY)

 

FK 지정

create table example2(exam_ID integer REFERENCES example ( exam_ID ))

 

해당 모든 테이블 삭제

DROP SCHEMA public CASCADE; CREATE SCHEMA public;

stackoverflow.com/questions/3327312/how-can-i-drop-all-the-tables-in-a-postgresql-database

 

 

중복되는 특정 컬럼데이터 무시

create 할 때 UNIQUE로 설정해준 뒤

insert into table_name (key_value) values ('key') on conflict (key_value) do nothing

이때, serai로 설정한 넘버같은 경우는 입력되지 않으면서 값이 건너뛰어질 수 있다.

SELECT setval('tablename_colname_seq', MAX(colname), true) FROM tablename; 으로 설정해줘서 다시 초기화해주면 된다.

반응형