ORDER BY OO차순 정렬

Jane의 study note.·2022년 12월 2일
0

MySQL

목록 보기
5/17

실습환경 만들기

  1. 실습할데이터베이스로이동
zerobase 사용 (이동)
USE zerobase;
  1. 실습할테이블정보 p4
celeb 테이블구경하기 (자세한내용은기초이후에)
  1. 실습할celeb테이블생성: 연예인 정보가 들어감
CREATE TABLE celeb
(
    ID int NOT NULL AUTO_INCREMENT PRIMARY KEY,      # ID : null값을 허용하지 않음, 기본 키, extra: auto_increment(입력시 id를 빠뜨렸을 때 자동으로 1씩 증가시켜주겠다는 뜻)
    NAME varchar(32) NOT NULL DEFAULT ' ',	        # NAME: null값을 허용하지 않음, 디폴트는 null이 아닌 공백(데이터타입:문자)
    BIRTHDAY date, 	   	#데이터타입은 date로 지정
    AGE int,
    SEX char(1),  		#1글자 문자지정
    JOB_TITLE varchar(32),	#긴 문자열로 지정
    AGENCY varchar(32)
);

과제

CREATE TABLE coffee_brand
(
    ID int NOT NULL AUTO_INCREMENT PRIMARY KEY,  
    NAME varchar(32)
);

CREATE TABLE coffee_store
(
    ID int NOT NULL AUTO_INCREMENT PRIMARY KEY,  
    brand int 외부키로 지정,
    NAME varchar(32),
    gu_name char(5),
    address varchar(128),
    lat decimal(16,14),
    lng decimal(17,14)
);
  1. 실습할테이블정보확인
DESC celeb;
  1. 실습할 데이터 추가
INSERT INTO celeb VALUES (1, '아이유', '1993-05-16', 29, 'F', '가수, 탤런트', 'EDAM엔터테이먼트'); 
INSERT INTO celeb VALUES (2, '이미주', '1994-09-23', 28, 'F', '가수', '울림엔터테이먼트');
INSERT INTO celeb VALUES (3, '송강', '1994-04-23', 28, 'M', '탤런트', '나무엑터스');
INSERT INTO celeb VALUES (4, '강동원', '1981-01-18', 41, 'M', '영화배우, 탤런트','YG엔터테이먼트');
INSERT INTO celeb VALUES (5, '유재석', '1972-08-14', 50, 'M', 'MC, 개그맨', '안테나');
INSERT INTO celeb VALUES (6, '차승원', '1970-06-07', 48, 'M', '영화배우, 모델', 'YG엔터테이먼트');
INSERT INTO celeb VALUES (7, '이수현', '1999-05-04', 23, 'F', '가수', 'YG엔터테이먼트');

실습할데이터확인

select * from celeb;

ORDER BY

  1. ORDER BY 정렬
    SELECT 문에서 데이터를특정컬럼을 기준으로 오름차순 혹은 내림차순 정렬하여 조회

  2. ORDER BY 문법
    ASC(Ascending): 오름차순으로정렬
    DESC(Descending): 내림차순으로정렬

SELECT column1, column2, ...
FROM tablename
ORDER BY column1, column2, ... ASC | DESC;

celeb 테이블에서 이름과 나이를 나이순으로 조회
SELECT age, name
FROM celeb
ORDER BY age ASC;

celeb 테이블에서 이름과 나이를 나이의 역순(내림차순)으로 조회
SELECT age, name
FROM celeb
ORDER BY age DESC;

celeb 테이블에서이름과나이를나이와이름순으로정렬하여조회 (ASC 를생략해도기본은오름차순정렬)
=> 1번 나이순, 2번 이름순 정렬: 이 경우 나이가 같다면 이름오름차순으로 정렬됨
SELECT age, name
FROM celeb
ORDER BY age, name; => 옵션이 없으니 오름차순 정렬됨
=> 나이가 같은 송강과 이미주는 '이름 오름차순'에 따라 송강 먼저, 이미주 뒤에 나옴

celeb 테이블에서 이름과 나이를 나이의 역순으로 정렬한뒤 이름순으로 정렬하여 조회
=> 나이는 내림차순, 이름은 오름차순 정렬
SELECT age, name
FROM celeb
ORDER BY age DESC, name ASC;
=> 이 역시 나이가 같은 송강과 이미주는 '이름 오름차순'에 따라 송강 먼저, 이미주 뒤에 나옴

  • celeb 테이블에서이름, 생년월일, 성별, 소속자데이터를소속사순으로정렬하여조회하세요.
  • celeb 테이블에서전체컬럼을소속사, 이름순으로정렬하여조회하세요.
  • celeb 테이블에서이름, 나이, 직업, 소속사데이터를소속사순, 나이역순으로정렬하여조회하세요.

- celeb 테이블에서 이름, 생년월일, 성별, 소속자데이터를소속사순으로정렬하여조회하세요.

select name, birthday, sex, agency from celeb order by agency asc;
=> EDAM~YG, 나무엑터스~울림 순: 문자 오름차순 시 영문먼저, 한글나중

- celeb 테이블에서 전체컬럼을소속사, 이름순으로정렬하여조회하세요.
select * from celeb order by agency, name;
=> yg의 3명이 이름 오름차순으로 정렬: 강동원, 이수현, 차승원 순 출력

- celeb 테이블에서 이름, 나이, 직업, 소속사데이터를소속사순, 나이역순으로정렬하여조회하세요.
select name, age, job_title, agency from celeb order by agency, age DESC;
=> 소속사가 오름차순인 상태에서 나이는 역순으로, yg에서 차승원48,강동원41,이수현23순으로 출력됨

0개의 댓글