본문 바로가기

Dev. Database

(58)
[TOAD] 오브젝트명, 컬럼명 자동완성 [출처] 구루비 강좌, http://www.gurubee.net/lecture/2790 Toad에서는 Editor창에서 쿼리를 작성할 때 오브젝트 명이나 컬럼 명을 자동으로 완성해주는 Code Insight Pick List를 제공합니다. 자동 완성 기능을 사용하기 위해서는 Menu > Edit > Pick list dropdown을 선택하거나 단축키로 Ctrl + T를 사용합니다. 자동 완성을 실행하면 해당 알파벳으로 시작하는 오브젝트가 리스트로 나타납니다. 리스트에 보여지는 오브젝트는 Option에서 설정할 수 있는데 Menu > View > Toad Options > Editor > Code Assist 를 선택합니다. 또한 Toad Insight 부분에서는 자동 완성에 대한 구체적인 옵션을 지정할..
커맨드 라인에서 dump 데이터 import 하기 읽기 귀찮으신 분들은 아래와 같이 하면 한 번에 됩니다.mysql -u root -p employees < employees.sql 어찌보면 이게 포스팅 할 거리인가? 라고 의문을 가질 수도 있겠습니다.mysql에 익숙하지 않은... 좀 더 정확히 말해서 커맨드 라인에 익숙하지 않은 저로서는 방금 전까지 삽질을 하였기에 여기에 기록하기로 하였습니다. 좋은 DB 예제가 있어서 하나씩 실행해 보기로 마음을 먹었습니다.깃헙에서 대략 35MB정도의 DB를 다운 받았습니다. (자세히 보니 mysql 공식 사이트에 있는 예제였군요... ) 첫번째 예제는 test_db를 설치하는 것이었는데요. 내일부터 할까 하려다가... 샘플 DB 설치하는게 뭐 그리 오래 걸리겠어라는 생각이 들어서 바로 실행하였습니다. 문제는 제가..
식별 관계 비 식별 관계 [출처] exERD 커뮤니티 부모테이블의 유니크 키나 기본키로 지정된 컬럼이 자식테이블의 기본키 컬럼과 연결된 경우 실선으로 표기되고 식별 관계라고 합니다. 부모테이블의 유니크 키나 기본키로 지정된 컬럼이 자식테이블의 일반 컬럼과 연결된 경우 점선으로 표기되고 비식별 관계라고 합니다. 쉽게 이야기하면 부모 컬럼을 참조하는 자식 컬럼이 식별 (PK) 가능하면 식별 관계라고 하고 식별이 가능하지 않으면 비식별 관계라고 합니다. 즉, 자식 컬럼이 PK 인지 아닌지에 따라 식별 관계, 비식별 관계라고 이야기합니다.
GROUP BY - 기준으로 자른 후 통계 내기 1. 성으로 잘라서 몇 명의 사람이 존재하는지 계산하기SELECT SUBSTRING(name, 1, 1) AS label, COUNT(*) FROM Persons GROUP BY SUBSTRING(name, 1, 1); 2. 나이로 자른 후 통계 내기SELECT CASE WHEN age = 70 THEN '노인' ELSE NULL END AS age_class, COUNT(*) FROM Persons GROUP BY CASE WHEN age = 70 THEN '노인' ELSE NUL..
집계와 조건 분기 - 2. 집약결과로 조건 분기 2. 집약결과로 조건 분기 - UNIONSELECT EMP_NAME , MAX(TEAM) AS TEAM FROM Employees GROUP BY EMP_NAME HAVING COUNT(*) = 1 UNION SELECT EMP_NAME , '2개를 겸무' AS TEAM FROM Employees GROUP BY EMP_NAME HAVING COUNT(*) = 2 UNION SELECT EMP_NAME , '3개 이상을 겸무' AS TEAM FROM Employees GROUP BY EMP_NAME HAVING COUNT(*) >= 3 ; - CASE SELECT EMP_NAME, CASE WHEN COUNT(*) =1 THEN MAX(TEAM) WHEN COUNT(*) =2 THEN '2개를 겸무' W..
집계와 조건 분기 - 1. 집계 대상으로 조건 분기 1. 집계 대상으로 조건 분기- UNION을 사용한 방법 SELECT PREFECTURE, SUM(POP_MEN) AS POP_MEN, SUM(POP_WOM) AS POP_WOM FROM( SELECT PREFECTURE, POP AS POP_MEN, NULL AS POP_WOM FROM POPULATION WHERE SEX = '1' UNION SELECT PREFECTURE, NULL AS POP_MEN, POP AS POP_WOM FROM POPULATION WHERE SEX = '2') tmp GROUP BY PREFECTURE; -> 실행계획을 보면 POPULATION 테이블에 풀 스캔이 2회 수행되는 것을 확인할 수 있다. - CASE식을 사용한 방법SELECT PREFECTURE, SUM(C..
Join / Inline query /* - Join / Inline query - 국가, 근무지, 부서명, 부서장, 직군(인라인), 사원번호, 사원명, 전화번호*/ - 셀프조인 부분을 주의하자- 인라인 쿼리 : 컬럼 한 개 기준으로는 조인보다 속도가 빠르다.- 아우터 조인 : 데이터가 없을 때는 안 가져오겠다. SELECT COU.COUNTRY_NAME AS 국가 , LOC.CITY AS 근무지 , DEPT.DEPARTMENT_NAME AS 부서명 , MNG.FIRST_NAME || ' ' || MNG.LAST_NAME AS 부서장 , (SELECT JOB_TITLE FROM JOBS JOB WHERE JOB.JOB_ID = EMP.JOB_ID) AS JOB_TITLE , EMP.EMPLOYEE_ID AS 사원번호 , EMP.FIRST_..
문자 및 날짜 기본 함수 /* 문자 함수 */ SELECT SYSDATE , TRUNC(SYSDATE, 'YEAR') AS CUR_YEAR /*년의 시작일*/ , TRUNC(SYSDATE, 'MONTH') AS CUR_MON /*월의 시작읷*/ , TRUNC(SYSDATE, 'DAY') AS CUR_DAY /*주의 시작읷*/ , TRUNC(SYSDATE, 'HH24') AS CUR_HH /*현재 시작시간*/ , TRUNC(SYSDATE, 'MI') AS CUR_MI /*현재 분의시간*/ , TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') AS CUR_TIME , TO_CHAR(123456,'999,999') AS NUM_TO_CHAR , TO_DATE('20161204', 'YYYYMMDD') AS C..