본문 바로가기

SQL

#4. 조건 검색

1. 조건 검색

 

  1) Where절

 

     - 테이블에 저장된 데이터중에서 원하는 데이터만 선택적으로 검색하는 기능이다.

 

     - WHERE 절의 조건문은 칼럼 이름, 연산자, 상수, 산술 표현식을 결합하여 다양한 형태로 표현할 수 있다.

 

     - WHERE 절에서 사용하는 데이터 타입은 문자, 숫자, 날짜 타입 사용 가능하다.

 

     - 문자와 날짜 타입의 상수 값은 작은 따옴표(‘’)로 묶어서 표현하고 숫자는 그대로 사용한다.

 

     - 상수 값에서 영문자는 대소문자를 구별한다.

 

     - 예) 1학년인 학생만 검색하여 학번과 이름을 출력하여라.

              => SELECT studno, name

                   FROM student

                   WHERE grade = '1';

 

  2) 비교연산자

       

     - WHERE 절에서 숫자, 문자, 날짜의 크기나 순서를 비교하는 연산자이다.

 

비교연산자 의미
= 같다
!=, < > 같지 않다
> 크다
>= 크거나 같다
< 작다
<= 작거나 같다

 

     - 예) 몸무게가 70kg 이하인 학생만 검색하여 학번, 이름, 학년, 몸무게를 출력하여라.

             => SELECT studno, name, grade, weight

                  FROM student

                  WHERE weight <= 70;

 

  3) 논리연산자

 

     - WHERE 절에서 여러 개의 조건을 결합할 경우 사용한다.

 

     - AND, OR, NOT

논리 연산자 의미
AND 모든 조건이 참일 때, 참 값을 반환한다.
OR 모든 조건 중에서 하나가 참일 때, 참 값을 반환한다.
NOT 조건과 반대되는 결과를 반환한다.

 

     - 예) 1학년이면서 몸무게가 70kg 이상인 학생만 검색하여 학번, 이름, 학년, 몸무게를 출력하여라.

               => SELECT studno, name, grade, weight

                    FROM student

                    WHERE grade = '1'

                    AND weight >= 70;

 

  4) SQL 연산자

 

     - SQL 연산자는 SQL 언어에만 제공된다.

     - SQL 연산자는 모든 데이터 타입에 대해 사용 가능하다.

 

     - SQL 연산자 종류

SQL 연산자 의미
BETWEEN a AND b a 와 b의 사이의 값으로 a,b도 포함한다.
IN(a, b, c, ..., n) a, b, c, ..., n 중의 하나와 일치하면 참이다.
LIKE 문자 패턴과 부분적으로 일치( %, _)하면 참이다.
IS NULL NULL이면 참이다.

 

*ESCAPE 옵션
  : ESCAPE 옵션은 LIKE 연산자에서 사용하는 와일드 문자(%, _)자체를 포함하는 문자열을 검색할 때,
     와일드 문자를 일반 문자처럼 취급하기 위한 옵션이다.
    예) '김*', '김_영'

 

*NULL 

  : NULL은 미확인 값이나 아직 적용되지 않은 값을 의미한다.
    예) 학생 테이블에서 학생의 몸무게가 NULL인 경우 그 학생의 몸무게가 0이라는 의미가 아니라
          현재 시점에서 그 학생의 몸무게를 모른다는 의미이다.
 

     - 예) 몸무게가 50~70kg인 학생

             => SELECT studno, name, grade, weight

                   FROM student

                   WHERE weight BETWEEN 50 AND 70;

 

     - 예) 102번 학과와 201번 학과인 학생

            =>  SELECT studno, name, grade, deptno

                   FROM student

                   WHERE deptno IN (102, 201);

 

     - 예) 성이 김씨인 학생

            =>  SELECT studno, name, grade, deptno

                   FROM student

                   WHERE name LIKE '김%';

                                                     '김_영' <-  이름이 김으로 시작하고 영으로 끝나는 학생

 

     - 예) 보직수당이 없는 교수의 이름, 직급, 보직수당을 출력하여라.

            =>  SELECT name, position, comm

                   FROM professor

                   WHERE comm IS NULL;

 

  5) 연산자 우선순위

 

 

 

'SQL' 카테고리의 다른 글

#5. 집합 연산자와 행의 정렬  (0) 2022.04.12
#3. 데이터 타입(ORACLE)  (0) 2022.04.11
#2. SQL 언어  (0) 2022.04.10
#1. 데이터베이스와 데이터베이스 관리 시스템  (0) 2022.04.10