본문 바로가기
SQL

SQL select - 실습6

by hj_it 2024. 1. 29.
NULL과 비교 연산

- NULL은 비교연산자를 사용할 수 없음.

- NULL은 아래와 같이 사용함.

     , 컬럼 IS NULL

     , 컬럼 IS NOT NULL

 

BETWEEN .. AND 연산자
SELECT * | 컬럼, ......
FROM 테이블;
WHERE 컬럼 BETWEEN 값1 AND 값2
ORDER BY 컬럼 ......

- '컬럼 >= 값1 AND 컬럼 <= 값2'와 동일하다.

- 값1은 반드시 값2보다 작아야한다.

 

IN 연산자
SELECT * | 컬럼, ......
FROM 테이블;
WHERE 컬럼 IN (값1, 값2 ...)
ORDER BY 컬럼 ......

- 값 중 하나라도 일치하면 값이 출력됨.

- OR 연산자와  = 연산자로 교환 가능.

- 가독성이 매우 높음.

 

LIKE 연산자
SELECT * | 컬럼, ......
FROM 테이블;
WHERE 컬럼 LIKE '리터럴'
ORDER BY 컬럼 ......

- 와일드 문자와 함꼐 사용해야 됨.

   , %: 문자열 공백을 포함.

   , _: 문자

 

와일드 문자

설명 검색 대상
'경%' '경'으로 시작하는 모든 문자열 경, 경제, 경범죄, 경영학과 ...
'%과' '과'로 끝나는 모든 문자열 과, 다과, 화학과, 물리학과 ...
'%김%' '김'이란 글자가 들어간 모든 문자열 김, 김씨, 돌김, 되새김질 ...
'화_' '화'로 시작하는 두글자 단어 화학, 화약, 화상 ...
'__화' '화'로 끝나는 세 글자 단어 무궁화, 해당화, 운동화 ...
'_동_' '동'이 가운데 들어간 세글자 단어 원동기, 전동차 ...
'%이#%%' ESCAPE '#' 으로 지정한 경우, '이%' 가 포함된 문자열
'_#%_' ESCAPE '#' 으로 지정한 경우, '%'가 포함된 세 글자 단어

 

 

실습

1. 1999년에서 2001년까지 부임한 교수의 명단을 검색한다.

SELECT * FROM professor
WHERE hiredate BETWEEN '1998/12/13' AND '2002/01/01'
ORDER BY hiredate;

2. 정교수와 조교수를 검색한다.

SELECT * FROM professor
WHERE orders IN('정교수', '조교수');

3. 학점수가 1학점, 2학점인 과목을 검색한다.

SELECT * FROM course
WHERE st_num IN(1, 2);

4. 1,2 학년 학생 중에 평점이 2.0에서 3.0사이인 학생을 검색한다.

SELECT * FROM student
WHERE syear IN(1, 2) AND avr BETWEEN 2.0 AND 3.0;

5. 물리, 화학과 학생 중 4.5 환산 평점이 3.5에서 4.0 사이인 학생을 검색한다.

SELECT * FROM student
WHERE major IN('물리', '화학') AND (avr*4.5/4.0) BETWEEN 3.5 AND 4.0;

6. 물리, 화학과 학생의 정보를 학년별 성적순으로 검색한다.

SELECT * FROM student
WHERE major IN('물리', '화학')
ORDER BY syear, avr DESC;

7. 물리, 화학과 교수 중에 1999년에서 2000년 사이에 부임한 교수의 정보를 직위별로 검색한다.

SELECT * FROM professor
WHERE section IN('물리', '화학') AND hiredate BETWEEN '1998/12/31' AND '2001/01/01'
ORDER BY orders;

8. 교수가 지정되지 않은 과목 중에 학점이 3학점인 과목을 검색한다.

SELECT * FROM course
WHERE pno IS NULL AND st_num = 3;

9. 화학 관련된 과목 중 평점이 2학점 이하인 과목을 검색한다. : 화학 관련 과목은 과목 명에 화학이 들어간 과목을 의미한다.

SELECT * FROM course
WHERE cname LIKE '%화학%' AND st_num <= 2;

10. 화학과 학생 중에 성이 권씨인 학생을 검색한다.

SELECT * FROM student
WHERE major = '화학' AND sname LIKE '권%';

 

2024.01.24 - [SQL] - SQL select - 실습1

<테이블 정보>

'SQL' 카테고리의 다른 글

SQL select - 실습8  (0) 2024.01.30
SQL select - 실습7  (0) 2024.01.30
SQL select - 실습5  (1) 2024.01.29
SQL select - 실습4  (1) 2024.01.29
SQL select - 실습3  (1) 2024.01.29