[문제]
다음 데이터를 music이라는 이름으로 만들어서 저장해보세요.
저장할 데이터는 음원사이트에서 사용할 데이터입니다.
-음원 고유번호 : A00135 와 같은 모양의 일련번호 데이터
-음원 제목
-아티스트
-조회수
-좋아요 수
-재생 수 : 처음에 만들지 말고 나중에 추가
-인기순위 : 처음에 만들지 말고 나중에 추가
+수업중 추가내용)date 발매일
[풀이]
음원고유번호의 형태 ->A00135는 문자열이다. 때문에 varchar2(6) 으로 한다.
음원 제목의 형태 -> 일반적으로 음원사이트에서 가장 긴 음원 제목을 찾아본다 varchar2(150) 대략 이정도
아티스트 -> 요즘은 피처링도 많고 해서 길기 때문에 찾아보고 varchar2(100) 대략 이정도
조회수 -> 보통 몇 십억 뷰도 나오기 때문에 10자리를 할 순있지만 언젠간 넘을 수 있기에 number(19)로 했다.
좋아요 수 -> 위와 같은 이유로 number(19)로 했다.
재생 수 -> 같은 이유이다. number(19)
인기순위 -> 인기순위는 보통 길어도 999 이상은 본적이 없는 것 같아 number(3) 세자리로 마무리했다.
+수업중 추가내용)발매일은 date만 해주면된다. 괄호 노필요
다음은 컬럼명을 한글에서 영어로 설정해준다.
차례대로 serial, title, artist, click, up, play, rank, +수업중 추가내용)release
+)당연히 조회수를 view로 설정할 수 있는데, 예약어 중 view가 있기 때문에 (create, alter 와 같이) 다른걸로 한다.
(like 도 있음)
create table music(serial varchar2(6), title vachar2(150), artist varchar2(90), click number(19), up number(19), play number(19), rank number(3)); 이 맞지만 재생 수와 인기순위는 나중에 추가하라고 하였기 때문에 빼고,
create table music(serial varchar2(6), title vachar2(150), artist varchar2(90), click number(19), up number(19));
alter table music add(play number(19), rank number(3)); 라고 해주면 된다.
+수업중 추가내용)alter table music add(release date);
입력해주면 Table altered. 라는 문구가 나오고, 자세히 테이블을 보려면 desc music;을 입력해주면 되는데
Name Null? Type
----------------------------------------- -------- ----------------------------
SERIAL VARCHAR2(6)
TITLE VARCHAR2(150)
ARTIST VARCHAR2(90)
CLICK NUMBER(19)
UP NUMBER(19)
PLAY NUMBER(19)
RANK NUMBER(3)
RELEASE DATE
이렇게 창에 표시된다.
[정답]
create table music(serial varchar2(6), title vachar2(150), artist varchar2(90), click number(19), up number(19));
입력 후
alter table music add(play number(19), rank number(3));
입력
+)
byte length calculator 라고 구글링하면 UTF-8 string length & byte counter 사이트가 있다.(mothereff.in)
들어가면 드래그해서 복사해서 창에 넣으면 바로 몇바이트인지 추출해준다.
+) varchar 외에 char라는 문자열이 있는데, char는 고정형태이다. 데이터베이스는 매우 크기때문에 성능이 중요한데, 처리속도를 빠르게하기 위해선 절대값 즉, 고정되어있는 ()내에 숫자가 있으면 더 빨리 처리할 수 있다고 한다.
때문에 위에 음원고유번호와 같이 확실한 값, 실생활로 예를 들면 날짜나 전화번호같은 경우엔 varchar말고 char로 해주는게 좋다.
char 고정문자열 : 언제나 같은 크기
varchar2 가변문자열 : 최대치만 정해져있고 최소치는 자유
number 외에 또 다른 것은 date이다. 이 4개로 모든 데이터를 다 저장한다고 기억하면 된다.
데이터 베이스는 사이트 하나 정해서 이 사이트의 정보를 저장하려면 db가 어떻게 생겼을까, 데이터를 어떻게 정리했을까를 고민해보며 추리하면 정말 좋은 연습법이 될 것이다.
'Database SQL > Oracle' 카테고리의 다른 글
[DB#10]Oracle SQL Developer 실행 (0) | 2020.11.17 |
---|---|
[DB#09]테이블 생성 실습문제2 (0) | 2020.11.17 |
[DB#08]테이블 제어 (0) | 2020.11.17 |
[DB#07]테이블 제어(Table CRUD) (0) | 2020.11.17 |
[DB#06]사용자 권한 (0) | 2020.11.17 |