DB- 문자열 내장 함수 -1
함수의 구분은 여섯가지로 가능하다.
- 문자열 함수
- 숫자 함수
- 날짜 함수
- 변환 함수
- NULL 관련 함수
- 집계함수
- 문자열 함수
문자열 추출함수 SUBSTR(문자열, 시작위치, 길이)
SELECT SUBSTR('HELLO',1,3) FROM DUAL; SELECT SUBSTR('HELLO',3) FROM DUAL; SELECT SUBSTRB('HELLO',3) FROM DUAL;
- 모든 학생의 이름과 출생 월만을 조회하시오.
SELECT NAME, SUBSTR(BIRTHDAY,3,2) FROM MEMBERS;
- 회원중에서 전화번호가 011로 시작하는 회원의 모든 정보를 출력하시오.
SELECT * FROM MEMBERS WHERE SUBSTR(PHONE, 1,3) = '011'; SELECT * FROM MEMBERS WHERE PHONE LIKE '011%';
위두문장은 같은 결과를 출력한다. ->조건절이 필요한건지 뽑아낼정보가 무엇인지 잘 생각해야한다. -> 조건절에는 함수가 들어가는게 좋지는 않다. 연산자가있는지 체크해서 연산자를 쓰자
- 회원중에서 생년월이 7,8,9월인 회원의 모든 정보를 출력하시오.
SELECT * FROM MEMBERS WHERE SUBSTR(BITHDAY, 6,2) IN ('07', '08','09');
- 전화번호를 등록하지 않은 회원 중에서 생년 월이 7,8,9월인 회원의 모든 정보를 출력하시오.
SELECT * FROM MEMBERS WHERE PHONE IS NULL AND SUBSTR(BITHDAY, 6,2) IN ('07', '08','09');
- 문자열 덧셈 함수
SELECT CONCAT('홍','길동') FROM DUAL;
- 문자열 연산
SELECT 3||'4' FROM DUAL
- 문자열 트림 함수 ( 빈공백을 없앰)
SELECT LTRIM(' HELLO ') FROM DUAL; -- 왼쪽 공백만 없애줌 SELECT RTRIM(' HELLO ') FROM DUAL; -- 오른쪽 공백만 없애줌 SELCET TRIM(' HELLO ') FROM DUAL; -- 양쪽공백을 없애줌
- 문자열 소문자 또는 대문자로 변경하기
SELECT LOWER('NeWlEC') FROM DUAL; --다 소문자로 바뀌게된다. SELECT UPPER('neWLec') FROM DUAL; -- 다 대문자로 바뀌게된다.
- 회원 아이디가 ‘newlec’ 인 회원을 조회하시오 ( 단 대/소문자를 가리지않음)
SELECT * FROM STUDENTS WHERE UPPER(SID) = UPPER('newlec');
- 문자열 대치함수 (REPLACE(문자열 찾는 문자열, 대치할문자열) / TRANSLATE() )
SELECT REPLACE('WHERE WE ARE','WE','YOU') FROM DUAL; --WE라는 문자를 YOU로 바꿔준다. (통채) SELECT TRANSLATE('WHERE WE ARE','WE','YOU') FROM DUAL; -- W->Y E->O 로바뀐다. (대치되서바뀐다.)
- 회원의 이름과 주소를 조회하시오. (단 주소의 빈칸없이 출력하시오)
SELECT NAME, REPLACE(ADDRESS, ' ','') FROM STUDENTS; --한칸짜리 빈공백을 없도록바꾸는것
댓글남기기