본문 바로가기

데이타베이스43

[SQL] 조인 조인 두 개 이상의 테이블을 연결하여 데이터를 조회하는 것 - 등가 조인: 테이블간에 동일한 조건을 이용하여 처리, = 연산자 사용 - 비등가 조인: 테이블간에 동일하지 않은 조건을 이용하여 처리, between, 등의 연산자를 이용하여 처리 - 아웃 조인: 조인 조건을 만족하지 않는 경우에도 결과를 봐야 하는 경우 사용 - 셀프 조인: 자기자신의 정보를 이용하여 조인 처리 카테시안 프로덕트(Cartesian Product) 조인 조건을 생략하거나, 잘 못 설정하여 테이블 간의 모든 데이터가 연결되는 것 SET 연산자 조인을 사용하지 않고 두 개 이상의 테이블의 연관된 데이터를 조회해 오는 방법 - UNION: 테이블 간의 합집합, 중복데이터 제거, 자동으로 정렬 작업 처리 - UNION ALL: 테이블.. 2015. 8. 3.
DBMS의 공집합과 집합함수 DBMS의 공집합과 집합함수 데이터베이스의 조회조건에 해당하는 값이 하나도 없는 경우를 공집합이라고 한다. 집합함수의 경우 공집합의 경우에 NULL을 반환한다. - 집합함수: count, sum, avg, max, min Toad 같은 툴을 이용하여 쿼리를 날리면 공집합과 NULL값 반환의 구분이 어려운데, CLI를 이용하면 공집합의 경우 Empty Set을 반환하는 것으로 확인 가능하다. MySQL에서 비어 있는 테이블을 이용하여 쿼리를 날릴경우 아래와 같은 결과를 확인할 수 있다. mysql> select * from employee; Empty set (0.00 sec) mysql> select emp_id from employee where 1=2; Empty set (0.00 sec) mysql.. 2015. 7. 27.
[MySQL] Error Code: 1215. Cannot add foreign key constraint Error Code: 1215. Cannot add foreign key constraint MySQL 에서 외부키를 생성하는 중 오류가 발생하면 확인해 볼것 - 오타 - 문법 오류 - 외부키로 지정하는 칼럼이 기본키인지 여부 alter table [테이블명] add constraint [제약조건 명] foreign key([칼럼명]) references [외부테이블명]([외부 칼럼명(외부테이블의 기본키)]); alter table player add constraint player_fk foreign key(team_id) references team(team_id); 2015. 7. 24.
SQLD 자격증 정보 SQLD 시험 주요 내용 시험과목 주요내용 세부내용 데이터 모델링의 이해 데이터 모델링의 이해 데이터모델의 이해 엔터티 속성 관계 식별자 데이터 모델과 성능 정규화와 성능 반정규화와 성능 대용량 데이터에 따른 성능 DB 구조와 성능 분산DB 데이터에 따른 성능 SQL 기본 및 활용 SQL 기본 정보 요구 사항 DDL DML TCL WHERE 절 FUNCTION GROUP BY, HAVING 절 ORDER BY 절 조인 SQL 활용 표준조인 집합연산자 계층형 질의 서브쿼리 그룹 함수 윈도우 함수 DCL 절차형 SQL SQL 최적화 기본 원리 옵티마이저와 실행계획 인덱스 기본 조인 수행 원리 시험문제는 데이터모델링의 이해에서 10문항(20점), SQL 기본 및 활용에서 40문항(80점)이 나온다. 총점 60.. 2015. 7. 23.
[MySQL] ERROR 1045 (28000): 에러 MySQL 접속시 "ERROR 1045 (28000):" 에러가 발생하면 패스워드가 틀린것임 mysql -h[주소] -P[포트] -u[유저명] -p[암호] http://zetawiki.com/wiki/MySQL_%EC%A0%91%EA%B7%BC_%EA%B1%B0%EB%B6%80_%EC%98%A4%EB%A5%98 2015. 7. 22.
오라클의 소스코드에 특정 문자열 검색하기 오라클을 유지보수 하다보면 사용자가 작성한 프로시저, 함수, 뷰등의 소스코드 중에서 특정 문자열을 검색하고 싶을 때가 있을 것이다. 이럴 때 이용할 수 있는 쿼리가 다음과 같다. SELECT * FROM all_source aas WHERE aas.NAME LIKE 'XXMSC%' -- object 명 AND aas.owner = 'APPS' -- owner 명 AND (upper(aas.text) LIKE '%CREATE_SOURCE_PGM%') -- 검색하고자 하는 문자열 이렇게 입력하면 문자열이 입력되어 있는 소스명, 타입, 라인번호를 반환해 준다. 2013. 4. 17.
오라클 over() 함수 참고1, 참고2, 참고3, 참고4 over 함수는 group by, order by 를 이용한 서브쿼리의 사용을 편리하게 하기 위해 사용하는 함수이다. 보통 over 함수는 단독으로 사용하기 보다는 count(), max(), min(), sum(), avg(), rank(), row_number() 등과 같은 분석 함수와 함께 사용된다. -- OVER 함수 이용 SELECT NAME, NO, SUM(NO) over(PARTITION BY NAME ORDER BY NAME) FROM ( SELECT 'A' AS NAME, '31' AS NO FROM dual UNION SELECT 'B', '32' FROM dual UNION SELECT 'B', '45' FROM dual UNION SELECT 'D'.. 2013. 4. 17.
주간, 월간 근무가능 일 수 구하기 trunc(date, 'd')와 last_day 를 이용해서 처리참조링크1참조링크2 -- 캘린더의 정보와 사용자 정보를 이용하여 주간 근무 가능일수 주회 -- 입력한 날짜를 trunc(date, 'd')로 시작일, trunc(date +7, 'd') -1 로 마지막일을 구해서 처리 SELECT COUNT(*) INTO p_workday_count FROM sfa_calendar sc ,sfa_user_master u WHERE sc.company_code = u.company_code AND u.sfa_user_id = v_user_id AND to_date(sc.cal_date, 'YYYYMMDD') BETWEEN trunc(v_date, 'd') AND trunc(v_date + 7, 'd') - 1.. 2013. 3. 27.
오라클 날짜 정보 가지고 놀기 주간 시수, 월간 시수 등의 데이터를 추출하기 위해서 날짜 데이터를 가지고 놀다 보니 다음의 몇가지만 알고 있어도 오라클의 날짜정보를 잘 이용할 수 있을 것 같다. add_month, +, -trunc, to_datelast_daybetween and이 정도만 숙지하고 있어도 데이터를 조작하는데 있어서 어려움은 없을 것 같다. -- 다음 날짜 -- result: 2013-03-28 오후 3:19:35 SELECT SYSDATE + 1 FROM dual; -- 다음 달 -- result: 2013-04-27 오후 3:20:33 SELECT add_months(SYSDATE, 1) FROM dual; -- 주차 -- result: 13 SELECT to_char(SYSDATE, 'IW') FROM dual;.. 2013. 3. 27.
오라클의 주의 시작일 변경여부 확인 오라클의 주의 시작일을 조회해보니, 기본적으로는 월요일로 설정이 되어 있었다. 알아보니 오라클은 ISO Week 란 놈을 쓰는데, ISO Week 는 기본적으로 월요일이 주의 시작일으로 되어 있다. 따라서 to_char(sysdate, 'IW') 로 조회하면 월요일부터 주차를 계산해 준다. -- 주 출력(2013.03.26 기준 13) select to_char(SYSDATE-1, 'IW') FROM dual; NLS Settings 를 변경하지 않으면 이를 바꿀수가 없다. 그래서 우리가 쓰는 달력처럼 일요일을 주의 시작일료 계산하고 싶으면 처리시점에 +1을 해서 데이터를 처리해야 한다. 2013. 3. 26.
데이터를 주간 집계하기 목적: 입력한 시수를 주간으로 확인하고 싶다. 우선 입력된 데이터를 일자별로 그룹핑하고, 일자를 년도, 주차(주의 순번)으로 다시 그룹핑하여 처리 -- 년 출력 select to_char(SYSDATE, 'IYYY') FROM dual; -- 주 출력(2013.03.26 기준 13) select to_char(SYSDATE, 'IW') FROM dual; -- 년, 주로 그룹핑 SELECT to_char(wid_date, 'IYYY') ,to_char(wid_date, 'IW') ,tonnes FROM production WHERE to_char(wid_date, 'IYYY') = '2013' GROUP BY to_char(wid_date, 'IYYY') ,to_char(wid_date, 'IW'); 위.. 2013. 3. 26.
[공통] 데이터 처리시 편리한 임시 테이블 만들기 DB 를 관리하다보면 데이터 마이그레이션, 임시 데이터 조회 등의 이유로 지정한 데이터를 이용해야 할 경우가 있다. 이럴때 여기서 이용하는 방법이 임시 테이블을 만들고 테이블에 데이터를 넣어서 처리하고 있다. create table TEST_TEMPTABLE ( VCH1 VARCHAR2(255), VCH2 VARCHAR2(255), VCH3 VARCHAR2(255), VCH4 VARCHAR2(255), VCH5 VARCHAR2(255), NUM1 NUMBER, NUM2 NUMBER, NUM3 NUMBER, NUM4 NUMBER, NUM5 NUMBER, DAT1 DATE, DAT2 DATE, DAT3 DATE, DAT4 DATE, DAT5 DATE ) 위와 같은 테이블을 만들어 두고 데이터를 처리하면 쉽게.. 2013. 2. 18.
코드 값이 들어 있는 테이블 fnd_lookup_values Oracle ERP 에서 사용되는 코드 정보는 fnd_lookup_values 에 들어 있다. fnd_lookup_values 의 lookup_type 을 이용하여 분류가 가능하다. 2012. 11. 16.