SQL(5~8)
celeb 테이블 구경하기
실습할 테이블 생성
create table celeb
테이블 정보 확인
desc celeb;
SELECT 문에서 데이터를 특정 컬럼을 기준으로 오름차순 혹은 내림차순 정렬
- SELECT column1, column2, ...
- FROM tablename
- ORDER BY column1, column2, ...ASC /DESC;
EX)celab 테이블에서 이름과 나이를 나이순으로 조회
1. SELECT age, name
2. FROM celab
3. ORDER BY age ASC; *기본오름차순이라서 ASC 생략가능
EX)celab 테이블에서 이름과 나이를 나의 역순(내림차순)으로 조회
1. SELECT age, name
2. FROM celab
3. ORDER BY age DESC;
EX)celab 테이블에서 이름과 나이를 나이와 이름순으로 정렬하여 조회(기본 오름차순 정렬)
1. SELECT age, name
2. FROM celab
3. ORDER BY age, name;
EX)celab 테이블에서 이름과 나이를 나이의 역순으로 정렬한 뒤 이름순으로 정렬하여 조회
1. SELECT age, name
2. FROM celab
3. ORDER BY age DESC, name ASC;
<>, != -> 같지않다.
ex) 나이가 29세인 데이터 검색
1. SELECT name, age From celab WHERE age=29 ORDER BY age;
ex)나이가 29세가 아닌 데이터 검색
1. SELECT name, age FROM celab WHERE age != 29 ORDER BY age;
ex) 나이가 29세 보다 큰 데이터 검색
1. SELECT name, age FROM celab WHERE age>29 ORDER BY age;
...
AND = 조건 모두 만족 TRUE
OR = 하나의 조건이라도 만족 TRUE
NOT = 조건을 만족하지 않는 경우 TRUE
BETWEEN = 조건값이 범위 사이에 있으면 TRUE
IN = 조건값이 목록에 있으면 TRUE
LIKE = 조건값이 패턴에 맞으면 TRUE
AND 문법
조건을 모두 만족하는 경우 TRUE
1. SELECT column1, column2, ...
2. FROM tablename
3. WHERE condition1 AND condition2 ..;
EX)성별이 남자이고 나이가 40세 보다 큰 데이터를 이름의 역순으로 정렬하여 검색
1. SELECT * FROM celab WHERE sex='M' AND age>40 ORDER BY name DESC;
OR문법 : 하나의 조건이라도 만족하는 경우TRUE
ex)나이가 25세보다 작거나 30세보다 큰 데이터검색
1.SELECT * FROM celab WHERE age<25 OR age>30 ORDER BY age;
ex)나이가 29세보다 작고 여자이거나, 나이가 30세보다 크고 남자인 데이터를 나이와 성별 순으로 정렬하여 검색
*AND를 먼저 처리하기 때문에 먼저 처리할 부분을 ()괄호를 넣는다.
ex)YG엔터테이먼트 소속이거나 나무엑터스 소속인 연예인 중, 나이가 30세보다 작은 데이터를 검색
1. SELECT * FROM celab WHERE agency='YG엔터테이먼트' OR agency='나무엑터스'
2. AND age<30;
NOT 문법 : 조건을 만족하지 않은 경우TRUE
1.SELECT column1, column2
2.FROM tablename
3.WHERE NOT condition;
ex)성별이 여자가 아닌 데이터 검색
1.SELECT * FROM celeb WHERE NOT sex='F';
ex)소속사가 yg엔터테이먼트이면서 남자가 아니거나 직업이 가수이면서 소속사가 yg엔터테이먼트가 아닌 데이터 검색
1.SELECT FROM celeb WHERE agency='YG엔터테이먼트'; AND NOT sex='M';
2.SELECT FROM celeb WHERE job_title='가수' AND NOT agency='YG엔터테이먼트';