create table celeb (
ID int not null auto_increment primary key, -- ID는 숫자형, null 불허, 자동숫자증가, 주요키로 사용
NAME varchar(32) not null default '',
BIRTHDAY date,
AGE int,
SEX char(1),
JOB_TITLE varchar(32),
AGENCY varchar(32)
);
insert into celeb values (1, '아이유', '1993-05-16', 29, 'F', '가수, 텔런트', 'EDAM');
insert into celeb values (2, '이미주', '1994-09-23', 28, 'F', '가수', '울림');
insert into celeb values (3, '송강', '1994-04-23', 28, 'M', '텔런트', '나무');
...
select age, name from celeb
order by age desc, name asc; -- 오름차순 정렬(asc)은 기본값이라 안써도됨!
1) A=B : A와 B가 같은
2) A>B : A가 B 초과
3) A<B : A가 B 미만
4) A>=B : A가 B 이상(크거나 같은)
5) A<=B : A가 B 이하(작거나 같은)
6) A!=B (A<>B) : A와 B가 같지 않은
ex) 나이가 50세 미만인 데이터의 성별, 소속사, 이름, 나이를 성별 순, 소속사 역순, 이름 순 정렬
select sex, agency, name, age from celeb
where age < 50 -- 나이가 50세 미만
order by sex asc, agency desc, name asc;
1) AND : 조건 모두 만족하면 TRUE
2) OR : 조건 하나라도 만족하면 TRUE
3) NOT : 조건 만족하지 않으면 TRUE
4) BETWEEN : 조건값이 범위 사이에 있으면 TRUE
5) IN : 조건값이 목록에 있으면 TRUE
6) LIKE : 조건값이 패턴에 맞으면 TRUE
-- AND : 조건 모두 만족하면 TRUE
select * from celeb
where age=29 AND sex='F'; -- 29세 '이면서' 여성
-- OR : 조건 하나라도 만족하면 TRUE
select * from celeb
-- 29세 미만 여성 '이거나'
where (age<29 and sex='F')
-- 30세 초과 남성 '이거나'
or (age>30 and sex='M')
order by age, sex;
-- NOT : 조건 만족하지 않으면 TRUE
select * from celeb
-- 1990 이후생이면서 여자 '아닌'
where (birthday >= 19900101 and NOT sex='F')
-- 1979 이전생이면서 안테나 소속사가 '아닌'
or (birthday <=19791231 and NOT agency='안테나');
-- BETWEEN : 조건값이 범위 사이에 있으면 TRUE
select * from celeb
-- 나이가 30세 ~ 60세 '사이'면서 남성인
where (age BETWEEN 30 and 60) and sex='M'
order by age;
-- IN : 조건값이 목록에 있으면 TRUE
select * from celeb
-- 소속사가 ('안테나', 'YG')가 아니면서 여성
where not agency IN ('안테나', 'YG')
and sex='F';
-- LIKE : 조건값이 패턴에 맞으면 TRUE
select * from celeb
-- 남성이거나 직업이 최소 5글자에 텔런트로 끝나는
where sex='M'
or job_title like '%__텔런트';