1. DATABASE 생성

  • DATABASE 생성

  • PostgreDB의 경우 대문자인식은 ““으로 감싸야 사용가능하다.

    CREATE DATABASE "{database_name}";
    

2. USER 생성

  • USER 생성

    CREATE USER {user_name} WITH PASSWORD '{user_password}'
    
  • SUPERUSER 권한부여(개발용 계정으로 사용 예정)

    ALTER USER {user_name} WITH SUPERUSER;
    
  • 유저에게 특정 권한 부여

    GRANT {permissions} ON DATABASE {db_name} TO {user_name};
    

    참고 URL : https://www.postgresql.org/docs/current/sql-grant.html

    • 예시

      GRANT ALL ON DATABASE "ABCD_DB" TO abcd_user;
      
  • 계정 부여권한 해제

    REVOKE ALL ON DATABASE {db_name} FROM {user_name};
    
  • 계정 삭제

    DROP ROLE {user_name};
    

3. DB insert

3.1. 기본 insert

INSERT INTO Table_Name
VALUES (VALUE_LIST1, VALUE_LIST2, ...);
INSERT INTO PLAYER
VALUES ('1', 'player_name', 'code1', 1, 21);

3.2. 리스트/배열 데이터 insert

INSERT INTO Table_Name
VALUES ('{LIST_VALUE}');
INSERT INTO "WeightsFile" 
VALUES (1, 'test_Weights.npz', '{test_catagory1, test_catagory2}', 1, 'color')

3.3. 2차원 리스트 저장방법

사용환경 : django, postgreDB

키를 index로 값을 data로 변환

# models.py
class modelName(models.Model):
    columnName = models.JSONField()

# process.py (2차원 리스트 > json)
from .models import modelName

Dict = {}
for i in range(len(list1)):
    Dict[i] = list2['data'][i]

modelInstance = modelName(
    columnName = Dict
)
modelInstance.save()

# process.py (json > 2차원 리스트)
exportList = list(modelName.objects.filter(id=id).values('id', 'columnName'))

for i in range(len(exportList)):
    exportList[i]['data'] = list(exportList[i]['data'].values())

4. 기본키 초기화

ALTER SEQUENCE "TableName_id_seq" RESTART WITH 1;

4.1. 테이블 데이터 삭제 및 ID값 초기화 예제

delete from "DatasheetUpload" where id > 0;
ALTER SEQUENCE "DatasheetUpload_id_seq" RESTART WITH 1;

delete from "Annotations" where id > 0;
ALTER SEQUENCE "Annotations_id_seq" RESTART WITH 1;

delete from "Categories" where id > 0;
ALTER SEQUENCE "Categories_categories_id_seq" RESTART WITH 1;

delete from "Images" where id > 0;
ALTER SEQUENCE "Images_id_seq" RESTART WITH 1;