SELECT ename || '(' || job || ') , ' || ename || '''' || job || '''' AS "NAME AND JOB"
FROM emp;
: 조건식을 붙여서 찾고자 할 때
SELECT [열이름 혹은 표현식]
FROM 테이블 이름
WHERE [조건]
ex.
SELECT empno, ename, sal
FROM emp
WHERE sal > 2000;
-비교할때는 "="을 사용, 문자열 작은따옴표로 감싸주기(대소문자 구분함)
SELECT *
FROM emp
WHERE job = 'SALESMAN';
-날짜비교도 가능 (비교연산자로)
SELECT *
FROM emp
WHERE hiredate = '81/02/20';
-다른형식의 날짜도 가능
SELECT *
FROM emp
WHERE hiredate >= '1981-02-20';
-연산자 사용해서 새로운 값 만들어서 출력할 수 O
SELECT empno, ename, sal, sal+100 As SALPlus100, sal*1.05 NextYearSal
FROM emp;
연산자 종류 | 설명 |
---|---|
= | 비교 대상에서 같은 조건을 검색 |
!= , <> | 비교 대상에서 같지 않은 조건을 검색 |
> | 비교 대상에서 큰 조건을 검색 |
>= | 비교 대상에서 크거나 같은 조건을 검색 |
< | 비교 대상에서 작은 조건을 검색 |
<= | 비교 대상에서 작거나 같은 조건을 검색 |
BETWEEN a AND b | A 이상 B 이하에 있는 범위 값을 모두 검색 (문자나 날짜도 조회 가능) |
IN(a,b,c) | A 이거나 B 이거나 C 인 조건을 검색 |
LIKE | 특정 패턴을 가지고 있는 조건을 검색 |
IS NULL / IS NOT NULL | Null 값을 검색 / Null 이 아닌 값을 검색 |
A AND B | A 조건과 B 조건을 모두 만족하는 값만 검색 |
A OR B | A 조건이나 B 조건 중 한가지라도 만족하는 값을 검색 |
NOT A | A 가 아닌 모든 조건을 검색 |
와일드 카드
SELECT 어쩌구
FROM 테이블 이름
WHERE 열이름 IN (값1, 값2, 값3);
: & 기호를 입력하고 임의의 값을 입력해서 사용자에게 값을 입력받아올 수 있음
SELECT 어쩌구
FROM 테이블이름
WHERE 조건
ORDER BY 열1 DESC, 열2 (아무것도 안붙이면 기본값인 ASC)
연산자 종류 | 설명 |
---|---|
UNION | 두 집합의 결과를 합쳐서 출력. 중복 값 제거하고 정렬함 |
UNION ALL | 두 집합을 결과를 합쳐서 출력. 중복 값 제거 안하고 정렬 안 함 |
INTERSECT | 두 집합의 교집합 결과를 출력함. 정렬함 |
MINUS | 두 집합의 차집합 결과를 출력함. 정렬함. 쿼리의 순서 중요함 |
함수 | 설명 |
---|---|
UPPER(문자열) | 괄호 안 문자 데이터를 모두 대문자로 변환하여 반환 |
LOWER(문자열) | 괄호 안 문자 데이터를 모두 소문자로 변환하여 반환 |
INITCAP(문자열) | 괄호 안 문자 데이터 중 첫 글자는 대문자로, 나머지 문자를 소문자로 변환 후 반환 |
함수 | 설명 |
---|---|
LENGTH(문자열) | 입력된 문장의 길이 값 |
LENGTHB(문자열) | 입력된 문자열의 길이의 바이트값 |
SUBSTR(문자열,시작번호,뽑을 길이)
함수 | 설명 |
---|---|
SUBSTR | 주어진 문자에서 특정 문자만 추출 |
SUBSTRB | 주어진 문자에서 특정 바이트만 추출 |
ex.
SELECT SUBSTR('A-B-C-D', -3, 3), SUBSTR('A-B-C-D', 3, 3)
FROM dual;
결과
SUBSTR('A-B-C-D', -3, 3) SUBSTR('A-B-C-D', 3, 3)
1 C-D B-C
함수 | 설명 |
---|---|
INSTR | 주어진 문자에서 특정문자의 위치 추출 |
INSTRB | 주어진 문자에서 특정문자의 위치 바이트값 추출 |
ex. 처음부터 찾으면 뒤에 숫자 생략 가능
SELECT INSTR('A-B-C-D', '-', -1, 3), INSTR('A-B-C-D', '-', -6, 2)
FROM dual;
결과
INSTR('A-B-C-D', '-', -1, 3) INSTR('A-B-C-D', '-', -6, 2)
1 2 0
함수 | 설명 |
---|---|
REPLACE | 주어진 문자열에서 A 를 B 로 치환함 |
함수 | 설명 |
---|---|
LPAD | 주어진 문자열에서 왼쪽으로 특정 문자를 채움 |
RPAD | 주어진 문자열에서 오른쪽으로 특정 문자를 채움 |
함수 | 설명 |
---|---|
CONCAT | 두 문자열을 결합해서 출력. || 연산자와 동일 |
+ 여러개의 문자열을 결합해서 출력하려면 중첩해서 사용해야함
ex.
SELECT CONCAT(CONCAT('AB', 'CD'), 'EF')
FROM dual;
함수 | 설명 |
---|---|
LTRIM | 주어진 문자열에서 왼쪽의 특정문자를 삭제함 |
RTRIM | 주어진 문자열에서 오른쪽의 특정문자를 삭제함 |
ex.
SELECT REPLACE('ABCDEF', 'A', 'Z')
FROM dual;
결과값
REPLACE('ABCDEF', 'A', 'Z')
1 ZBCDEF
* 음수값 계산할때 주의!
이름 | 의미 |
---|---|
ROUND | 주어진 숫자를 반올림 한 후 출력함 |
TRUNC | 주어진 숫자를 버림 한 후 출력함 |
MOD | 주어진 숫자를 나누기 한 후 나머지 값 출력함 |
CEIL | 주어진 숫자와 가장 근접한 큰 정수 출력함 |
FLOOR | 주어진 숫자와 가장 근접한 작은 정수 출력함 |
POWER | 주어진 숫자1의 숫자2 승을 출력함 |
ex.
SELECT ROUND(197.8, -1), TRUNC(423.33, 1), MOD(9, 3), MOD(9, 2),
CEIL(155.5), CEIL(155.1), FLOOR(155.9), FLOOR(155.4), FLOOR(-123.4)
FROM dual;
결과
+ ROWNUM
: 행의 숫자를 보여주는 열 이름 (존재하진 않는데 기본적으로..)
ex.
SELECT ROWNUM, CEIL(ROWNUM/3) "ROWNUM 팀번호", ENAME
FROM EMP;
결과