본문 바로가기

데이터베이스

(6)
[Oracle] 다른 스키마에 테이블 생성하기 주제 다른 스키마에 테이블을 생성하는 방법 버전 Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit Production 실행 플로우 유저 TOM 생성 후 유저의 접속 권한과 테이블 생성 권한 부여 테이블 스페이스 TOMJERRY 생성 후 TOM에게 테이블 스페이스 TOMJERRY 에 대해 일부 할당 테스트 테이블(칼럼, 프라이머리키, 커멘트 등) 생성 유저 JERRY 생성 후 유저의 접속 권한과 테이블 생성 권한, 테이블 스페이스 TOMJERRY 에 대해 무제한 할당 다른 유저 TOM 하위에 테이블을 생성하기 위해 권한 부여 TOM 스키마 하위에 테스트 테이블(칼럼, 프라이머리키, 커멘트 등) 생성 TOM 으로서 테이블 삭제 JERRY 로서 ..
데이트 타임 칼럼에서 시간만 추출하기 + GROUB BY 피하기 #SQL 문을 연습하자 #Programmers 코딩테스트 연습 - 입양 시각 구하기(1) ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 programmers.co.kr > DATETIME 칼럼에서 시간만 추출해서 그 시간에 해당하는 레코드의 수와 함께 리턴하는 문제 ORACLE SELECT TO_CHAR(DATETIME, 'HH24') AS HOUR, COUNT(ANIMAL_ID) FROM ANIMAL_OUTS GROUP BY TO_CHAR(DATETIME, 'HH24') HAVI..
CASE ~ WHEN ~ THEN ~ ELSE ~ END #SQL 문을 연습하자 #Programmers 코딩테스트 연습 - 중성화 여부 파악하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr ORACLE & MYSQL SELECT ANIMAL_ID, NAME, (CASE WHEN (SEX_UPON_INTAKE LIKE '%Neutered%' ) THEN 'O' WHEN (SEX_UPON_INTAKE LIKE '%Spayed%') THEN 'O' ELSE 'X' END) "중성화" FROM A..
Like 대소문자 비교 #SQL 문을 연습하자 #Programmers ORM을 사용해서 SQL문과 멀어졌는 데, 내가 사용하는 ORM 쿼리 문이 효율적인지 잘 알기 위해서 소소하게 연습하기로 했다 일단 알고 있는 문제 사이트는 Programmers 밖에 없어서 Programmers 문제들을 모두 풀어보는 것을 첫걸음으로! 코딩테스트 연습 - 이름에 el이 들어가는 동물 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr SELECT ANIMAL_ID, NAM..
실행시간 (Execution time) vs 패치시간 (Fetch time) 지난주에 며칠 동안 데이터베이스 관련 앱 성능을 개선하는 작업을 진행했다. 가장 큰 테이블의 경우 row 가 몇 백만 개 정도가 되는 데, 그 테이블과 다른 테이블들을 조인해 만든 뷰들이 난리가 났다. (데이터가 많고 정렬 쓰려면 결국 반정규화가 최고라는 교훈을 남겼는 데, 이건 따로 기록을 해둬야지) 문제가 되는 SQL 문을 돌려보니 fetch 시간이 600 초 가까이 되었고 좀 놀랐다. 실행시간은 생각보다 얼마 안 걸렸다. 집에 가는 길에 직장 동료에게 fetch 시간이 600 초가 넘었어요.. 하고 하소연을 했는 데, 동료가 fetch 시간이 뭐냐고 물었다. fetch 시간은 당연히 데이터를 가져오는 데 걸리는 시간이라고 기억하고 있는 데, 기억이 희미해 열심히 Oracle 공식 문서의 정의를 뒤져..