[ 4-1. 데이터베이스 다루기 ]
○ WHERE 정의
· 가져올 데이터의 '조건'을 선택하는 키워드
○ 특징
· WHERE [ 조건식 ] 형식으로 사용합니다.
· 조건식이 True(참)이 되는 로우만 선택합니다.
/* WHERE 활용 예시 */
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE 조건식
ex) SELECT name
FROM mypokemon
WHERE name = pikachu;
○ 조건식 정의
· 조건식을 작성하는 데에는 다양한 방식이 있음
· 보통 '연산자'를 사용하여 조건식을 작성
· 원하는 데이터의 조건이 True(참)이 되게끔 조건식을 만듬
· MySQL에서는 True(참) 값을 1로 표현합니다. False(거짓)값은 0으로 표현
/* 조건식 활용 예시 */
-- True(참) = (1) 예시 --
ex) 1=1;
100 > 10;
"A" IN("A", "B", "C");
-- False(거짓) = (0) 예시 --
ex) 1=2;
100 < 10;
"D" IN("A", "B", "C");
[ 4-2 비교 연산자 ]
○ 연산자 정의
· SQL문에서 조건을 명시할 때나 여러 개의 조건을 위한 접속사로 사용
○ 종류
구분 | 예시 |
산술연산자 | +, -, *, /, % |
비교연산자 | =, !=, >, >=, <, <= |
논리연산자 | NOT, AND, OR |
NULL 연산자 | IS NULL, IS NOT NULL |
기타 주요 연산자 | BETWEEN, IN, LIKE |
○ 비교 연산자
[ 4-3 논리 연산자 ]
○ AND
/* AND 활용 예시 */
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [조건1] AND [조건2];
ex) SELECT name
FROM mypokemon
WHERE speed <= 100 AND type ='electric';
○ OR
/* OR 활용 예시 */
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [조건1] OR [조건2];
ex) SELECT name
FROM mypokemon
WHERE type='bug' OR type='normal';
○ NOT
/* NOT 활용 예시 */
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [조건] NOT
ex) SELECT name
FROM mypokemon
WHERE speed <= 100 AND NOT(type='bug);
[ 4-4 기타 주요 연산자 ]
○ BETWEEN
/* BETWEEN 활용 예시 */
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] BETWEEN [조건1] AND [조건2];
ex) SELECT name
FROM mypokemon
WHERE speed BETWEEN 50 AND 100;
○ IN
/* IN 활용 예시 */
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] IN ([조건1], [조건2], ···);
ex) SELECT name
FROM mypokemon
WHERE type IN('bug', 'normal');
○ LIKE
/* LIKE 활용 예시 */
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] LIKE 검색할 문자열;
ex) SELECT name
FROM mypokemon
WHERE NAME like '%CHU';
[ 4-5 NULL 데이터 다루기 ]
○ NULL 정의
· 데이터 값이 존재하지 않는다는 표현
· 0이나 공백이 아닌 알 수 없는 값을 의미
/* NULL 활용 예시 */
-- IS NULL 문법 --
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] IS NULL;
ex) SELECT name
FROM mypokemon
WHERE number IS NULL;
-- IS NOT NULL 문법 --
SELECT [컬럼 이름]
FROM [테이블 이름]
WHERE [컬럼 이름] IS NOT NULL;
ex) SELECT name
FROM mypokemon
WHERE type IS NOT NULL;
[ 4-6. (실습) 주어진 조건에 맞는 데이터를 가져와보자(WHERE) ]
< MISSION 1 >
이브이의 타입을 가져와 주세요.
< MISSION 2 >
캐터피의 공격력과 방어력을 가져와 주세요.
< MISSION 3 >
몸무게가 6kg보다 큰 포켓몬들의 모든 데이터를 가져와 주세요.
< MISSION 4 >
키가 0.5보다 크고, 몸무게가 6kg보다 크거나 같은 포켓몬들의 이름을 가져와 주세요.
< MISSION 5 >
포켓몬 테이블에서 공격력이 50 미만이거나, 방어력이 50 미만인 포켓몬들의 이름을
'weak_pokemon' 이라는 별명으로 가져와 주세요.
< MISSION 6 >
노멀 타입이 아닌 포켓몬들의 데이터를 전부 가져와 주세요
< MISSION 7 >
타입이 (normal, fire, water, grass) 중에 하나인 포켓몬들의 이름과 타입을 가져와 주세요.
< MISSION 8 >
공격력이 40과 60 사이인 포켓몬들의 이름과 공격력을 가져와 주세요.
< MISSION 9 >
이름에 'e'가 포함되는 포켓몬들의 이름을 가져와주세요.
< MISSION 10 >
이름에 'i'가 포함되고, 속도가 50이하인 포켓몬 데이터를 전부 가져와 주세요.
< MISSION 11 >
이름이 'chu'가 끝나는 포켓몬들의 이름, 키, 몸무게를 가져와 주세요.
< MISSION 12 >
이름이 'e'로 끝나고, 방어력이 50 미만인 포켓몬들의 이름, 방어력을 가져와 주세요.
< MISSION 13 >
공격력과 방어력의 차이가 10 이상인 포켓몬들의 이름, 공격력, 방어력을 가져와 주세요.
< MISSION 14 >
능력치의 합이 150이상인 포켓몬의 이름과 능력치의 합을 가져와 주세요.
조건1. 능력치의 합은 공격력, 방어력, 속도의 합을 의미합니다.
'📒 교육 및 공부 > [교육] SQL 데이터분석 첫걸음' 카테고리의 다른 글
[SQL 데이터분석 첫걸음] Day06. 데이터 그룹화하기 (0) | 2023.12.14 |
---|---|
[SQL 데이터분석 첫걸음] Day05. 원하는 데이터 만들기 (0) | 2023.12.04 |
[SQL 데이터분석 첫걸음] Day03. 데이터 가져오기 (1) | 2023.11.21 |
[SQL 데이터분석 첫걸음] Day02. 데이터베이스 다루기 (1) | 2023.11.21 |
[SQL 데이터분석 첫걸음] Day01. 오리엔테이션 (0) | 2023.11.09 |