단일 행 함수
- 각 행별로 데이터 값을 얻을 수 있다.
- 함수명(인수1, 인수2, ....)로 사용 가능하며 인수로는 컬럼명, 수식, 변수, 상수 등이 사용 가능하다.
- 단일 행 함수는 SELECT절, WHERE절, HAVING절 등 거의 모든 구문에 사용 가능하다.
- 단일 행 함수 종류
. 문자함수, 숫자함수, 날짜함수, 변환함수, 일반함수 등
문자 함수
- LOWER
- 문자열을 소문자로 변환한다.
- LOWER('ORACLE') → oracle
- UPPER
- 문자열을 대문자로 변환한다.
- UPPER('oracle') → ORACLE
- INITCAP
- 첫 번째 문자는 대문자로, 나머지는 소문자로 변환한다.
- INITCAP('oracle') → Oracle
- SUBSTR
- 문자열 내 지정된 위치의 문자열을 검색한다.
- SUBSTR('oracle', 1, 2) → or
- INSTR
- 문자의 위치 변환
- INSTR('ORACLE', 'A') → 3
- TRIM
- 접두(접미) 글자를 잘라낸다.
- TRIM('o' FROM 'oracle') → racle
- LENGTH / LENGTHB
- 문자열의 길이나 BYTE를 반환한다.
- LENGTH('디비') → 2 / LENGTHB('디비') → 4
- LPAD / RPAD
- 지정된 문자열의 길이만큼 빈 부분에 문자를 채운다.
- LPAD('20000', 10, '*') → *****20000
- 문자 치환 함수
- TRANSLATE
- 문자 단위로 치환된 값을 반환한다.
- TRANSLATE('oracle', 'a', '#') → or#cle
- REPLACE
- 문자열 단위로 치환된 값을 반환한다.
- REPLACE('oracle', 'or', '##') → ##acle
실습
1. '강' 씨 성을 가진 학생의 이름을 검색한다.
SELECT sno, sname, SUBSTR(sname,1,1) 성씨
FROM student
WHERE SUBSTR(sname,1,1)='강';
2. 교수의 지위를 한글자로 검색한다.(ex. 조교수 → 조)
SELECT pno, pname, SUBSTR(orders,1,1) 직위
FROM professor;
3. 모든 일반 과목 명칭을 기초 과목으로 변경해서 검색한다. (ex. 일반화학 → 기초화학)
SELECT cno, cname, REPLACE(cname, '일반', '기초')
FROM course;
4. 만일 입력 실수로 student 테이블의 sname 컬럼에 데이터가 입력될 때 문자열 마지막에 공백이 추가 되었다면 검색할 때 이를 제외하고 검색하는 SELECT문을 작성한다.
SELECT sno, sname, TRIM(' ' FROM sname)
FROM student;
5. 직원의 년봉을 10자리로 검색한다. 단 공백은 임의의 채움 문자로 채워 넣는다.
SELECT eno, ename, sal*12+NVL(comm,0) 연봉, LPAD(sal*12+NVL(comm,0),10,'*') "연봉(10자리)"
FROM emp;
6. 학생의 이름을 검색한다. 단 성이 '심'인 학생은 성을 '사마' 로 바꾸어 검색한다.
SELECT sno, sname, REPLACE(sname, '심', '사마')
FROM student;
2024.01.24 - [SQL] - SQL select - 실습1
SQL select - 실습1
실습 테이블 테이블 내용 테이블 내용 emp dept salgrade 사원 부서 급여등급 student professor course score scgrade 학생 교수 과목 기말고사점수 점수등급 테이블 상세 구조 emp(사원) dept(부서) salgrade(급여등
backendmaster.tistory.com
<테이블 정보>
'SQL' 카테고리의 다른 글
SQL select - 실습14 (0) | 2024.02.01 |
---|---|
SQL select - 실습13 (0) | 2024.01.31 |
SQL select - 실습11 (0) | 2024.01.31 |
SQL select - 실습10 (0) | 2024.01.31 |
SQL select - 실습9 (2) | 2024.01.30 |