[SQL] SQL 데이터 분석, 입문 _ 데이터 필터링

강지영·2023년 2월 20일
0
  • 데이터 필터링(Filtering)
    여러 데이터들 중에서 원하는 것만 걸러내는 것
    WHERE절을 사용해서 걸러낼 수 있음!

  • 단일 조건
    WHERE 조건

  • 비교연산자
    !=, >, >=, = <=, <

  • 다중 조건 필터링
    논리 연산자(AND, OR, NOT, ***)를 사용하여 필터링

- AND (교집합 / 모든 조건에 해당하면)

WHERE 조건1
	AND 조건2

- OR (합집합 / 조건들 중 하나라도 해당하면)

WHERE 조건1
	OR 조건2

필요한 테이블(학생 테이블) 생성

학생 테이블 생성

-- 학생 테이블 생성
CREATE TABLE students (
	id INTEGER,
	nickname VARCHAR(50),
	math_score INTEGER,
	english_score INTEGER,
	programming_score INTEGER
);

학생 레코드 추가

-- 학생 레코드 추가
INSERT INTO 
	students(id, nickname, math_score, english_score, programming_score)
VALUES
	(1, 'Spakles', 98, 96, 93),
	(2, 'Soldier', 82, 66, 98),
	(3, 'Lapooheart', 84, 70, 82),
	(4, 'Slick', 87, 99, 98),
	(5, 'Smile', 75, 73, 70),
	(6, 'Jellyboo', 84, 82, 70),
	(7, 'Bagel', 97, 91, 87),
	(8, 'Queen', 99, 100, 88);

전체 학생 정보

-- 전체 학생 정보**
SELECT 
	*
FROM 
	students;

모든 과목 성적이 다 90점 이상인 학생 정보

모든 과목 성적이 90점 이상이어야 함으로 AND연산자를 활용하여 교집합을 구함

-- 모든 과목 성적이 다 90점 이상인 학생 정보
SELECT 
	*
FROM 
	students
WHERE
	math_score >= 90
	AND
	english_score >= 90
	AND
	programming_score >= 90;
    

75점 미만 과목이 하나라도 있는 학생 정보

75점 미만 과목이 하나라도 있는 학생을 구하여야 함으로 OR연산자를 활용하여 합집합을 구함

-- 75점 미만 과목이 하나라도 있는 학생 정보
SELECT 
	*
FROM 
	students
WHERE
	math_score < 75
	OR
	english_score < 75
	OR
	programming_score < 75;

모든 학생별 정보와 성적 총점

산술 연산자를 활용하여 총점을 구하고 AS를 활용하여 별칭 지정

-- 모든 학생별 정보와 성적 총점
SELECT 
	*,	-- 모든 컬럼을 보여줘!
	math_score + english_score + programming_score AS total -- AS > 별칭 지정
FROM students
;

모든 학생별 정보와 성적 평균

산술 연산자를 활용하여 총점을 구하고 AS를 활용하여 별칭 지정

-- 모든 학생별 정보와 성적 평균
SELECT 
	*,	-- 모든 컬럼을 보여줘!
	(math_score + english_score + programming_score)/3 AS average -- 성적 평균
FROM students
;

총점이 270점 이상인 학생의 이름, 성적 총점, 성적 평균

산술 연산자를 활용하여 총점을 구하고 AS를 활용하여 별칭 지정하고
WHERE 조건문을 통해 총점이 270점 이상인 학생을 구함

-- 총점이 270점 이상인 학생의 이름, 성적 총점, 성적 평균
SELECT
	nickname,
	math_score + english_score + programming_score AS total,
	(math_score + english_score + programming_score)/3 AS average
FROM
	 students
WHERE
	 math_score + english_score + programming_score >= 270;
	
profile
Hello World!

0개의 댓글