1. DB의 연산자 종류 (4가지)
= WHERE절을 이용하여 자료를 제한하여 필요한 부분만 가져오게 할 수 있다
이유 : 데이턱라 너무 방대하다보면 CPU에 기능에 부하가 걸릴 수 있다.
따라서 쿼리 튜닝에서 제일 첫번째로 검토대상이 된다.
[WHERE에 오는 대상들]
1) 칼럼명
2) 비교칼럼(JOIN시)
3) 비교연산자
4) 문자, 숫자, 표현식
1) 기본연산자 (숫자나 날짜를 더하고, 빼고 , 곱하고, 나눈다)
- || : 두 문자 / 열을 결합한다.
ex) SELECT 'A'||'B'
FROM DUAL;
-> 결과 : AB
2) 대입 연산자
= 변수에 값을 대입할 때 사용한다
1] '='= 대입기호이지만 사용자의 의도와 다를 수 있다(비교 연산자와 햇갈림)2 ] ':=' = 무조건 대입만 가능한 기호
3) 비교 연산자 = 피연산자들의 크기와 상대적 크기를 판단하여 참(1), 거짓(0)으로 변환한다1] '=' / IS = 양쪽 같으면 참 (같다)EX) SELECT * FROM PERSONS WHERE Address IS NULL -> 주소가 누락된 사람
2] '!=' / '^=' / '<>' / IS NOT= 양쪽 같이 않으면 참
3] '<=>'= 양쪽 같으면 참(1), 하나만 다르면 거짓(0)을 반환 ex) SELECT 1<=>1, NULL <=> NULL, 1<=>NULL; // 1,1,0
4] 'IS NULL' <-> IS NOT NULL= 피연산자의 값이 NULL 이면 참
5] 'BETWEEN A AND B' <-> NOT = A보다 크거나 같고 B보다 작거나 같을 때 참(범위 내 값을 선택하는 연산자)-> 숫자 / 문자EX) SELECT * FROM PRODUECTS WHERE PRICE BETWEEN 10 AND 20=> 문자열, 날짜에는 작은 따옴표는 필수다!
-> 날짜 EX) SELECT * FROM ORDERS WHERE DATE BETWEEN '20150101' AND '20151230''
6) NOT 칼럼명 = : ~와 같지 않다.7) NOT 칼럼명 > : ~보다 크지 않다.
4] 논리 연산자
= AND(&&) / OR(||) / NOT(!)
1) XOR : 논리식이 서로 다를 경우 참
2) LIKE
목적 1. 컬럼 내용이 특정 패턴에 맞는지 필터링
목적 2. 값의 일부가 일치하는지 알게하는 여부
문법 = SELECT * FROM 테이블명 WHERE 컬럼명 = 조건 LIKE 패턴
3) IN 연산자 = 목록에 해당하는게 있으면 참이다- 다양하게 쓰일 수 있다 문법 : SELECT * FROM 테이블명 WHERE 컬럼명 IN(값1, 값2....)
4) exists
= 서브쿼리로 컬럼값의 존재 유무만 파악함
- 서브쿼리에만 존재가능
ex) SELECT * FROM A WHERE EXISTS (SELECT * FROM B WHERE A.SUM_ID = B.SUM_ID);
-> 서브쿼리 조건에 만족하는 모든 값을 조회한다
5. concat 함수
= ||과 더불어서 sql에서 내용을 합치기가 가능하다.
-> ||은 그냥 합쳐져서 공백제거 등이 불가능하다.
-> concat은 2개의 매개변수를 이용하여 사용한다.
ex) concat(concat("test", ' '), '0.1'); // test 0.1이 된다.(공백처리가능)
-> 이렇게 중복으로 처리가 가능하다.
'DB 이야기' 카테고리의 다른 글
디비 이야기 8. 타입변환 (0) | 2020.03.03 |
---|---|
디비 이야기 7. 제어문 (0) | 2020.03.03 |
디비 이야기 4. DML (0) | 2020.03.01 |
디비 이야기 3. DBMS와 질의어(DDL) (0) | 2020.02.29 |
디비 이야기 2. 데이터 베이스 (0) | 2020.02.29 |