본문 바로가기

SQL

SQL - 실습(WHERE)

문제 1)

수학 점수가 80점 초과 국어 점수가 90점 이상인 사람에게 A+을 주기 위해 score테이블에서 검색하려고 합니다.

지시사항 - score테이블에서 수학(math) 점수가 80점 초과, 국어(korean) 점수가 90점 이상인 학생의 정보를 검색해보세요.

DESC score;

-- 수학 점수가 80점 초과, 국어 점수가 90점 이상인 학생의 정보를 검색해보세요.
SELECT *
FROM score
WHERE math > 80 && korean >= 90;

-- 출력 결과


문제 2)

employees 테이블에서 여자 직원들 중에 first_name이 'Chirstian' 인 직원들을 검색하려고 합니다.

WHERE을 사용하되 AND를 이용해서 조건을 추가해보세요.

 

지시사항

  1. 여자 직원들 중에 first_name이 'Chirstian' 인 직원들을 검색해보세요.
  2. 조회할 때는 모든 컬럼을 검색하도록 합니다.
SELECT *
FROM employees
WHERE gender = 'F' && first_name = 'Chirstian';

 

-- 출력 결과

 


문제 3) employees 테이블에서 복잡한 조건을 만족하는 직원을 검색해 봅시다.

  • first_name이 'Chirstian' 또는 'Georgi' 이다.
  • gender가 남자이다.
  • hire_date가 '1986-06-26' 이 아니다.

지시사항

  1. 논리연산자를 이용해 문제에 제시된 복잡한 조건을 만족하는 쿼리를 작성하세요.
  2. 조회할 때는 모든 컬럼을 검색하도록 합니다.
SELECT *
FROM employees
WHERE 
(first_name = 'Chirstian' OR first_name = 'Georgi')
&&
gender = 'M'
&&  hire_date != '1986-06-26';

연산자의 우선 순위에 주의!

()을 활용해서 우선순위를 정해주어야 한다.

 


문제 4)

국어, 영어, 수학 점수 중 하나라도 100점인 학생에게는 짜장면을 사주시기로 약속했고,

3과목 모두 70~95점 사이인 학생에게는 과자를 사주신다고 했습니다.

여러분은 학생들의 성적이 담겨있는 score테이블에서

짜장면을 받을 학생과 과자를 받을 학생을 차례대로 조회해 봅시다.

 

지시사항

  1. 국어, 영어, 수학 점수 중 하나라도 100점인 학생을 검색해보세요.
  2. 3과목 모두 70~95점 사이인 학생을 검색해보세요.
  3. 조회할 때는 모든 컬럼을 조회하도록 합니다.
  4. score 테이블의 각 컬럼은 다음과 같습니다.
DESC score;

-- 짜장면을 받을 수 있는 학생을 조회하는 쿼리를 작성해주세요.

SELECT * 
FROM score
WHERE 
math = 100 || english = 100 || korean = 100;


-- 과자를 받을 수 있는 학생을 조회하는 쿼리를 작성해주세요.

SELECT *
FROM score
WHERE
-- (오답) 
math >= 70 && math <=95 || english >= 70 && english <=95 || korean >=70 && korean <= 95;

-- 정답
SELECT *
FROM score
WHERE korean between 70 and 95 && english between 70 and 95 && math between 70 and 95;

 

 

-- 출력 결과( 짜장면을 먹을 수 있는 학생)

 

-- 출력 결과( 과자를 먹을 수 있는 학생)

 

 


문제 5)

입사 연도에 따라 직원들에게 추가 보너스를 주 려고 합니다.

1980년에서 1989년 사이에 입사한 직원과 1990년에서 1999년 사이에 입사한 직원을 각각 검색해봅시다.

BETWEEN을 이용해서 해결해보세요.

 

지시사항

employees 테이블에서:

  1. SELECT문을 이용해서 1980년에서 1989년 사이에 입사한 직원의 모든 컬럼을 검색해보세요.
  2. SELECT문을 이용해서 1990년에서 1999년 사이에 입사한 직원의 모든 컬럼을 검색해보세요.
-- 1980~1989년도에 입사한 직원을 검색하세요.

SELECT *
FROM employees
WHERE
hire_date between '1980-01-01' and '1989-12-31';


-- 1990~1999년도에 입사한 직원을 검색하세요.

SELECT *
FROM employees
WHERE
hire_date between '1990-01-01' and '1999-12-31';

-- 출력결과

'SQL' 카테고리의 다른 글

SQL - 신체검사표  (0) 2021.10.19
SQL - 실습(IN)  (0) 2021.10.19
SQL - 여러 개의 조건을 추가하기  (0) 2021.10.18
SQL - 조건을 추가하여 검색하기  (0) 2021.10.18
SQL - 테이블에서 데이터 검색하기  (0) 2021.10.18