상세 컨텐츠

본문 제목

SELECT 문으로 데이터 조회 2-1

MySQL

by 싫은밀 2024. 5. 27. 15:57

본문

728x90
반응형

책 홍보 : https://product.kyobobook.co.kr/detail/S000201370815

 

너 혼자서도 할 수 있어! SQL능력자 | 서진수 - 교보문고

너 혼자서도 할 수 있어! SQL능력자 | 이 책은 SQL을 처음 공부하는 사람부터 현업에서 직접 SQL 을 작성해야 하는 사람들까지 사용할 수 있도록 SQL 기초부터 활용까지를 아주 쉽지만 현업에 적용

product.kyobobook.co.kr

 
위 책을 읽고 실습 후 복습차원으로 게시물을 작성함을 알린다.


5) 중복된 값을 제거하고 출력하기

 이럴 경우 SELECT 명령어 뒤에 DISTINTCT 키워드를 함께 사용하면 됨.

DISTINCT 사용 안함

20건 결과 출력

 

DISTINCT 사용함

중복된 부서 번호를 제외한 결과를 조회하니 총 13건의 결과가 출력

 

  • DISTINCT 사용시 아주 중요한 2가지 규칙
  1. 반드시 SELECT 구문 뒤에 맨 먼저 써야 함.
  2. SELECT 뒤에 있는 모든 컬럼에 DISTINCT 영향력이 적용됨.
  • 규칙 2 관련 내용

 1 SELECT DISTINCT deptno , name , hobby

2. FROM emp

3 ORDER BY deptno ;

 실행 결과를 보면 1차로 deptno 컬럼으로 DISTINCT 작업을 한 후 동일한 deptno가 있을 수도 있기 때문에 2차로 name 컬럼 값으로 다시 한번 더 정렬하고 name 3차로 hobby컬럼으로 DISTINCT 작업을 수행한 것을 알 수 있음.

 

결론은 DISTINCT 키워드는 deptno 컬럼 앞에 1회만 썼지만 뒤에 있는 name, hobby 컬럼 모두에 적용이 되어 속도가 아주 느림 SQL문장이 되기 때문에 매우 조심해서 사용해야 함.

 

6) WHERE 구문 사용하기 - 원하는 조건만 검색하기

원하는 조건을 지정하고 싶을 경우 WHERE 키워드를 사용하여 원하는 조건을 알려주면 됨.

 

SELECT [ Column or Expression ]

FROM [ Talble or View ]

WHERE 원하는 조건 ;

 

위 문법에서 중요한 부분은 WHERE 절의 위치인데 반드시 FROM 절 다음에 사용해야 함.

 

먼저 사원 정보가 저장되어 있는 emp 테이블에서 사원의 이름(name), 부서 번호(deptno), 취미(hobby) 정보를 추출하는데 모든 사원들이 아니라 부서 번호(deptno)가 1011 부서에 근무하는 사원들의 정보만 추출하면 

 

1 SELECT name, deptno, hobby
2 FROM emp 
3 WHERE deptno = 1011 ;

 

 

 위 코드의 3번 행에서 WHERE 구문 뒤에 원하는 조건을 지정하면 됨.

 

다음은 emp 테이블에서 취미(hobby)가 등산(Climb)인 직원들의 이름(name), 취미(hobby) 값을 조회

 

1 SELECT name, hobby
2 FROM emp 
3 WHERE hobby = 'Climb';

 위 코드의 3번 행에서 WHERE hobby = 'Climb' ; 부분에서 주의할 내용

  • 문자 조건 지정할 때 주의 사항
  1. 조회할 조건으로 숫자가 아닌 글자나 날짜를 사용할 경우 반드시 홑 따옴표나 쌍 따옴표를 사용하여 조건을 감싸야 함. 숫자일 경우 숫자만 적어야.
  2. 조회할 조건이 영어와 같이 대/소문자가 구분될 경우 반드시 대소문자를 정확하게 구분해서 조건으로 적어줘야 한다.

emp 테이블에서 생일이 1975-10-23보다 작은 날짜만 추출한 후 name, birthday 값을 출력

1 SELECT name, birthday
2 FROM emp 
3 WHERE birthday < '1975-10-23' ;

 

7) 다양한 연산자 활용하여 조회

 

연산자 종류 설 명
= 비교 대상에서 같은 조건을 검색
!=, <> 비교 대상에서 같지 않은 조건을 검색(NOT과 동일)
> 비교 대상에서 큰 조건을 검색
>= 비교 대상에서 크거나 같은 조건을 검색
< 비교 대상에서 작은 조건을 검색
<= 비교 대상에서 작서나 같은 조건을 검색
BETWEEN a AND b A와 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 조건 중 한 가지라도 만족하는 값을 검색

 

728x90
반응형

관련글 더보기