#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: 내림차순으로 정렬하는 경우에 사용하며 생략 불가능. (역순 정렬)
- ASC: 오름차순으로 정렬하는 경우에 사용하면 기본값이고 생략 가능. (순차정렬)
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 |