#1. SQL 연산자

1. BETWEEN 연산자

1) 개념

  • 조회 조건값의 범위를 설정하는 BETWEEN 연산자
  • BETWEEN 연산자는 특정 칼럼의 데이터 값이 하한값 A와 상한값 B 사이에 포함되는 행을 검색하기 위한 연산자이다.
SELECT 칼럼이름 FROM 테이블이름 WHERE 칼럼이름 BETWEEN A AND B;
  • BETWEEN 연산자는 두 개의 비교식을 AND 연산자로 묶은 것과 동일한 결과를 얻을 수 있다.
SELECT 칼럼이름 FROM 테이블이름 WHERE 칼럼이름 >= A AND 칼럼이름 <= B;

 

2) 예제

- BETWEEN 연산자를 사용하여 몸무게가 50kg 에서 70kg 사이인 학생의 학번, 이름, 몸무게를 출력

- 비교 연산자와 AND 연사자를 사용하여 몸무게가 50kg 에서 70kg 사이인 학생의 학번, 이름, 몸무게를 출력

 

2. IN 연산자

1) 개념

  • 여러개의 값 중에서 하나라도 일치하면 참이되는 연산자
  • IN 연산자는 특정 칼럼의 데이터 값이 여러 값 중 하나라도 일치하면 이 되는 연산자이다.
SELECT 칼럼이름 FROM 테이블이름 WHERE 칼럼이름 IN (A, B, C);
  • IN 연산자는 여러개의 비교식을 OR 연산자로 묶은 것과 동일한 결과를 얻을 수 있다.
SELECT 칼럼이름 FROM 테이블이름
WHERE 칼럼이름 = A OR 칼럼이름 = B OR 칼럼이름 = C;

 

2) 예제

- IN 연산자를 사용하여 102번 학과와 201번 학과 학생의 이름, 학년, 학과번호 출력

- 비교 연산자와 OR 연산자를 사용하여 102번 학과와 201번 학과 학생의 이름, 학년, 학과번호 출력

 

3. LIKE 연산자

1) 개념

  • 특정 키워드가 포함된 데이터를 검색
  • LIKE 연산자는 칼럼에 저장된 문자열이 LIKE 연산자에서 지정한 문자패턴과 부분적으로 일치하면 참이 되는 연산자이다.
SELECT 칼럼이름 FROM 테이블이름 WHERE 칼럼이름 LIKE '%검색어%';

# '' 홑따옴표 사용해야 한다
  • 아래 표와 같이 사용할 수 있다
'%김' '김'으로 끝나는 모든 내용
'김%' '김'으로 시작하는 모든 내용
'%김%' 앞 뒤 구분 없이 '김'을 포함하는 모든 내용
  • %: 임이의 길이인 문자열(길이가 0인 경우도 포함)에 대한 특수 문자로 윈도우에서의 '*'와 동일한 의미를 갖는다.

 

2) 예제

- 학생 테이블에서 성이 '김'씨인 학생의 이름, 학년, 학과번호를 출력

 

4. IS NULL, IS NOT NULL 연산자

1) NULL 값의 의미

  • NULL은 미확인 값 혹은 아직 결정되지 않은 값을 의미한다.
  • NULL은 숫자 0이나 공백과는 다른 값이다.
    • ex) 학생의 몸무게가 NULL인 경우는 학생 몸무게가 0이 아니라 현재 시점에서 그 학생의 몸무게를 모른다는 의미
  • 대부분의 프로그래밍 구현에서 미필수 항목에 대하여 사용자가 입력하지 않은 경우를  NULL로 처리한다.

 

- IS NULL

  • 칼럼 값 중에서 NULL을 포함하는 행을 검색하기 위해 사용

- IS NOT NULL

  • NULL을 포함하지 않는 행을 검색하기 위해 사용
SELECT 칼럼이름 FROM 테이블이름 WHERE 칼럼이름 IS [NOT] NULL;

 

2) 예제

- 교수 테이블에서 보직수당이 없는 교수의 이름, 직급, 보직수당을 출력

- 교수 테이블에서 보직수당을 받고 있는 교수의 이름, 직급, 보직수당을 출력

 


#2. 정렬, 부분조회

1. 데이터 정렬하기

1) ORDER BY 절

  • 칼럼이나 표현식을 기준으로 출력 결과를 정렬할 때 사용한다.
SELECT 칼럼이름 FROM 테이블이름
WHERE 검색조건
ORDER BY 칼럼이름 [정렬옵션];
  • 정렬옵션
    • ASC: 오름차순으로 정렬하는 경우에 사용하면 기본값이고 생략 가능. (순차정렬)
      • 문자값: 알파벳순 출력, 한글은 가나다 순으로 출력
      • 숫자값: 가장 작은 값부터 먼저 출력
      • 날짜값: 과거의 날짜부터 출력
    • DESC: 내림차순으로 정렬하는 경우에 사용하며 생략 불가능. (역순 정렬)

 

2) 예제

- 학생 테이블에서 이름을 가나다 순으로 정렬하여 이름, 학년, 전화번호를 출력

 

3) 다중 칼럼 정렬

  • 2차 3차 정렬 조건 부여하기
  • ORDER BY 절에서 지정한 첫 번째 칼럼을 기준으로 1차 정렬한 후, 동일한 값이 있는 경우 두 번째 칼럼을 기준으로 정렬한다.
  • 이 때 각 칼럼별로 정렬 옵션이 따로 설정된다.
SELECT 칼럼이름 FROM 테이블이름
WHERE 검색조건
ORDER BY 칼럼이름1 [정렬옵션], 칼럼이름2 [정렬옵션];

 

4) 예제

- 모든 학생에 대해 학과번호를 오름차순으로 먼저 정렬하고, 같은 학과 학생들은 학년이 높은 순으로 다시 정렬하여 학번, 이름, 학년, 학과번호, 사용자 아이디를 출력

 

2. 데이터 부분 조회

1) LIMIT 절

  • 전체 조회 결과의 x번째 위치에서 부터 y개를 조회하기
  • x값은 0부터 시작한다.
SELECT 칼럼이름 FROM 테이블이름
WHERE 검색조건
ORDER BY 칼럼이름 [정렬조건]
LIMIT x, y;
  • 부분 조회 기능은 프로그램에서 페이지 번호 구현과 관련 있다.
  • LIMIT 절의 경우 MySQL에서만 지원되는 구문이며, 같은 기능을 MSSQL에서는 TOP절의 형식으로, Oracle의 경우는 Rawnum 이라는 기능으로 제공한다.

 

2) 예제

- 교수 테이블에서 급여가 높은 상위 3명의 이름, 직급, 급여를 조회하시오. (0번째 위치 부터 3건의 데이터 추출)

'국비수업 > MySQL' 카테고리의 다른 글

[MySQL] 그룹 조회 / 조인(JOIN)  (0) 2022.06.10
[MySQL] SQL함수  (0) 2022.06.09
[MySQL] 데이터베이스 조회하기  (0) 2022.06.08
[MySQL] Mac에 MySQL 설치하기  (0) 2022.06.08
[MySQL] 데이터베이스 시스템의 이해  (0) 2022.06.07

+ Recent posts