-
SELECT 문 기초프로그래밍/DBMS 2021. 8. 5.반응형
SELECT * FROM emp; = 모든 컬럼을 출력
컬럼명에 별칭 AS는 생략 가능
SELECT name, sal, sal + bonus AS zzz FROM emp;
sal + bonus 를 합친 행을 zzz이름을 가진 새로운 행으로 만듬
번호 있는 행 만들기
SELECT ROWNUM ,name, sal FROM emp;
오라클에서의 논리 연산자는 AND, OR , NOT으로 표현
□ emp 테이블 : 성씨가 ㄱ 씨인 empNo, name, sal 컬럼 출력하기
SELECT empNo,name,sal FROM emp WHERE name > '가' AND name < '나';
그룹 비교 연산자 ANY
SELECT name, city FROM emp WHERE city = ANY('서울', '경기', '인천');
OR랑 비슷한 개념 city가 서울,경기,인천인 자료중 name,city 컬럼 출력
BETWEEN 조건식
말 그대로 뭐뭐~의 사이에 있는걸 출력할 때
SELECT name, sal FROM emp WHERE sal >= 2000000 AND sal <= 3000000;
IN 조건식
안에 있는지 확인하는 용도
□ city와 pos가 서울이면서 부장인 자료(city, pos) 출력
SELECT name, city, pos FROM emp WHERE (city, pos) IN ( ('서울', '부장') );
LIKE 조건식
주어진 문자열이 패턴에 일치하는지 여부 확인
LIKE 보다는 INSTR() 함수가 속도가 빠름
□ name이 '김'씨인 자료 중 empNo, name 컬럼 출력
SELECT empNo, name FROM emp WHERE name LIKE '김%';
□ 3이 존재하는지 확인하기
SELECT empNo, name, tel FROM emp WHERE tel LIKE '%3%';
%가 앞뒤로 들어간당
SELECT empNo, name, rrn FROM emp WHERE rrn LIKE '_0%';
앞에 _ 언더바가 붙으면 언더바 갯수 만큼의 글자수를 의미한다.
INSTR
문자열의 검색하여 위치를 반환
문자열이 존재하지 않으면 0을 반환
검색에서 LIKE 보다 속도가 빠름SELECT INSTR('korea seoul', 'e', 1, 2) FROM dual;
korea seoul 문장 중에서 e를 찾을건데
찾을 시작 위치는 1의 위치부터 시작해서 2번째가 검색된 위치를 반환
SELECT INSTR('korea seoul', 'e') FROM dual;
e의 위치가 어딘지 알려준다.
SELECT INSTR('korea seoul', 'e', 7) FROM dual;
e의 위치를 찾는데 7번째 인덱스부터 찾는다.
ESCAPE
'%', '_' 를 검색하기 위해 사용(패턴이 아닌 문자로 처리)
WITH 문
반복적으로 사용되는 쿼리를 블럭화 할 경우 사용
서브 쿼리를 만들어서 결과 값을 저장해주고 저장한 값을 써먹는다.
WITH emp_pay AS ( SELECT name, sal, bonus, sal+bonus pay FROM emp ) SELECT name, sal, bonus, pay FROM emp_pay WHERE pay >= 3000000;
emp_pay라는 이름을 가진 (SELECT name, sal, bonus, sal+bonus pay FROM emp) 쿼리를 만들어 주고
그 결과값을 emp_pay에 저장
그리고 새로운 쿼리를 만들어서 만들어 놨던 emp_pay를 활용한다.
그러면 pay라는 새로운 항목을 만들어뒀던걸 사용할 수 있게 된다.
NULL
행의 열(컬럼)에 값이 없는 경우
길이가 0인 문자 값도 NULL주의 사항
SELECT 10 + 5 FROM dual; // 15
SELECT 10 + NULL FROM dual; // NULL 숫자 더하기 NULL은 NULL이다.자료에서 NULL인지 확인하고 싶다면 IS를 써야한다.
SELECT name, tel FROM emp WHERE tel IS NULL; -- IS는 NULL인지를 확인하는 유일한 방법
반응형'프로그래밍 > DBMS' 카테고리의 다른 글
테이블 생성 / 수정 / 삭제 / DDL (0) 2021.08.09 SELECT(4) 날짜 관련 함수 (0) 2021.08.09 SELECT (3) (0) 2021.08.09 SELECT 기초 (2) (0) 2021.08.05 오라클 설치 유의 사항 (0) 2021.08.03