프로그래밍 언어/DB

    [SQL] DELETE / TRUNCATE / DROP 명령어 차이점

    [SQL] DELETE / TRUNCATE / DROP 명령어 차이점

    DELETE : 데이터만 지워지고 쓰고 있던 디스크 상의 공간은 그대로 가지고 있음 TRUNCATE : 테이블의 데이터를 전부 삭제하고 사용하고 있던 공간을 반납 - 테이블의 데이터가 모두 삭제되지만 테이블 자체가 지워지는 것은 아님 DROP : 테이블 자체를 삭제하는 명령어 - 테이블 자체가 모두 지워지며 해당 테이블에 생성되어 있던 인덱스도 삭제됨

    [SQL] :: - double colon (범위 결정 연산자)

    범위결정연산자 :: (double colon)은 복합 데이터 형식의 정적 멤버에 대한 액세스를 제공한다. cast/convert함수와 같은 역할을 하고 있다.

    [SQL] row number

    [SQL] row number

    결과 집합 파티션 내의 행 일렬 번호를 반환한다. 각 파티션의 첫번째 행은 1로 시작한다. 쿼리를 실행할 때 계산되는 임시 값으로 테이블의 숫자를 유지하려면 IDENTITY 속성 및 SEQUENCE를 참조하면된다. ROW_NUMBER ( ) OVER ( [ PARTITION BY value_expression , ... [ n ] ] order_by_clause ) 예시 select *, row_number() over(partition by api_info_id order by cdate) event_time from test.api_param event_num 이 생성되는 것을 확인할 수 있다.

    postgresql 서비스 시작 및 상태 확인

    postgresql 서비스 시작 및 상태 확인

    현재 패키지 PostgreSQL 버전 확인 apt show postgresql postgresql 상태 확인 service postgresql status postgresql 재시작 /etc/init.d/postgresql restart netstat -nr var/lib/postgresql/VERISON/main var/lib/postgresql/10/main

    Postgresql에서 5432 port가 열려있냐는 문제(Ubuntu 기준)

    1. 에러 각종 서비스에서 5432 port가 열려있느냐를 묻는 에러가 발생한다. django는 이런 식. Is the server running on host XXX and accepting TCP/IP connections on port 5432? 어쨌든 connection이 안되면 서비스가 실행되는지, port가 열려있는지 확인해보는게 좋다. 2. 확인 1) htop 에서 postgresql이 있는지 본다. 혹은 ps -el. 2) netstat -ntl로 5432가 열려있는지 본다. 3) service postgresql status로 서비스가 active 상태인지 본다. 3. 해결방법 1) postgresql이 실행되어 있지 않다. sudo service postgresql start. 2) 5..

    서버에서 postgresql 접속 및 데이터베이스, 스키마, 테이블 조회

    서버에서 postgresql 접속 및 데이터베이스, 스키마, 테이블 조회

    psql로 접속 후 사용하는 명령어이다. 명령어 postgresql 접속 명령어 sudo -u postgres psql postgresql 종료 명령어 \q ** crud 명령어 뒤에는 세미콜론을 붙여서 사용해야한다. 데이터베이스 전체 데이터베이스 조회 select datname from pg_database; database 확인 (소문자 L) \l database 변경 \c 데이터베이스이름 테이블 전체 테이블 조회 #psql \dt \dt *.* \c 데이터베이스이름 #sql select tablename from pg_tables; SELECT * FROM pg_catalog.pg_tables; 계정 사용자 확인 select * from pg_user; 계정삭제 drop role 계정; 계정 확인 ..

    postgresql - relation "hibernate_sequence" does not exist

    spring controller 에서 db에 저장 하려고 하는데 relation "hibernate_sequence" does not exist 다음과 같은 에러가 나왔다. 내 경우는 application.properties 에 아래 내용을 추가해주니 해결되었다. spring.jpa.hibernate.ddl-auto=update

    Column count of mysql.proc is wrong. Expected 21, found 20. The table is probably corrupted

    dbeaver 를 사용하는데 sql문을 작성하려고 하는데 다음과 같은 에러메시지가 발생했다. 해결방법으로는 dbeaver를 upgrade 해주니 해결되었다. ugrade 시 에러창이 나오면 무시 를 눌러주고 진행하면 된다.

    NoSQL

    NoSQL 을 이용한 구현은 데이터 모델링을 얼마나 잘했느냐가 개발 성공 여부 90%이상을 차지한다. RDBMS에서 도메인 모델 -> [테이블 -> 쿼리] 순서로 진행했다면 NoSQL에서는 도메인 모델 -> [쿼리 결과 -> 테이블] 순서로 테이블을 디자인 해야 한다. NoSQL은 쿼리의 효율성을 위해서 데이터를 정규화 하지 않고 의도적으로 중복된 데이터를 저장하는 등의 비정규화된 데이터 모델 설계 방식으로 접근해야 한다. NoSQL 에는 ORDER BY, GROUP BY 를 이용한 그룹화, 조인 기능이 없다. NoSQL 모델링 패턴 1. 역정규화 - 같은 데이터를 중복해서 저장하는 방식 - 테이블 간의 조인 없앨 수 있다. - 하나의 테이블에 조인 될 데이터를 중복 저장하게 되면 1번의 IO로도 데이터..

    entity, attribute

    1. 엔터티(Entity) 1-1. 엔터티(Entity)란? 데이터 베이스의 개념 중에서도 데이터 모델에 대해 공부를 시작할 때 제일 먼저 나오는 개념이 '엔터티(Entity)' 이다. 엔터티는 쉽게 말해 실체, 객체라고 생각할 수 있다. 일반적으로 엔터티를 정의하는 개념들을 정리하여 나타내면 다음과 같이 볼 수 있다. - 엔터티는 사람, 장소, 물건, 사건, 개념 등과 같은 명사에 해당된다. - 엔터티는 업무상 관리가 필요한 것에 해당된다. - 엔터티는 저장 되기 위한 어떤 것(Thing)에 해당된다. 예를 들어 학교라는 곳에선 과목이라는 엔터티가 존재할 수 있다. 그리고 엔터티는 인스턴스의 집합으로 나타나게 됩니다. 즉 과목이라는 엔터티가 있다면, 수학, 영어, 국어와 같은 인스턴스가 과목이라는 엔터..