데이터베이스 데이터 조작어(DML) - 조건검색, 정렬검색
데이터베이스 데이터 조작어(DML)
조건검색, 정렬검색
조건검색: WHERE
SLECT문과 같이 사용하는 WHERE 키워드는 논리 연산자와 비교 연산자로 조건을 만족하는 데이터만 검색 할 수도 있습니다.
비교 연산자
= 같다
<> 다르다
< 작다
> 크다
<= 작거나 같다
>= 크거나 같다
※왼쪽을 기준으로 읽음
논리 연산자
AND 모든 조건을 만족해야 검색
OR 여러 조건 중 하나만 만족해도 검색
NOT 조건을 만족하지 않는 것만 검색
조건 검색 방법
WHERE절은 무조건 테이블명 뒤에 나와야 합니다.
숫자 뿐만 아니라 문자나 날짜 값을 비교하는것도 가능하며 문자나 날짜 값을 비교 할 때는 작은 따옴표로 묶어서 표현합니다.
SELECT 제품명, 재고량, 단가 FROM 제품 WHERE 제조업체='롯데';
-속성명 제품명, 재고량, 단가를 제품 테이블에서 제조업체가 롯데인것만 검색
SELECT 주문제품, 주문일자 FROM 주문 WHERE 주문고객='홍길동' AND 수량 >= 15;
- 속성명 주문제품, 주문일자를 주문 테이블에서 홍길동이 15개 이상 주문한것만 검색
SELECT 주문제품, 주문일자 FROM 주문WHERE 주문고객='홍길동' OR 수량 >=15;
- 속성명 주문제품, 주문일자를 주문고객이 홍길동이거나 15개 이상 주문한것만 검색
- 주문고객이 홍길동인것은 모두 검색 (수량이 15개 이하도 검색됨)
- 수량이 15개 이상인것은 모두 검색 (주문고객이 홍길동이 아니여도 갬색됨)
SELECT 제품명, 단가 FROM 제품 WHERE 단가 >= 2000 AND 단가 <= 3000;
- 속성명 제품명, 단가를 제품 테이블에서 단가가 2000원 이상이고, 3000원 이하인것만 검색
LIKE를 이용한 검색
%(퍼센트): 0개 이상의 문자(문자의 내용과 길이는 상관없음)
_ (언더바): 한개의 문자(문자의 내용은 상관없지만 길이는 상관있음), 언더바 하나에 한개의 글자.
LIKE '홍길동%'
- 홍길동으로 시작하는 문자열이며, 홍길동으로 시작하기만 하면 문자의 길이는 상관없음
LIKE '%홍길동'
- 홍길동으로 끝나는 문자열이며, 홍길동으로 끝나기만 하면 문자의 길이는 상관없음
LIKE '%홍길동%'
- 문자열 가운데에 홍길동이 포함된 길이와 상관없는 문자열
LIKE '홍길동_ _ _'
- 홍길동을 포함해서 6자 길이의 문자열
LIKE '_ _ 동%'
- 첫 번째, 두 번째 글자는 상관없이 세 번째 글자가 '동'인 문자열. 뒤에는 길이가 상관없음
SELECT 고객이름, 나이 FROM 고객 WHERE 고객이름 LIKE '김%';
- 속성명 고객이름, 나이를 고객테이블에서 고객이름이 김씨인(길이 상관없음) 고객만 검색
SELECT 고객아이디, 고객이름 FROM 고객 WHERE 고객아이디 LIKE '_ _ _ _ _';
속성명 고객아이디, 고객이름을 고객테이블에서 고객아이디가 5글자인것만 검색
NULL을 이용한 검색
IS NULL
- 검색 조건에서 특정 속성의 값이 널값인지 비교
IS NOT NULL
- 특정 속성의 값이 널값이 아닌지를 비교
※ 검색 조건에서 널값은 다른 값과 크기를 비교하면 결과가 모두 거짓
SELECT 고객이름 FROM 고객 WHERE 나이 IS NULL;
- 고객 테이블에서 나이가 아직 입력되지 않은 고객이름을 검색
SELECT 고객이름 FROM 고객 WHERE 나이 IS NOT NULL;
- 고객테이블에서 나이가 NULL값이 아니고 입력이 된 고객이름을 검색
정렬검색: ORDER BY
결과 테이블 내용을 사용자가 원하는 정렬 순서로 출력하는 키워드 입니다.
ASC: 오름차순(작은 숫자에서 큰 숫자로 표시)
DESC: 내림차순(큰 숫자에서 작은 숫자로 표시)
※ ASC, DESC를 생략하면 ASC가 기본
※ 널 값은 오름차순에서는 맨 마지막에 출력, 내림차순에서는 맨 먼저 출력
SELECT 고객이름, 나이 FROM 고객 ORDER BY 나이 DESC;
- 고객테이블에서 고객이름과 나이를 검색하되, 나이를 기준으로 내림차순 정렬
- 나이가 가장 많은 순이고 NULL값은 가장 마지막에 출력됨
댓글
댓글 쓰기