1 / 26

제 6 장 함수

제 6 장 함수. 그룹 함수 수학 함수 변환 함수 문자 함수 날짜 함수. 1. 그룹 함수. 그룹 함수의 종류 : SUM, AVG, COUNT( ), COUNT(*), MIN, MAX 등 그룹 함수의 결과는 하나의 ROW 이다 . 일반 열의 조회와 그룹함수는 동일한 SELECT 문에서 같이 수행 되지 못한다 . SQL> SELECT SNAME, MIN(SNO) FROM STUDENT *

isi
Download Presentation

제 6 장 함수

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 제 6장 함수 • 그룹 함수 • 수학 함수 • 변환 함수 • 문자 함수 • 날짜 함수

  2. 1. 그룹 함수 • 그룹 함수의 종류 : SUM, AVG, COUNT( ), COUNT(*), MIN, MAX 등 • 그룹 함수의 결과는 하나의 ROW이다. • 일반 열의 조회와 그룹함수는 동일한 SELECT 문에서 같이 수행 되지 못한다. SQL> SELECT SNAME, MIN(SNO) FROM STUDENT * 1행에 오류: ORA-00937: 단일 그룹의 그룹 함수가 아닙니다. 제6장 함수

  3. SUM • 열 값의 합계를 계산 한다. • 수치형 데이터를 대상으로 한다. • 교수들의 총 급여를 출력하라. SQL> SELECT SUM (SAL) FROM PROFESSOR; • 전산과 교수의 총 급여를 구하여라. SQL> SELECT SUM(SAL) FROM PROFESSOR WHERE SOSOK = ‘전산’ ; 제6장 함수

  4. AVG • 열 값의 평균을 구한다. • 수치형 데이터를 대상으로 한다. • 교수들의 평균 급여를 출력하라. SQL> SELECT AVG(SAL) FROM PROFESSOR ; • 전산과 교수의 평균 급여를 구하여라. SQL> SELECT AVG(SAL) FROM PROFESSOR WHERE SOSOK = ‘전산’ ; 제6장 함수

  5. COUNT( ) / COUNT (*) • COUNT( )는 열에 저장된 데이터 값들의 개수를 계산한다. • COUNT(*)는 모든 행의 개수를 계산한다. (NULL포함) • 수치형, 문자형, 날짜형 등의 열이 사용 가능하다. • 수강신청에 있는 행의 수를 출력하라. SQL> SELECT COUNT(*) FROM ENROLLMENT; • 수강 신청에 있는 성적이 입력 된 개수를 출력하라. SQL> SELECT COUNT (RANK) FROM ENROLLMENT; 제6장 함수

  6. MAX / MIN • 열에 저장된 데이터 값들 중에서 가장 높은(낮은) 값을 출력한다. • 수치형, 문자열, 날짜형 등이 사용된다. • 교수들의 급여 중에서 가장 높은 값과 가장 낮은 값을 구하여라 . SQL > SELECT MAX(SAL), MIN(SAL) FROM PROFESSOR; • 가장 학번이 작은 학생의 학번을 조회 하여라. SQL> SELECT MIN(S_SN) FROM STUDENT; 제6장 함수

  7. 2. 수학함수 제6장 함수

  8. DUAL • DUAL 테이블은 SYS USER가 소유하고 있는 단일 행에 단일 컬럼만을 갖는 테이블이다. • 일시적 산술 연산이나, 날짜 연산을 위해 사용한다. SQL> SELECT SYSDATE FROM STUDENT; SQL> SELECT SYSDATE FROM DUAL ; SQL> SELECT MOD (10,5) FROM DUAL; 제6장 함수

  9. 3. 변환 함수 • 문자와 숫자, 문자와 날짜간의 형 변환을 위한 함수 • TO_CHAR : 날짜나 숫자를 문자로 • TO_NUMBER : 문자를 숫자로 • TO_DATE : 문자가 일자로 변환 • 숫자 65를 문자로 출력하라 SQL> SELECT TO_CHAR(65) FROM DUAL; • 문자 65를 숫자로 출력하라 SQL> SELECT TO_NUMBER(65) FROM DUAL ; 제6장 함수

  10. TO_CHAR (날짜를 문자로) • TO_CHAR(date , format) 제6장 함수

  11. TO_CHAR (계속) SQL> SELECT TO_CHAR (SYSDATE, ‘YY/MM/DD’) DATE1, TO_CHAR (SYSDATE, ‘YYYY.MM.DD’) DATE2, TO_CHAR (SYSDATE, ‘MONTH DD. YYYY‘) DATE3, TO_CHAR (SYSDATE, ‘DY DD MON YY’ ) DATE4, TO_CHAR (SYSDATE, ‘DAY MON DD’) DATE5 FROM DUAL; SQL>SELECT P_NAME, TO_CHAR (IMYONG, ‘ YYYY “년”MM “월”DD “일”DAY ‘ ) FROM PROFESSOR; 제6장 함수

  12. TO_CHAR (숫자를 문자로) SQL> SELECT TO_CHAR (1234,’09,999’) NUMBER1, TO_CHAR (1234.56,’99,999.99’) NUMBER2, TO_CHAR (1234,’$99,999’) NUMBER3, TO_CHAR (1234,’L99,999’) NUMBER4 FROM DUAL; 제6장 함수

  13. TO_DATE (문자열을 날짜로) • TO_DATE(문자열 , format) SQL> SELECT TO_DATE (‘2001-04-15 13:32:34’, ‘YYYY-MM-DD HH24:MI:SS’) FROM DUAL; • 자기가 태어난 날부터 현재까지 며칠이 되는지 계산하자. SQL> SELECT SYSDATE – TO_DATE(‘20000630’,’YYYYMMDD’) FROM DUAL; 제6장 함수

  14. 4. 문자 함수 • CONCAT : 두개의 문자열을 결합하여 출력한다. SQL> SELECT CONCAT(S_NAME , SOSOK) FROM STUDENT; SQL> SELECT S_NAME || SOSOK FROM STUDENT; 제6장 함수

  15. INITCAP, LOWER, UPPER • INITCAP : 단어의 첫 글자를 대문자로 하고 나머지는 소문자로 출력한다 • LOWER : 모든 문자를 소문자로 출력한다. • UPPER : 모든 문자를 대문자로 출력한다. SQL> INSERT INTO PROFESSOR VALUES ( 111, 'KimHS','COMPUTER','2000-03-01','조교수',1000000); SQL> Select INITCAP(p_name), UPPER(p_name), LOWER(sosok) 2 from professor 3 where p_sn = 111; INITCAP( UPPER(P_ LOWER(SOSOK) -------- -------- -------------- Kimhs KIMHS computer 제6장 함수

  16. LPAD / RPAD • 문자열이 지정된 숫자만큼의 크기가 되도록 문자열의 왼쪽(오른쪽)에 지정한 문자를 채워준다. • LPAD(컬럼 OR 문자열, 숫자1, 문자) SQL> select c_name, LPAD(c_name, 15, '#') from course; SQL > select c_name, RPAD(c_name, 15, ‘@') from course; 제6장 함수

  17. LTRIM / RTRIM • 문자열의 왼쪽(오른쪽)에 지정한 문자를 잘라준다. • LTRIM(컬럼 OR 문자열, 문자 OR 문자열) SQL> Select sosok, LTRIM(sosok, '전'), RTRIM(sosok, '호') 2 from student; SQL> Select s_name, LTRIM(s_name, '김미') 2 from student; 제6장 함수

  18. SUBSTR • 첫번째 문자열에서 두번째 지정된 숫자에 해당하는 자리부터 시작하여 세번째 지정된 숫자에 해당하는 만큼의 크기의 문자열을 돌려준다. • SUBSTR(컬럼 OR 문자열, 숫자1, 숫자2) SQL> SELECT C_NAME , SUBSTR(C_NAME, 3, 2) 2 FROM COURSE ; C_NAME SUBS ---------------------- ---- 델파이 이 자료처리 처리 MIS S 시스템분석 템분 로봇공학 공학 건강과 사회 과 제6장 함수

  19. LENGTH • 문자열의 길이를 출력한다. SQL> SELECT C_NAME, LENGTH(C_NAME) 2 FROM COURSE; C_NAME LENGTH(C_NAME) ---------------------- -------------- 델파이 3 자료처리 4 MIS 3 시스템분석 5 로봇공학 4 건강과 사회 6 제6장 함수

  20. CHAR / VARCHAR2 비교 SQL> CREATE TABLE AAA 2 ( A1 CHAR(10) , 3 A2 VARCHAR2 (10) ) ; SQL> INSERT INTO AAA 2 VALUES ('1234','1234'); SQL> SELECT A1, A2, LENGTH(A1), LENGTH(A2) 2 FROM AAA; A1 A2 LENGTH(A1) LENGTH(A2) ---------- ---------- ---------- ---------- 1234 1234 10 4 제6장 함수

  21. 5. 날짜 함수 • 오라클이 표현하는 날짜 범위는 B.C 4712년 1월 1일 부터 A.D 9999년 12월 31일까지 이다. • 날짜와 숫자의 계산 • 날짜와 날짜를 더하면 오류발생 • 날짜에 날짜를 빼면 그 사이의 일수가 나온다. • 날짜에 숫자를 더하거나 빼면 날짜가 나온다. SQL> SELECT SYSDATE + BIRTH FROM STUDENT ; SQL> SELECT SYSDATE - BIRTH FROM STUDENT ; SQL> SELECT BIRTH , BIRTH +1, BIRTH -1 FROM STUDENT ; 제6장 함수

  22. ADD_MONTHS • 날짜에 일정 수만큼의 달을 추가하여 준다. • 학생테이블에서 학생 이름과 원래 생일, 생일에서 2달 이후 일자를 출력하라. SQL> SELECT S_NAME, BIRTH , ADD_MONTHS(BIRTH, 2) FROM STUDENT; • 현재로 부터 3달 전의 일자를 출력하라. SQL> SELECT ADD_MONTHS(SYSDATE, -3) FROM DUAL; 제6장 함수

  23. LAST_DAY • 달의 마지막 날을 출력해준다. • 학생 테이블에서 학생 이름과, 생일, 생일인 달의 마지막 일자를 출력하라. SQL> SELECT S_NAME, BIRTH, LAST_DAY(BIRTH) FROM STUDENT; • 이번 달의 마지막 일자를 출력하라. SQL> SELECT LAST_DAY(SYSDATE) FROM DUAL; 제6장 함수

  24. MONTHS_BETWEEN • 달과 달 사이의 월 수를 출력해준다. • 학생 테이블에서 2000년 1월 1일을 기준으로 생일과 몇 달 차이인지를 출력하라. SQL> SELECT MONTHS_BETWEEN (‘2000/01/01’, BIRTH) FROM STUDENT; • 자신의 생일과, 현재까지 살아온 달의 수를 출력하라. SQL> SELECT '2000/06/30‘ , MONTHS_BETWEEN (SYSDATE , '2000/06/30') FROM DUAL; 제6장 함수

  25. 실습문제 1. 모든 교수의 수와 봉급의 합을 구하여라. 2. 수강 테이블에서 'B107'을 수강한 학생의 점수의 최대값과 최소값을 구하여라. 3. 다음을 실행하고 그 의미를 설명하여라. SELECT ABS(-32), CEIL(-4.2), FLOOR (-4.2) , MOD(8,3) , POWER(2,10), SQRT(9) FROM DUAL ; 4. 학생 테이블에서 이름과 생일을 " 김진우 1979 년 09 월 19 일 수요일 " 형태로 조회 하여라. 5. 교수 테이블에서 교수명과 봉급을 조회하되, "김현석 ₩02,800,000" 형태로 조회 하여라. 제6장 함수

  26. 실습문제(계속) 6. 다음 sql 문의 결과를 조회하고 각 함수의 의미를 설명하여라. SELECT 'abc123ABC' , INITCAP ('abc123ABC') , UPPER ('abc123ABC'), LOWER ('abc123ABC') from dual; 7. 학생 테이블에서 학생의 생일과 생일이 속한 월을 조회하여라. (substr 함수 이용) 8. 다음 sql 문을 실행하여 결과를 조회하고, 그 의미를 설명하여라. SELECT SUBSTR(‘ABC좋은나라DEF웃긴나라’,2,10) FROM DUAL; 9. "ABC좋은나라DEF웃긴나라"의 글자 수를 조회하라. 10. select count(*) , count(rank) from enrollment ; 를 수행하고 그 결과 값이 틀린 이유를 설명하여라. 11. 자신의 생일과 자신의 생일이 속한 달의 마지막 날짜를 조회하여라. 제6장 함수

More Related