선택사항 정교화하기
- Select 사용시에 조금 더 정교하게 선택사항들을 지정한다.
- 우리가 작업하고 있는 books데이터에 조금 더 데이터 추가하기
- 코드
INSERT INTO books
(title, author_fname, author_lname, released_year, stock_quantity, pages)
VALUES ('10% Happier', 'Dan', 'Harris', 2014, 29, 256),
('fake_book', 'Freida', 'Harris', 2001, 287, 428),
('Lincoln In The Bardo', 'George', 'Saunders', 2017, 1000, 367);
중복값 제거 : DISTINCT
- 중복값을 제거해서 보여준다.
- 코드
- 중복제거된 성만 보여준다.
SELECT DISTINCT author_lname FROM books;
- 중복 제거된 전체이름은 ????
- 우리의 상황에서는 성과 이름이 따로따로인데 , 중복이 제거된 전체이름은 ?
- 성 + 이름이 중복제거된게 결과값이다.
SELECT DISTINCT CONCAT(author_fname, author_lname) from books;
- 두번째 방법, DISTINCT 를 , 를 이용하여 중복제거
- 성, 이름 따로따로 테이블에 나타남
SELECT DISTINCT author_fname, author_lname FROM books;
데이터 정렬하기 : ORDER BY
- 결과값들을 sorting하기
- 기본적으로 오름차순이다.
- 예시코드
- title을 author_fname을 기준으로 정렬
SELECT title From books ORDER BY author_fname;
내림차순으로 바꾸기 : DESC
SELECT title From books ORDER BY author_fname DESC;
같은 열을 기준으로 정렬을 하려고 할 때 더 간결하게 코드 쓰는 방법
SELECT author_lname, title
FROM books ORDER BY 2;
두개의 다른 열로 정렬 하기
- 별로 안쓰긴한다.
- 첫번째 인수를 기준으로 정렬하고, 같은 우선순위가 있을 때 두번째 인수를 기준으로 정렬한다.
SELECT author_fname, author_lname FROM books
ORDER BY author_lname, author_fname;
몇개 값을 조회? : Limit
- 테이블에서 몇개의 결과값을 조회할지 특정할 수 있는 연산자
- 세개만 보여준다.
SELECT title FROM books LIMIT 3;
- 활용
SELECT title, released_year FROM books ORDER BY released_year DESC LIMIT 5;
시작지점과, 마지막지점을 고를 수 있다.
→ 두개의 인자가 필요 (start , end)
- 처음 시작지점은 0 (문자열다룰때와 차이가 있음)
- 첫번째 행부터 다섯번째 행까지 보여주는 코드
SELECT title, released_year FROM books
ORDER BY released_year DESC LIMIT 0,3;
n번부터 결과값 끝까지 모든 행을 조회
- end index를 가장 큰 숫 자로 ~
- 5행부터 끝까지 조회하는 코드
SELECT title FROM books LIMIT 5, 123219476457;
더 나은 검색 : LIKE
- 기본적으로 데이터 검색을 더 잘 할 수 있게 해준다.
- 예시
- 저자 이름이 David or Dav,,, Dave?
- 모든 해리포터 책을 검색하고 싶을때
- 코드
- author_fname에 da가 들어간 행들을 찾아준다.
SELECT title, author_fname FROM books WHERE author_fname LIKE '%da%'
%의 위치와 유무에 따라 결과값이 다르다
- % : 모든 str을 의미
SELECT title, author_fname FROM books WHERE author_fname LIKE 'da%'
언더바를 활용한 LIKE
- %와 다르게 _(언더바)는 char 한개를 의미한다.
- 예시
- 언더스코어 두개 : 두글자
- 두자리수의 재고 품목들이 나온다.
SELECT title ,stock_quantity FROM books WHERE stock_quantity LIKE '__';
퍼센트가 있거나, 언더바가 있는 책을 찾아야 할 경우는 ?
- \를 사용 (이스케이프 문자)
- 역슬래시 (엔터위에 있는거)
- 역슬래시 뒤에 언더바나 퍼센트를 쓴다.
- 코드
SELECT title FROM books WHERE title LIKE '%\\%%'
'Back-End > DataBase [ MySQL]' 카테고리의 다른 글
[MySql] 데이터 집계함수들_ COUNT, GROUP BY, Min, Max, SUM, AVG (0) | 2022.06.25 |
---|---|
[MySql] 문자열함수 _ CONCAT, SUBSTR, REPLACE, REVERSE, CHAR_LENGTH , UPPER, LOWER (0) | 2022.06.25 |
[MySql] CRUD명령 _Create, Read , Update, Delete (0) | 2022.06.21 |
[MySql] 테이블에 데이터 삽입하기 _ INSERT (0) | 2022.06.18 |
[MySql] 데이터베이스와 테이블 만들기 (0) | 2022.06.16 |
댓글