SQL SELECT, 정렬
Last updated
Last updated
지금부터 SQL 이라는 언어를 배워볼건데
데이터베이스에 데이터 입출력, 수정삭제, 데이터 가공과 조작 이런 것에 특화된 언어입니다.
그래서 SQL을 잘 작성하면 데이터 맘대로 1. 출력하고 2. 넣고 3. 지우고 4. 수정할 수 있습니다.
그래서 저거 4개 배우면 SQL 끝입니다.
뿐만 아니라 깊게 들어가면 프로그래밍 언어처럼 조건문, 반복, 변수만들기 등 많은걸 할 수 있습니다.
그건 지금 알 필요 없고 오늘은 가장 중요한 데이터 출력하는 법을 배워봅시다.
이 버튼으로 로우를 추가할 수 있고 위와 같은 데이터를 추가 해 봅시다.
이제 SQL을 한번 써보기 위해서 SQL 편집기를 열어 보겠습니다.
DBeaver에선 원하는 데이터베이스명에 우클릭하면 SQL 편집기를 오픈할 수 있습니다.
거기에 SQL을 작성하고 실행해보면 됩니다.
테이블명 입력 후 자동완성을 하게되면 위처럼 PRODUCT p 가 뜨게되고 뒤에 p는 별칭(Alias)로 나중에 배우게 될 것
데이터를 정직하게 출력만 하는 사람은 아무 쓸데가 없습니다.
그래서 오늘은 간단하게 정렬하는 법을 알아봅시다.
정렬하려면 ORDER BY 문법을 쓰면 됩니다.
ORDER BY 컬럼명 ASC 하면 그 컬럼명 기준 오름차순으로 정렬해줍니다.
오름차순은 ABCD, 1234 순임
ORDER BY 컬럼명 DESC 하면 그 컬럼명 기준 내림차순으로 정렬해줍니다.
내림차순은 DCBA, 4321 순임
(참고) ASC 키워드는 생략해도 기본 ASC 순으로 정렬해줍니다.
그래서 SELECT * FROM product ORDER BY 카테고리 ASC 해봤더니
카테고리 컬럼 기준으로 ASC 순으로 잘 정렬해주는군요.
근데 이 상태에서 같은 카테고리를 가진 데이터들을 '상품명 DESC 순'으로 정렬하고 싶으면 어떻게 할까요?
컬럼명1 순으로 정렬 후 그 다음 컬럼명2 순으로 정렬하고 싶으면
컬럼명1 ASC/DESC,
컬럼명2 ASC/DESC
....
계속 뒤에 추가하면 됩니다.
참고로 ORDER BY 컬럼명 대신 ORDER BY 몇번째컬럼 인지를 적어도 정렬해줍니다.
현재 테이블에서 카테고리 컬럼이 3번째기 때문에
ORDER BY 3 DESC 하면
ORDER BY 카테고리 DESC 한거랑 똑같습니다.
Q1. 현재 테이블의 상품명과 가격컬럼을 출력해보십시오.
Q2. 현재 테이블의 모든 컬럼을 출력하는데 가격낮은 순으로 정렬해봅시다.
Q3. 현재 테이블의 모든 컬럼을 출력하는데 가격낮은 순으로, 가격이 같으면 카테고리가 가나다순으로 뜨도록 정렬해봅시다.
✨ 실습. employee 라는 테이블을 만들고 컬럼 3개를 생성하고 데이터를 아래와같이 입력해보자.
Q4. 만든 직원테이블에서 모든 컬럼을 출력하는데 근무기간이 적은사람이 위로 와야하고,
근무기간이 같을 경우 이름을 가나다 순으로 정렬.