본문 바로가기

프로그래밍 언어/MySQL

[MySQL] 단어 포함 여부 간단 검색: like/ 숫자 자리수 표시: 언더스코어(__)

반응형

 

단어 포함 여부 간단 검색: like

-- 문자열 포함 (Search) : like 키워드 

-- 내가 찾고자 하는 문자열이, 컬럼에 포함되어있는지 확인하는 방법

-- 포함하고 있는 단어, (간단한 검색기능)

-- the%: the 오른쪽에 무슨 문자가 와도 상관없다 -> the로 시작하는 데이터 검색

-- %the: the 왼쪽에 무슨 문자가 와도 상관없다 -> the로 끝나는 데이터 검색

-- %: 무슨 문자가 와도 상관없다. 라는 뜻

-- %the%: 앞 뒤 무슨 문자가 와도 상관없으니, the가 포함된 데이터 검색

-- 대소문자 구분할 필요없이 알아서 본인이 찾아준다.

 

-- 책 제목에 the라고 들어있는(%) 책만 가져오시오. 

select *
from books
where title  like '%the%' ;

-- the 로 시작하는 책만 가져오시오
select *
from books
where title  like 'the%' ;

-- the 로 끝나는 책만 가져오시오
select *
from books
where title  like '%the' ;

-- author_fname에 da라고 들어있는 작가의 책 제목, author_fname, 페이지수를 가져오시오. 
select title, author_fname, pages
from books
where author_fname like '%da%';

-- 책 제목에 퍼센트 기호가 있는 책을 가져오시오. 
select *
from books
where title like '%\%%';

 

숫자 자리수 표시: 언더스코어(__)

-- 언더스코어(___) 기호를 이용한 쿼리문

-- 언더스코어는 숫자를 의미한다.

-- 언더스코어 3개: 3자리 숫자로 되어있는 것을 가져와라.

-- 언더스코어 갯수만큼, 숫자가 2자리수인지 3자리수인지, 자리수를 나타낸다

 

select *
from books
where stock_quantity like '___';

'(032)305-8126' like '(___)___-____';
-- 위에는 문법과 맞지는 않지만(컬럼 넣어야함), 저런식으로 데이터를 가져올 수 있다. 

 

-- 실습:DB 실습2

 

Q) 제목에 stories가 포함된 데이터를, 제목만 조회하시오. 

select title
from books
where title like '%stories%';

 

Q) 페이지수가 가장 긴 책을 찾아서, 제목과 페이지수를 조회하시오. 

select title,pages
from books
order by pages desc
limit 1;



Q) 가장 최근에 발간된 책 3권을 찾아서, 책의 제목과 발간년도를 조회하되, 다음처럼 하이픈(-)을 붙여서 조회하시오. (컬럼명은 summary)

select concat(title, '-', released_year) as summary
from books
order by released_year desc
limit 3;

 

Q) author_lname에 공백(‘ ’)이 들어있는 사람의, 책 제목과 author_lname을 조회

select title, author_lname 
from books
where author_lname like '% %';



Q) 가장 stock_quantity가 적은 책 3권의, title, year, stock_quantity를 조회하시오.

select title, released_year,stock_quantity
from books
order by stock_quantity,title
limit 3;



Q) author_lname과 title로 정렬한후, title과 author_lname을 조회하시오. 

select title, author_lname
from books
order by author_lname, title;



Q) author_lname으로 정렬하되, “My favorite author is’를 붙여허 조회하시오. 

select upper(concat('My favorite author is ', 
author_fname, ' ',author_lname,' !')) as yell
from books
order by author_lname;

 

반응형