728x90
반응형
함수
- 어떤 입력값을 받아서 정해진 루틴에 의해 작업을 하고 결과값을 만들어서 출력해주는 것을 말한다.
SQL에서 사용되는 함수는 단일 행 함수와 복수 행 함수로 구분할 수 있다.
단일 행 함수
- 여러 건의 데이터를 한꺼번에 처리하는 것이 아니라 한번에 하나씩 처리하는 함수
복수 행 함수
- 여러 건의 데이터를 동시에 입력 받아서 결과값 1건을 만들어주는 함수
문자 함수
1. INITCAP 함수
- 첫 글자만 대문자로 출력하고 나머지는 전부 소문자로 출력하는 함수
문법 : INITCAP(문자열 또는 칼럼명)
예제
- Student 테이블 사용해 1전공이 201번인 학생들의 ID를 첫 글자만 대문자료 출력
- ID 칼럼 값 출력 첫 글자만 대문자로 변경해 출력
SELECT INITCAP(ID) FROM STUDENT WHERE deptno1 = 201;
SELECT INITCAP('Preety girl') FROM DUAL ;
2. LOWER 함수
- 입력되는 값을 소문자로 변경해 출력
문법 : LOWER(문자열 또는 칼럼명)
3. UPPER
- 입력되는 값을 전부 대문자로 변경해 출력
문법 : UPEER(문자열 또는 칼럼명)
예제
- Student 테이블에서 1전공이 201번인 학생들의 ID를 이름과 함께 소문자, 대문자로 출력
SELECT LOWER(ID) FROM STUDENT WHERE deptno1 = 201;
SELECT UPPER(ID) FROM STUDENT WHERE deptno1 = 201;
4. LENGTH / LENGTHB 함수
- 입력된 문자열의 길이(바이트 수)를 계산해주는 함수
문법 : LENGTH(칼럼 또는 문자열) / LENGTHB(칼럼 또는 문자열)
예제
- Student 테이블에서 ID가 9글자 이상인 학생들의 이름과 ID와 글자수를 출력하시오.
- Student 테이블에서 1전공이 201번인 학생들의 이름과 이름의 글자수, 이름의 바이트 수를 출력하시오.
문법 : CONCAT('문자열1' , '문자열2')
SELECT name AS 이름, ID, LENGTH(ID) FROM STUDENT WHERE LENGTH(ID) > 9;
SELECT name AS 이름, LENGTH(name), LENGTHB(NAME) FROM STUDENT WHERE deptno1 = 201;
5. CONCAT 함수(|| 연산자와 동일한 기능)
문법 : CONCAT('문자열1' , '문자열2')
예제
- Professor 테이블에서 교수들의 이름과 직급을 출력하시오.
SELECT CONCAT(name, position) FROM Professor;
6. SUBSTR 함수
- 문자열에서 특정 길이의 문자를 추출할 때 사용하는 함수
문법 : SUBSTR('문자열' 또는 칼럼명, 1, 4)
- 앞의 숫자는 시작 위치, 뒤에 숫자는 추출할 글자수를 의미한다.
예제
- Student 테이블에서 jumin 칼럼을 사용해서 1전공이 101번인 학생들의 이름과 생년월일을 출력하세요.
- Student 테이블에서 jumin 칼럼을 사용해서 태어난 달이 8월인 사람의 이름과 생년월일을 출력하세요.
SELECT name, SUBSTR(jumin, 1,6) as "생년월일" FROM Student WHERE deptno1 = 101;
SELECT name, SUBSTR(jumin, 1, 6) as "생년월일" FROM Student WHERE SUBSTR(jumin,3,2) = '08';
7. SUBSTRB 함수
- SUBSTRB 함수와 문법은 SUBSTR과 동일하며 차이점은 추출할 자릿수가 아니라 추출할 바이트 수를 지정하는 것이다.
8. INSTR 함수
- 주어진 문자열이나 칼럼에서 특정 글자의 위치를 찾아주는 함수다.
문법 : INSTR('문자열' 또는 칼럼, 찾는 글자, 시작위치, 몇 번째인지(기본값은 1))
예제
- Student 테이블의 tel 칼럼을 사용해 학생의 이름과 전화번호. ')'가 나오는 위치를 출력하시오.
SELECT name, tel, INSTR(tel, ')', 1,1) FROM Student WHERE deptno1 = 101;
문자 함수 퀴즈1
- Student 테이블 참조해 1전공이(deptno1 칼럼) 101번인 학생의 이름과 전화번호와 지역번호 출력
- 지역번호는 숫자만 나와야 한다.
SELECT name, tel, SUBSTR(tel, 1,INSTR(tel, ')') -1) FROM student WHERE deptno1 =101;
9. LPAD 함수
문법 : LPAD('문자열' 또는 칼럼명, 자릿수, '채울 문자')
SELECT id, LPAD(id, 10, '%') AS "LPAG" FROM STUDENT WHERE deptno1 = 101;
문자 함수 퀴즈2
- dept2 테이블 사용해 dname을 결과에 맞게 출력
SELECT LPAD(dname, 10, '1234567890') as "LPAD" FROM dept2;
10. RPAD 함수
문법 : RPAD('문자열' 또는 칼럼명, 자릿수, '채울문자')
예제
- Student 테이블에서 다음과 같이 id를 12자리로 출력하되 오른쪽 빈자리에는 '*'로 채우시오
SELECT RPAD(id, 12, '*') AS "RPAD" FROM Student WHERE deptno1 = 101;
문자 함수 퀴즈3
- Dept2 테이블을 사용해 dname을 아래의 결과가 나오도록 쿼리를 작성하시오
SELECT RPAD(dname, 10, SUBSTR('1234567890', LENGTH(dname)+1)) as "RPAD 연습" from dept2;
11. LTRIM 함수
- LPAD, RPAD 함수가 채우는 함수라면 LTRIM, RTRIM 함수는 제거하는 함수
문법 : LTRIM('문자열' 또는 칼럼명 , '제거할 문자')
예제
- dept2 테이블에서 dname을 출력하되 왼쪽에 '영'이란 글자를 모두 제거하고 출력하시오.
SELECT LTRIM(dname, '영') from dept2;
12. RTRIM 함수
문법 : RTRIM('문자열' 또는 칼럼명, '제거할 문자' )
예제
- Dept2 테이블에서 dname을 출력하되 오른쪽 끝에 '부'라는 글자는 제거하고 출력
SELECT RTRIM(dname, '부') from dept2;
13. REPLACE 함수
- 첫 번째 문자열에서 문자1이 있으면 문자2로 바꾸어 출력하는 함수
문법 REPLACE('문자열' 또는 칼럼명, '문자1', '문자2')
예제
- Student 테이블에서 학생들의 이름을 출력하되 성 부분은 '#'으로 표시되게 출력하시오.
SELECT REPLACE(name, substr(name, 1, 1), '#') from student WHERE deptno1 = 101;
728x90
반응형
최근댓글