DB/실습

8. [ DB ] MySQL 문자열 함수 : 정의와 활용 예시 (2)

천재단미 2024. 11. 29. 17:49
728x90
반응형

지난 시간에 이어  
MySQL 문자열 여러 함수중 유용한 함수의 정의와 활용 예시에 대하여 알아보겠습니다. 
 
 
 
 
 

6. order by()
 
 

1) 정의 
 
SQL에서 쿼리 결과를 정렬하는 데 사용되는 절입니다. 
 
 
2) 기본 구문
 
 


SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...



-- asc : 오름차순(기본값)

-- desc : 내림차순


 
(1) 예시 (별칭사용)
조건 1. full_name으로 내림차순 정렬
 



SELECT *, concat( author_fname,' ', author_lname ) as full_name
from books
order by full_name desc;


-- SELECT 문에서 정의한 별칭을 사용할 수 있습니다. (예: full_name)


 
 

 
 
(2) 예시 (여러 열 기준 정렬)
조건 1. author_lname으로 정렬하되
조건 2.  lname 이 같으면, author_fname으로 정렬하자.
 
 



SELECT *
from books
order by author_lname , author_fname;


-- 여러열을 정렬할경우  쉼표로 구분하여 여러 열을 기준으로 정렬할 수 있습니다.


 
 
 
 
 
 
 
 

7. limit()


1) 정의 

 

 SQL에서 쿼리 결과의 행 수를 제한하는 데 사용되는 절입니다. 주요 특징은 다음과 같습니다.

 

2) 기본 구문

 



SELECT column1, column2, ...
FROM table_name 
LIMIT number_of_rows





 
(1) 예시
조건 1. books 테이블의 데이터를, 5개만 가져오세요.
 



SELECT *
from books
limit 5;


 
 
 
 
(2) 예시 (offset)
조건 1.  books 테이블의 데이터를, 처음부터 5개 가져오세요.
 



SELECT *
from books
limit 0 , 5 ;

-- 0 , 5 에서 처음의 0은, 처음부터라는 뜻!  두번째의 5는, 5개씩 가져오라는 뜻.




SELECT *
from books
limit 5 , 10 ;


-- 5,10 의 경우 5번째에서 10개를 가져오라는 뜻.


 



(3) 예시 (order by 복합조건)
조건 1. 출간 연도 내림차순으로 정렬하여
조건 2. 14번째부터 7개의 데이터를 가져오시오.
 



SELECT *
from books
order by released_year DESC  --   DESC 내림차순 
limit 14, 7;


 
 

 
 
 
 
 
 
 
 

8. like()
 
 
 

1) 정의 
 
 
SQL에서 LIKE 연산자는 문자열 패턴 매칭에 사용되는 중요한 키워드입니다.
 
 
 
2) 기본 구문
 
 



SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;


 
 
 
 
(1) 예시 (문자포함 : %)
조건 1. 책 제목에 the로 시작하는 책 데이터를 가져오시오.
 



SELECT *
from books
where title like 'the%'; -- the로 시작하는 문자열




SELECT *
from books
where title like '%e'; -- e로 시작하는 문자열




SELECT title
from books
where title like '%stories%'-- stories를 포함하는 문자열

 

 
 

 
 
 
(1) 예시 (정확한 수의 임의 문자 : _ )
조건 1.  stock_quantity의 숫자가, 두 자리 수인 데이터만 가져오시오.
 



SELECT *
from books
where stock_quantity like '__'-- "_" 와 "_" 각각 두자리의 정확한 문자열



-- 'a_%' : 'a'로 시작하고 최소 2자 이상인 문자열 


 
 
 
 
 
(2) 예시 - 부정 
조건 1. 책 제목에 W가 들어있지 않은 책을 가져오시오.
 




SELECT *
FROM books
WHERE title not like '%W%';


 
 

 
 
 
 
(3) 예시 - null 
조건 1. 재고가 null 인 데이터를 가져오시오. 
조건 2. 재고가 null 이 아닌 데이터를 가져오시오. 
 




SELECT *
FROM books
WHERE stock_quantity is null;



SELECT *
FROM books
WHERE stock_quantity is not null;



 
 
 
(4) 예시 - 복합 
조건 1. stock_quantity뒤에 "in stock" 붙이고 칼럼은 quantity로 변경
조건 2. author_lname과 author_fname 중간게 " " 공란을 두고 칼럼은 author로 변경 
조건 3. 첫 번째부터 10번째 이후 글자는 "..."으로 하고 칼럼은 short title로 변경 
 
 



SELECT CONCAT( SUBSTR( title , 1, 10 ) , '...' ) as 'short title' ,
CONCAT( author_lname, ',' ,author_fname ) as author,
CONCAT( stock_quantity , ' in stock' ) as quantity
from books;



 

 
 
 
 
 
 

728x90
반응형
home top bottom
}