유니크 키워드 distinct
함수와는 다르다
함수 사용법은 ( ) 가 있어 파라미터를 적지만
괄호가 없다
사용법은 아래와 같다
select author_lname
from books;
라고했을때
이렇게 중복된 데이터들이 나오게 되는데
중복된 데이터들을 유니크하게 보고 싶을때
select distinct author_lname
from books;
이렇게 앞에 적어준다
그러면 이렇게 중복데이터들은 하나씩만 보여준다
정렬 키워드 order by
이런 모습으로 있다고 할 때
author_lname로 정렬을 하고자 한다면
select *
from books
order by author_lname;
이렇게 정렬을 해주게 된다
그렇다면 응용으로
full_name으로 정렬해보자
select *
from books
order by concat( author_fname, ' ' , author_lname ) as 'full_name';
라고 생각 할 수 있다
하지만
이렇게 하면 문법 오류가 나온다
왜일지 생각해보면 간단하다
select에 order by하는 부분이 없기 때문이다
그렇기때문에 다시
select *, concat( author_fname, ' ' , author_lname ) as 'full_name'
from books
order by full_name;
라고 적어서 order by는 위에서
새로운 컬럼의 이름으로 지정한 풀_네임을 입력하면 되겠다
정렬의 기본값은 오름차순이다
그렇다면 내림차순의 경우와
정렬을 2개 이상할때는 어떻게 해야할까
내림차순은 DESC 오름차순은 ASC
우선적으로 내림차순은 desc고 오름차순은 asc인걸 알고 가자
그리고
select *, concat( author_fname, ' ' , author_lname ) as 'full_name'
from books
order by full_name desc;
라고 입력하게 되면
앞선 풀 네임을 내림차순으로 보여주기 때문에
이와 같은 화면이 나오고
2개 이상 정렬시
author_fname 으로 오름차순정렬,
pages는 내림차순으로 정렬
라는 것을 보고 싶다면
select *
from books
order by author_fname asc, pages desc;
하나만 정렬 할때는 생략했던 오름차순이지만
fname의 오름차순정렬이
우선적이기때문에
먼저 오름차순을 적어준뒤에
pages의 내림차순을 적어준다
'MYSQL' 카테고리의 다른 글
MYSQL - 원하는 조건을 '찾는' like, 중첩 and,둘 중 하나True or, 제외 not (0) | 2024.05.14 |
---|---|
MYSQL - 데이터를 끊어 보여주는 Paging- limit, offset (1) | 2024.05.14 |
MYSQL - 문자열의 순서를 역순으로 reverse( ), 문자열의 갯수 char_length( ) (0) | 2024.05.13 |
MYSQL - 문자열의 내용을 바꾸는 함수 replace( ), 대/소문자 upper( ),lower( ) (0) | 2024.05.13 |
MYSQL - 문자열의 일부를 가져오는 substring( ) (0) | 2024.05.13 |