[DataBase] Ch. 8 (스마트팩토리)

Kwaaaaan·2023년 3월 9일
2

DataBase(DB)

목록 보기
11/13
post-thumbnail

SELECT문

SELECT문 활용방법은 다음과 같습니다.
SELECT custid FROM customer;
위와 같이 작성하게되면

위와 같은 실행결과가 나옵니다.
해석해보면 SELECT(보여줘) custid를 FROM(있는) customer에 ;이라고 해석하시면 됩니다.

SELECT문 예시

S-1. 모든 고객의 고객아이디와 생년월일을 검색

SELECT custid, birth FROM customer;

SELECT birth, custid FROM customer;

위의 결과는 custid를 먼저 입력하느냐, birth를 먼저 입력하느냐에 따라 테이블의 순서가 바뀌게 나오게 됩니다.

S-2. 모든 고객의 아이디, 주소, 전화번호, 이름, 생년월일 검색

SELECT custid, addr phone, custname, birth FROM customer;

SELECT문에서 DISTINCT

SELECT문에서 DISTINCT는 중복된 정보를 검색하지 않을 때 사용됩니다.
SELECT addr FROM customer;

위의 결과에서는 '대한민국 서울'이 두개가 뜨지만
SELECT DISTINCT addr FROM customer;

중복을 허락하지 않은 구문에서는 하나의 서울만 나오게 됩니다.

SELECT문에서 WHERE절

SELECT문에서 WHERE은 특정 조건을 찾기 위해 사용됩니다.

W-1. 고객 이름이 강해린인 고객을 검색

SELECT custid, custname FROM customer WHERE custname = '강해린';
위의 경우는 고객이름과 ID만을 보기위한 구문입니다.

SELECT * FROM customer WHERE custname = '강해린';
위의 경우는 모든 정보(*)를 보기위한 구문입니다.

WHERE절에서의 연산자

크게 =, <, >, <=, >=, !=가 있습니다(몇개는 나중에 JOIN에서도 쓰입니다..!).

W-2. 고객 이름이 강해린인 고객을 검색

SELECT * FROM customer WHERE custname = '강해린';

W-3. 제품 가격이 4000원 이상인 주문 내역을 검색

SELECT prodname, price FROM orders WHERE price >= 4000;

W-4. 주소가 서울 혹은 런던인 고객 검색

SELECT * FROM customer WHERE addr IN ('대한민국 서울', '영국 런던');
SELECT * FROM customer WHERE addr = '대한민국 서울' OR addr = '영국 런던';
SELECT * FROM customer WHERE addr LIKE '대한민국 서울' OR addr LIKE '영국 런던';

LIKE는 '=(equal)'과 같은 역할을 합니다!

W-4-1. 주소가 서울 혹은 런던이 아닌 고객 검색

SELECT * FROM customer WHERE addr NOT IN ('대한민국 서울', '영국 런던');
SELECT * FROM customer WHERE addr != '대한민국 서울' AND addr != '영국 런던';

WHERE절에서 LIKE

위에서 잠깐 LIKE는 '='와 같은 역할을 한다고 말씀드렸습니다. 하지만 =의 대체역할뿐 아니라 다음과 같이 사용합니다. LIKE는 특정 패턴을 포함하는 데이터를 검색할때 사용되며, '%'와 ''와 함께 사용됩니다.
여기서 '%'는 0개 이상의 문자를 의미하고, '
'는 1개 이상의 단일문자를 의미합니다.
실습을 통해 더 알아봅시다.

W-5. 고객 이름 두번째 글자가 '지'인 고객 검색

SELECT * FROM customer WHERE custname LIKE '_지_';
SELECT * FROM customer WHERE custname LIKE '_지%';

의 경우에는 모든 경우를 통용하지 않습니다. 이름이 3글자 인 경우에만 가능하죠. 하지만 '_지%'의 경우에는 두번째 글자가 '지'인 모든 경우에서 사용이 가능합니다. (저희는 테이블에 custname이 3글자가 넘는 경우가 없어 둘다 사용 가능합니다.)

WHERE절에서의 복합조건

WHERE절에서는 복합조건인 AND, OR, NOT을 사용해 데이터를 볼 수 있습니다. 프로그래밍언에서 사용하는 AND, OR, NOT과 다르지않아 사용은 어렵지 않습니다.

W-6. 주소지가 대한민국이고, 2000년 이후 출생 고객 검색

SELECT * FROM customer WHERE addr LIKE '대한민국%' AND birth >= '2000-01-01';

W-7. 주소지가 미국이거나 영국인 고객 검색

SELECT * FROM customer WHERE addr LIKE '미국%' OR addr LIKE '%영국%';

W-8. 휴대폰 번호 마지막 자리가 4가 아닌 고객 검색

SELECT * FROM customer WHERE phone NOT LIKE '%4';


결론

SELECT문의 기본이 될 수 있는 WHERE절에 대해서 충분히 다뤄보았습니다. WHERE절은 조건을 추가하여 검색할 수 있게 만들어주는 가장 간편하지만 강력한 명령어라고 볼 수 있습니다. 다양한 케이스들을 생각해 연습하다보면 WHERE절 고수가 될 수 있을거라 생각합니다!

profile
스마트팩토리 개발자(를 꿈꾸며)

1개의 댓글

comment-user-thumbnail
2023년 3월 13일

민지 해린 은정 지민 지연 지수.. 기억하겠습니다...

답글 달기