postsql을 이제 막 설치했다... 이것저것 사용하면서 사용했던것들을 정리해봤다.
다른 DB랑 확 다른 것도 있는데 편한 것 같기도하고.. 좀 더 사용해봐야할 것 같다.
- 스키마 생성
create schema 생성할스키마이름
- 스키마 조회
\dn
- User 생성
create user 생성할유저이름 with encrypted password ‘사용하고싶은비밀번호’;
- User 조회
select * from pg_user;
- Owner 변경
예를 들어 test DB의 owner을 test owner로 바꾸고 싶을 때
\l -> 리스트 확인
alter database owner바꾸고싶은db owner to 바꾸고싶은owner;
- Table 생성
create table 생성하고픈테이블이름(
필드명 필드타입, ….);
- 테이블 지우기
Ex) test라는 table을 지우고 싶을 때
drop table test;
● 기본적인 필드 타입
smailint 2 바이트 정수
integer 4 바이트 정수
bigint 8 바이트 정수
decimal(a, a)/numeric(a, s) 10진수형
real 6자리 단정도 부동소수점
double precision 15 자리 배정도 부동소수점
serial 4 바이트 일련번호
bigserial 8 바이트 일련번호
date 일자
time 시간
timestamp 일자시간
char(문자수)/character 고정길이 문자열 (최대 4096 문자)
varchar(문자수)/charcter varying 가변길이 문자열 (최대 4096 문자)
text 무제한 텍스트
Large Object oid형
boolean/bool true/false
- 데이터 넣기
Ex) test라는 table에 1,1를 넣겠다.
insert into test values(1,1);
- 데이터 확인하기
Ex) test 테이블 안에있는 데이터 확인
Select * from test;
- 특정 owner의 테이블 목록 확인하기
Ex) Test owner의 테이블 목록 확인하기
- Roles 보기
\du
- 스키마 owner 변경
Alter schema name owner to newowner
참고)./psql -d test 하면 뒤에 최고 관리자가 생략되어있다.
- 현재 접속 스키마 확인하기
show search_path;
참고) DB안에 특정 스키마를 만들지 않았다면 default로 public 스키마가 만들어져있고 public 스키마 안에 저장이 된다.
- 접속 스키마를 지정하기(한번)
참고) 지정하지 않았을 때 default 스키마는 public이다.
Set search_path to testschema;
- 접속 스키마 지정하기(영구)
Alter schema 접속하고싶은스키마이름 owner to owner이름
Ex) kmsauth owner가 접속했을 때 kmsauth라는 스키마에 접속하겠다.
alter schema kmsauth owner to kmsauth;
* 스키마 생성, 삭제, 변경
-- 스키마 생성
CREATE SCHEMA schema_name AUTHORIZATION username;
-- 스키마 이름 변경
ALTER SCHEMA schema_name RENAME TO new_schema_name;
-- 스키마 소유자 변경
ALTER SCHEMA username OWNER TO new_username;
-- 스키마 삭제
DROP SCHEMA schema_name CASCADE;
- 데이터베이스 목록 확인하기 => \l
- 사용하는 데이터베이스 변경하기 => \c DB이름
- 데이터베이스 생성하기 => create database DB이름
- 스키마 목록 확인, 생성하기 => \dn
============================================================================
Pgadmin3 설치하기
https://www.pgadmin.org/download/
압축해제
실행
설치 완료 후 실행
- Server 추가
File -> add Server ->
name |
아무 이름이나 지정하면 됨 |
Host |
접속하고 싶은 ip |
Port |
Postgress 포트 |
Maintance DB |
접속 하고 싶은 DB |
Usename |
접속 하고 싶은 user이름 |
Password |
접속 하고 싶은 user이름의 비밀번호 |
Store password |
비밀번호 저장할 것이면 체크 |
============================================================================
참고)
postgress conf 파일
postgress를 사용하면서 건드려야 하는 conf 파일
주로 pg_hba.conf => 접근제어 / postgresql.conf => DB 전반적인 것 수정할 때 예를 들어 메모리 크기나 성능 즉 DB를 더 빠르게 튜닝하고 싶을 때 같은 경우 사용한다.
- pg_hba.conf
Trust는 비밀번호 없어도 접속 되고 외부에서도 접속 허용하고 싶으면 아래와 같이 설정
host all all 0.0.0.0/0 md5
md5는 비밀번호로 접속하게 됨
- postgresql.conf
listen_address를 *해야 로컬말고도 접속이 됨
max_connections는 몇 개의 연결을 할 수 있는지 설정할 수 있음.
============================================================================
postgress 구조
스키마 때문에 약간 이해하기가 어려웠다. TABLE과 VIEWS등이 합쳐진 것을 스키마라고 하고 디폴트로는 public스키마가 있고, 다른 스키마도 만들 수 있구나라고 이해를 했다. DB는 물리적으로 데이터를 구분하고 schema는 논리적으로 구분한다는데 table로 구분하지 않고 구지 스키마를 사용하는 이유는 무엇일까? 문득 궁금해졌는데 postgress가 다중 사용자 접속을 위해 만들어진 DB라서 그런 것 같다고 이해를 했다.
그런데 갑자기 등장한 tablespaces....?
user/groups과 database와 tablespaces는 각각 별개라고 이해하는 것이 빠를 듯하다!
'DATABASE > DB study' 카테고리의 다른 글
DB function procedure package (0) | 2019.11.07 |
---|---|
Transaction (0) | 2019.10.10 |
what different between oracle 11g and oracle 12c (2) | 2019.08.02 |
DB 종류/DB 서버 모델/웹 애플리케이션 구조/SqlLite (0) | 2019.05.09 |
oracle Encrypt(DigestSHA256) - 1 (0) | 2019.02.21 |
댓글