zerobase 사용 (이동)
USE zerobase;
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)
);
DESC celeb;
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 정렬
SELECT 문에서 데이터를특정컬럼을 기준으로 오름차순 혹은 내림차순 정렬하여 조회
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 테이블에서 이름, 생년월일, 성별, 소속자데이터를소속사순으로정렬하여조회하세요.
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순으로 출력됨