-- db 생성
create database shop;

-- db 선택
use shop;

-- 테이블 생성
create table student
(
     id char(10) primary key not null, -- 학번 (8자리 고정문자, 기본키)
    name varchar(10) not null, -- 이름 (10자리 가변문자)
    dept varchar(20) not null -- 학과 (2자리 가변문자)
);

-- 테이블 삭제
drop table student;

-- 데이터 입력
insert into student(id, name, dept) values('2014071023', '최규식', '스마트산업');
insert into student(id, name, dept) values('2014072008', '박태수', '스마트산업');
insert into student(id, name, dept) values('2014071020', '정상혁', '스마트산업');

-- 데이터 검색
select * from student;

-- 데이터 삭제
delete from student where id='2014071023'; -- 기본키인 id로만 삭제가 가능하며 다른 키로 삭제하려면 별도 설정해줘야 한다.

-- 데이터 수정
update student set dept='임베디드공학' where id='2014071023';
update student set dept='스마트산업' where id='2014071023';


-- ----------------------------------------------------------------------------------------

-- 주문 테이블 생성
create table orders
(
     id char(10)  not null references student(id), -- student 테이블의 id(학번) 참조
    goods varchar(20) not null, -- 상품명 (20자리 가변문자)
    ea int not null, -- 상품개수 (정수)
    totalPrice int not null -- 총금액 (정수)
);

-- 데이터 입력
insert into orders values('2014071023', '노트', 10, 10000);

-- 데이터 검색
select * from orders;

-- 조인 검색, 학생의 이름, 학생의 학과, 상품명, 상품개수, 총금액
select s.name, s.dept, o.id, o.goods, o.ea, o.totalPrice
from student s, orders o
where s.id = o.id; 
-- (=) select student.name, student.dept, orders.id, orders.goods, orders.ea, orders.totalPrice
-- from student, orders
-- where student.id = orders.id;

-- 표준 SQL 문법에 따른 조인문 (ANSI-SQL)
select s.name, s.dept, o.id, o.goods, o.ea, o.totalPrice
from student s inner join orders o
on s.id = o.id; 

-- 정렬 (이름을 가나다 순으로)
select * from student order by name; -- 오름차순 (디폴트값 : asc)
select * from student order by name desc; -- 내림차순