책 제목에 the가 들어있는 데이터를 가져와보자
책 제목이 the인거 가져오시오 와는 다르다
select *
from books
where title like '%the%';
일단 이렇게 작성되며
%%은
이렇게 해석된다
앞의 %는 앞에 무엇이 와도 상관없다
뒤의 %는 뒤에 무엇이 와도 상관없다
즉, 앞에 무엇이 있든 뒤에 무엇이 있든 the가 들어있는 데이터를 가져와라 라는 의미
만약 the로 시작하는 데이터를 가져오고 싶다 라면?
select *
from books
where title like 'the%';
앞에 무엇이 없어야 하니까 앞의 %를 빼주면 되겠다
2자리 숫자의 데이터만 가져와라
그럼 이번엔 이런 자료에서
stock_quantity의 데이터가 3자리 숫자도 2자리 숫자도 있다
이럴때 2자리 숫자의 데이터만 가져오려고 할때에는?
select *
from books
where stock_quantity like '__';
_ _ 2개를 입력하여 숫자 2자리를 가져오게한다
중첩 조건 and
pages 수는 100보다 크고, 책 제목에 the가 들어간 책을 가져오되
stock_quantity는 내림차순으로 데이터를 3개만 가져오자
라는 조건이라면 어떨까
일단 where에 페이지와 타이틀이 들어가야한다
그렇다면 조건1 & 조건2로 입력하자
select *
from books
where title like '%the%' and pages > 100
order by stock_quantity desc
limit 3;
출판년도가 1990년에서 2015년 사이의 책을 가져오시오
위에서는 다른 컬럼의 다른 조건이었지만
이번엔 하나의 컬럼의 다른 조건이다
select *
from books
where released_year >= 1990 and
released_year <= 2015
order by released_year;
라고 쓸 수 있겠다
하지만
어릴적 배운 between a and b를 기억한다면?
select *
from books
where released_year between 1990 and 2015
order by released_year;
이렇게도 입력이 가능하다
둘 중 하나만이라도 True라면?
Eggers 나 Chabon이 쓴 책을 가져오시오
라는 지문이 있을때
lname에서
1번이 맞거나 2번이 맞는 경우 둘다를 나오게 하면 된다
그렇다면
select *
from books
where author_lname like 'Eggers'
or author_lname like 'Chabon';
라고 중간에 or를 입력하여 둘 중 하나라도 맞는 경우는
나오도록 하자
select *
from books
where author_lname in ('Eggers','Chabon');
in ( )함수를 사용하여
해당 컬럼안에 찾는 것이 존재 하는 행들을 전부 가져오는것도 동일하다
단어 OO을 제외한 조건 찾기 not
select *
from books
where title like '%talk%';
라고 입력하여 제목에 talk가 있는 데이터들을 확인한 결과
하나만 나왔다면
그렇다면 이번엔 talk가 없는 데이터들만을 보고싶다면 어떻게 해야할까
like 앞에 not을 추가하자
select *
from books
where title not like '%talk%';
'MYSQL' 카테고리의 다른 글
MYSQL - ㅁㅁ별로 묶어서 Group by, having 작성법, 서브 쿼리 Sub Query (0) | 2024.05.14 |
---|---|
MYSQL - 숫자를 세는 count( ),합산sum( ), 평균avg( ), 최대/최소값 max( ),min( ) (0) | 2024.05.14 |
MYSQL - 데이터를 끊어 보여주는 Paging- limit, offset (1) | 2024.05.14 |
MYSQL - 유니크 distinct, 정렬 order by, 내림차순/오름차순 desc,asc (0) | 2024.05.14 |
MYSQL - 문자열의 순서를 역순으로 reverse( ), 문자열의 갯수 char_length( ) (0) | 2024.05.13 |