본문 바로가기

DB

(35)
[SQL] MYSQL 주별 데이터 조회 MYSQL 주별(월요일 기준) 데이터 조회시 필요한 항목 조회 SELECT DATE_FORMAT(SYSDATE(), '%x') AS 연도 , DATE_FORMAT(SYSDATE(), '%v') AS 주차 , QUARTER(SYSDATE()) AS 분기 , DATE_FORMAT(ADDDATE(SYSDATE(), - WEEKDAY(SYSDATE())), '%Y%m%d') AS 이번주시작일 , DATE_FORMAT(DATE_ADD(ADDDATE(SYSDATE(), - WEEKDAY(SYSDATE())), INTERVAL 6 DAY), '%Y%m%d') AS 이번주종료일 주별시작일, 주별종료일 확인도 가능 확인 필요한 일자를 SYSDATE() 대신 대입하여 확인 ※ 주별 데이터 확인시 주별 시작일을 월요일로 지..
[DB] DDL, DML, DCL, TCL DDL(Data Definition Language) : 정의어 CREATE: 데이터베이스, 테이블 등을 생성 DROP: 데이터베이스, 테이블 삭제 ALTER: 테이블의 컬럼등을 수정 TRUNCATE: 테이블을 초기화 ​ DML(Data Manipulation Language) : 조작어 SELECT: 데이터 조회 INSERT: 데이터 삽입 DELETE: 데이터 삭제 UPDATE: 데이터 수정 ​ DCL(Data Control language) : 제어어 GRANT: 권한부여 REVOKE: 이미 부여된 DB 객체 권한 취소 ​ TCL(Transaction Control language) : 트랜잭션 제어어 COMMIT: 작업을 수행 ROLLBACK: 트랜잭션 작업을 취소
[SQL] 계층형구조 쿼리 계층형구조 쿼리 START WITH: 시작 항목 설정 CONNECT BY PRIOR: 계층 우선 항목 (부모 = 자식) ORDER SIBLINGS BY: 계층형 순서 (사용시 prior 첫번째 인자 기준으로 정렬) ​ 예제 SELECT * FROM MENU_INFO START WITH MENU_LEV = 0 --MENU_LEV가 0인 항목을 시작으로 CONNECT BY PRIOR MENU_ID = HRNK_MENU_ID --MENU_ID 기준으로 하위메뉴를 설정 ORDER SIBLINGS BY HRNK_MENU_ID ASC, SORT_SNO ASC --MENU_ID 기준으로 HRNK_MENU_ID, SORT_SNO 오름차순 정렬
[DB] SELECT한 결과 INSERT 1. SELECT한 모든 데이터를 INSERT INSERT INTO 데이터 넣을 테이블 SELECT * FROM 데이터 가져올 테이블 ​ 2. SELECT한 특정 컬럼만 INSERT (INSERT할 테이블 컬럼과 SELECT할 테이블 컬럼이 동일해야함) INSERT INTO 데이터 넣을 테이블 (컬럼1, 컬럼2, 컬럼3) SELECT 컬럼1, 컬럼2, 컬럼3 FROM 데이터 가져올 테이블
[DB] 테이블과 데이터 같이 복사 CREATE TABLE 새테이블명 AS (SELECT * FROM 복사할 테이블명)
[DB] 동의어(SYNONYM) 설정 시노님(SYNONYM): 테이블의 별칭 CREATE SYNONYM 스키마.동의어 사용할 테이블명 FOR ​스키마.기준테이블
[DB] 테이블 권한부여 DB table권한부여 SELECT 권한: GRANT SELECT ON 권한부여할 테이블 TO 계정 또는 ROLL INSERT 권한: GRANT INSERT ON 권한부여할 테이블 TO 계정 또는 ROLL UPDATE 권한: GRANT UPDATE ON 권한부여할 테이블 TO 계정 또는 ROLL DELETE 권한: GRANT DELETE ON 권한부여할 테이블 TO 계정 또는 ROLL
[SQL] 속도 개선 TIP 쿼리 작성 및 DB처리 속도 개선을 위한 Tip 1. 인덱스 사용 필수 2. EXIST sub쿼리 사용시에도 인덱스 생성하여 속도개선 3. WHERE문의 정확한 설정 필요 (설정이 어려울 경우 hint사용-비권장) 4. 날짜컬럼은 vchar로 설계권장(TO_NUMBER 사용시 지연상황 발생) 5. ROWNUM, ROW_NUMBER(), ORDER BY 사용시 대량의 파일이 연산되므로 조건을 줄여 사용권장 6. LIKE문 사용시 컬럼 앞뒤로 %사용할 경우 인덱스 수행불가 ('찾는단어' || '%' 또는 '%' || '찾는단어'와 같이 하나만 사용시에는 인덱스 수행)