Oracle/SQL 28

2012.01.05 SQL 3일차(연습노트) ; 그룹함수테크닉,rollup이용,cube이용, having이용예 등등

통계만 출력하기 구하고자 하는 출력이 '학과별 평균 몸무게와 학년 별 평균 몸무게를 구하세요' 이고, performance생각 안하고, 다른 군더더기 없이 딱 원하는 결과값만 출력하고 싶다면 어떻게 해야할까? 단순히 group by 해서 cube나 rollup해서는 되지 않는다. 여기에 집합연산자를 추가해서 중복되는 부분을 빼야 한다. 아래 쿼리를 보자. 1 select deptno, grade, avg(weight) from student 2 group by cube(grade, deptno) 3 intersect 4 ( 5 select deptno, grade, avg(weight) from student 6 group by rollup(grade), deptno 7 union 8 select dep..

Oracle/SQL 2012.01.09

2012.01.05 SQL 3일차(그룹함수, rollup, cube)

그룹함수의 종류 종류 의미 COUNT 행의 개수 출력 (칼럼이름 직접 적을 시 NULL제외한 행의 개수출력, * 사용시 NULL포함한 행의 개수) MAX NULL을 제외한 모든행에서 MAX출력 MIN NULL을 제외한 모든행에서 MIN출력 SUM NULL을 제외한 모든 행의 합계 AVG NULL을 제외한 모든 행의 평균값 STDDEV NULL을 제외한 모든 행의 표준편차 VARIANCE NULL을 제외한 모든 행의 분산 값 GROUPING 해당 칼럼이 그룹에 사용되었는지 여부를 1 OR 0으로 반환 GROUPING SET 한번의 질의로 여러개의 그룹화 가능 COUNT( {* | [DISTINCT | ALL] expr} ) 예제 1 select count(*), count(comm), count(posit..

Oracle/SQL 2012.01.09

2012.01.03 SQL 2일차(2) 일반함수(nvl,nvl2,decode,case)

CASE 사용법 참조 : http://miae1216.blog.me/20133583579 일반함수 NVL(exp1, exp2) ; exp1이 NULL이면 exp2로 변경, (exp1, exp2는 반드시 같은 데이터타입) NVL2(exp1, exp2, exp3) ; exp1이 NULL이 아니면 exp2, NULL 이면 exp3 DECODE(exp, 조건1, 결과값1, 조건2, 결과값2, , 결과값3) ; 오라클에서만 제공 exp가 조건1이면 결과값1 출력, 조건2면 결과값2 출력 조건에 맞지 않는 값이면 결과값3 출력(이 값이 없으면 조건에 맞지 않는 값은 NULL로 처리) (, 의 사용에 주의하세요~) CASE exp WHEN 조건식1 THEN result1 WHEN 조건식2 THEN result2 EL..

Oracle/SQL 2012.01.09

2012.01.03 SQL 2일차(1) 문자함수(LPAD,RPAD,REPLACE), 숫자함수, 날짜함수, 변환함수

문자함수 LPAD('대상문자열', 지정한 길이, '추가할문자열') ; 대상 문자열이 사용자가 지정한 길이보다 작으면, 사용자가 지정한 문자열을 대상문자열에 추가하는 키워드 (LPAD는 왼쪽에 추가) RPAD('대상문자열', 지정한 길이, '추가할문자열') ; 대상 문자열이 사용자가 지정한 길이보다 작으면, 사용자가 지정한 문자열을 대상문자열에 추가하는 키워드 (RPAD는 오른쪽에 추가) 예제 SQL> select lpad(dept_name,10,'1234567890') 2 from tdept; LPAD(DEPT_NAME,10,'1 -------------------- 12경영지원 123456재무 .... 12345영업1 12345영업2 10 rows selected. ====================..

Oracle/SQL 2012.01.09

2012.01.02 SQL 1일차(3) 연습노트( RTRIM의 미묘한 삭제, SUBSTR연습 )

연습노트 ====================================================================================================================================================================================================================================================== 결과 고찰 학생테이블의 전화번호칼럼에서 지역번호와 이름을 출력하라. 문제에서 select RTRIM(tel, SUBSTR(tel,-9,9)) from student; 의 경우 RTRIM(TEL,SUB ------------- 0 0 055 051 051 055 ..

Oracle/SQL 2012.01.09

SQL Plus 명령어

퍼온곳 : www.jigi.net 1. 주로 사용되는 명령어 LIST, SAVE, GET, EDIT, SPOOL 편집 명령과 파일 조작 RUN, @, / 실행 HOST, EXIT 데이터베이스 접속 및 종료 LINE, PAGE 출력 형식 1) LIST SELECT ename, sal*12 FROM emp; LIST 방금 실행한 쿼리문을 다시한번 보여줍니다. L 이라고 단축으로 실행하셔도 됩니다. 2) RUN LIST로 버퍼에 저장된 쿼리문을 실행하기 위한 명령어 입니다. RUN 은 R 이나 / (슬레시)로 단축키를 사용할수 있습니다. 3) EDIT 버퍼에 저장된 쿼리문을 편집하기 위한 명령어 EDIT 는 ED 라는 단축키를 사용할수 있습니다. 편집창이 호출되고 명령문을 편집완료 하였다면 창을 닫으면 저장할..

Oracle/SQL 2012.01.09

2012.01.02 SQL 1일차(2) (sql함수,문자함수,대소문자변환함수,문자열길이반환함수,문자조작함수)

SQL 함수 (단일행 함수, 복수행 함수 2가지가 있다.) 단일행 함수의 종류 대소문자 변환함수(문자함수) 종류 의미 사용예 INITCAP 문자열의 첫 번째 문자만 대문자로 변환 INITCAP(student) -> Student LOWER 문자열 전체를 소문자로 변환 LOWER(ABC) -> abc UPPER 문자열 전체를 대문자로 변환 UPPER(abc) -> ABC 1 select lower(userid) as "User ID" 2 from student 3* where studno=20101 SQL> / User ID ---------- dals 1 select upper(userid) as "User ID" 2 from student 3* where studno=20101 SQL> / User I..

Oracle/SQL 2012.01.09

2012.01.02 SQL 1일차(1) (literal,연결연산자,where,between,in,like,null,집합연산자,정렬)

literal 상수(literal 문자, 표현식) SQL> select name, '교수님 배고파요' from professor; NAME '교수님배고파요 ; '교수님 배고파요' 부분을 literal상수(literal문자, 또는 표현식)이라고 한다. ---------- --------------- 이재우 교수님 배고파요 김도훈 교수님 배고파요 성연희 교수님 배고파요 염일웅 교수님 배고파요 권혁일 교수님 배고파요 이만식 교수님 배고파요 전은지 교수님 배고파요 남은혁 교수님 배고파요 8 rows selected. 연결연산자(||로 문자열 또는 컬럼을 이어줄 수 있다.) SQL> select deptno||' '||dname from dept; DEPTNO||''||DNAME ------------------..

Oracle/SQL 2012.01.09