[데분스] Day+3. SQL - ORDER BY, Comparision Operators, Logical Operations

용솝·2024년 2월 6일
1

SQL

목록 보기
2/8
post-thumbnail

04. ORDER BY

  • 테이블 만들기
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', '텔런트', '나무');
...

  • ORDER BY
    FROM 절 뒤(where 절 뒤)에 붙어 오름차순(ASC), 내림차순(DESC)으로 보여줄 값을 설정할 수 있음!!!
    나이는 내림차순(큰->작은) 으로, 만약 나이가 같다면 이름은 오름차순(ㄱ->ㅎ) 으로
select age, name from celeb
	order by age desc, name asc; -- 오름차순 정렬(asc)은 기본값이라 안써도됨!

05. Comparison Operators(비교 연산자)

  • 비교연산자 종류
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;


06. Logical Operators(논리 연산자)

  • 논리연산자 종류
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 '%__텔런트';

profile
🖐

0개의 댓글