Backend/SQL

· Backend/SQL
규모가 큰 서비스의 DB구조를 파악하려면 ERD랑 관련 산출물로는 부족할 때가 많다.주로 오라클을 사용하다 PostgreSQL를 제대로 써보는 건 처음이라자주 사용하던 코드조각을 변환해보았다.  1. 컬럼명 or 컬럼 코멘트로 테이블 찾기/*[검색] 컬럼명 , 컬럼 코멘트*/select isc.table_schema, isc.table_name, isc.column_name, col_description(a.attrelid, a.attnum) as column_comment, case when character_maximum_length is null then data_type else data_type || '(' || isc.character_maximum_l..
· Backend/SQL
oracle만 사용하다가 mysql을 써보려고 하니 데이터타입으로 enum이 있는 것을 발견했다.자바에서 유용하게 쓰던 enum 타입이 있어서 코드테이블을 따로 만들지 않고,해당 타입을 사용해볼 요량으로 좀 더 찾아봤는데 단점을 몇가지 발견해서 기록용으로 관련 글들을 스크랩한다.  🙏레퍼런스[번역] MySQL의 ENUM 타입을 사용하지 말아야 할 8가지 이유Java Enum 타입 데이터베이스 저장 형식은 뭐가 좋을까?
· Backend/SQL
▶ 원인 PK가 2개인 테이블의 UPDATE문에 WHERE절을 1개만 지정했다 문제는 이걸 커밋하고 1시간 후에나 알게 된 것..... 내가 의도했던 것보다 많은 데이터가 바뀌었다. 검색해보니 대부분 UPDATE 복구는 10분 이내에 하는 방법이라 나와는 맞지않았다. 해서 다음을 위해 특정 시간대로 복구하는 쿼리를 기록한다. -- 복구할 데이터 확인 ( 오늘 오전 8시 기준 ) SELECT * FROM 테이블명 AS OF TIMESTAMP(TO_DATE('2022-09-14 08:00', 'YYYY-MM-DD HH24:MI:SS')) ORDER BY 컬럼명 ; -- 현재 테이터 확인 SELECT * FROM 테이블명 ORDER BY 컬럼명 ; ORDER BY는 없어도 되지만 데이터 확인을 위해 넣었다. ..
· Backend/SQL
/*테이블 백업(복사)*/ CREATE TABLE 백업테이블명(신규) AS SELECT * FROM 기존테이블명; /*백업본 제약조건 추가 --> 복사하면 제약조건 + 인덱스 유실 */ ALTER TABLE 자식테이블 ADD CONSTRAINT 제약조건명 PRIMARY KEY (컬럼명, 컬럼명...) ADD CONSTRAINT 제약조건명 FOREIGN KEY (자식컬럼명) REFERENCES 부모테이블 (부모컬럼명); /*제약조건 검색*/ SELECT TABLE_NAME ,CONSTRAINT_NAME ,INDEX_NAME FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME LIKE '%제약조건명%' ; /*제약조건 삭제*/ ALTER TABLE 테이블명 DROP CONSTRAI..
· Backend/SQL
직접 설계하고 구현했던 DB구조는 잘 알고 있었지만, 취업 후 이미 서비스 되고 있는 DB의 구조를 파악하는 것이 쉽지 않았다. 특히 규모가 큰 프로젝트일수록 ERD와 테이블정의서로 파악하기 어려웠기 때문에 도움이 되었던 쿼리문을 정리해보았다. 1. 특정 컬럼이 존재하는 테이블, 뷰 검색 --컬럼 검색 SELECT DISTINCT TABLE_NAME --FROM ALL_TAB_COLUMNS/*전체 테이블*/ FROM USER_TAB_COLUMNS/*접속한 계정의 전체 테이블*/ WHERE COLUMN_NAME LIKE '%컬럼명%' ORDER BY TABLE_NAME ; >> 컬럼명 MEM_ID 검색 결과. >> MEM_ID가 포함된 컬럼을 가진 테이블을 알고 싶었기 때문에 LIKE 문을 사용했지만, 컬..
파란코딩
'Backend/SQL' 카테고리의 글 목록