MySQL Workbench 데이터 가공
데이터를 유니크하게 만드는(중복제거) distinct
데이터를 정렬하는 order by
데이터를 끊어서 가져오는 limit 와 offset
문자열 안에 원하는 문자가 들어있는지 검색하는 lik
데이터를 집계하는 group by
※ distinct(중복제거 키워드)
SELECT DISTINCT author_lname
from books;
※ 데이터를 정렬하는 order by
-- author_lname 으로 정렬해서 가져오기 - 오름차순 정렬
SELECT *
from books
order by author_lname;
-- ASC 오름차순(생략시 오름차순으로 적용)
SELECT *
from books
order by author_lname ASC;
-- DESC 내림차순
SELECT *
from books
order by author_lname DESC;
-- full_name 으로 내림차순 정렬
SELECT *,CONCAT( author_fname,' ',author_lname) as full_name
FROM books
order by full_name DESC;
-- 출간년도 내림차순으로 정렬하여서, 책제목, 출간년도,페이지수를 가져오세요.
SELECT title,released_year,stock_quantity
FROM books
order by released_year DESC;
-- 정렬은 여러개가 가능하다.
-- author_lname은 내림차순으로 정렬하되,
-- lname 이 같으면, author_fname은 오름차순 으로 정렬하자.
SELECT *
FROM books
order by author_lname DESC ,author_fname asc;
※ 데이터를 끊어서 가져오는 limit 와 offset
limit 에 숫자 2개를 입력하면 왼쪽은 시작위치(offset) 오른쪽은 갯수
페이징(paging)에 사용된다
-- books 테이블의 데이터를, 5개만 가져오세요.
SELECT *
from books
limit 5;
-- offset !! offset 이란, 데이터를 가져오는 시작점!
-- books 테이블의 데이터를, 처음부터 5개 가져오세요.
-- 0(off set), 5 에서 처음에 0은, 처음부터라는 뜻 두번째의 5는, 5개씩 가져오라는 뜻 페이징
SELECT *
FROM books
limit 0,5;
-- 그 다음의 5개도 가져오시오.
SELECT *
from books
limit 5,5;
-- 그 다음의 5개도 가져오시오.
SELECT *
FROM books
limit 10,5;
-- 그 다음의 5개도 가져오시오.
SELECT *
FROM books
limit 15,5;
-- 출간년도 내림차순으로 정렬하여, 처음부터 7개의 데이터를 가져오시오.(순차적으로 증가)
SELECT *
FROM books
order by released_year DESC
limit 0,7;
SELECT *
FROM books
order by released_year DESC
limit 7,7;
SELECT *
FROM books
order by released_year DESC
limit 14,7;
※ 문자열 안에 원하는 문자가 들어있는지 검색하는 like
-- 문자열 안에, 원하는 문자열이 들어있는지 검색 하는 키워드 : like %데이터%->가 들어가면 데이터 양옆에 글자가 있어도 없어도 검색
-- 책 제목에 the 가 들어있는 책 데이터를 가져오시오.
-- %데이터%->가 들어가면 데이터 양옆에 글자가 있어도 없어도 검색
-- 데이터%->가 들어가면 데이터 오른쪽 글자가 있어도 없어도 검색
-- %데이터->가 들어가면 데이터 왼쪽 글자가 있어도 없어도 검색
SELECT *
FROM books
where title LIKE '%the%'
-- 책 제목에 the 로 시작하는 책 데이터를 가져오시오.
SELECT *
FROM books
WHERE title LIKE 'the%'
-- 책 제목이 e 로 끝나는 책 데이터를 가져오시오.
SELECT *
FROM books
WHERE title LIKE '%e';
-- stock_quantiy 의 숫자가, 두자리 수인 데이터만 가져오시오. '_'>- 숫자 1자리 검색 / '__'<-숫자 두자리 검색
SELECT *
FROM books
where stock_quantity LIKE '__';
※ 데이터를 집계하는 group by
-- ~ 별로 묶어서 처리하는 경우 : 집계 => group by
-- author_lname 별로 몇권의 책을 썼는지,
-- 작가의 author_lname과 책의 갯수를 보여주세요.
SELECT author_lname,COUNT(*) as book_cnt
from books
group by author_lname;
-- 년도별로 각각 몇권의 책이 출간되었는지,
-- 년도와 그년도의 출간된 책의 갯수를 보여주세요.
SELECT released_year,COUNT(*) as book_cnt
FROM books
group by released_year
order by released_year DESC ;
'MySQL' 카테고리의 다른 글
9. MySQL 서브쿼리 Sub Query 사용하기 (1) | 2024.11.29 |
---|---|
8. MySQL 데이터 집계함수 count, sum, avg, max, min (0) | 2024.11.28 |
6. MySQL 문자열 함수 (1) | 2024.11.27 |
5. MySQL 테이블 데이터 CRUD(Create, Read, Update, Delete) (0) | 2024.11.27 |
4. MySQL 테이블에 데이터 insert 하기 a. 하나저장,여러개 저장, Not Null 이란? Default 란? (0) | 2024.11.26 |