요즘 목표 : 하는 일을 잊지 말고 끝까지 해내자 ( •̀ ω •́ )✧
- 하지만 시작 전 비상사태.. 비밀번호 잊어먹어서 다시 지웠다 깔았따... 역시 난 덜렁쟁이..... 껄... skrkrrrrrr
테이블을 만들 기 전 데이터 형식을 설정해야 한다.
데이터 형식은 숫자형, 문자형, 날짜형이 있다.
- 이런 형식이 존재하는 이유는 실제로 저장될 데이터의 형태가 다양하기 때문이다. 각 데이터에 맞는 데이터 형식을 지정함으로써 효율적으로 저장 할 수 있다.
ex) 내 이름 김호정을 데이터로 만든 후 내부적으로 100글자를 저장하는 것 (비효율), 5글자를 준비하는 것(적절함)
1. 데이터 형식
- mysql에서 제공하는 데이터 형식의 종류는 수십 개 정도이고, 각 데이터 형식마다 크기나 표현을 할 수 있는 숫자의 범위가 다름.
⁕ 정수형 : 소수점이 없는 숫자, 인원 수, 가격, 수량 등에 많이 사용 됨
TINYINT : 1byte
SMALLINT : 2byte
INT : 4byte
BIGINT : 8byte
[ 오류문 ]
Out of range => 입력값의 범위를 벗어났다
ex_ 정수형을 사용하는 예제
인원수 열은 int로 지정해서 -21억 ~ +21억까지 저장이 가능함. 하지만 가수 그룹의 인원이 이렇게 많을 필요는 없으니 최대 127명까지 지정 할 수 있는 TINYINT로 지정해도 충분함.
평균키 열은 SMALLINT로 지정해서 -32768 ~ 32767까지 저장이 가능함. 키 역시 3000cm가 넘을 리가 없으므로 TINYINT를 고려 할 수 있음. 하지만 TINYINT는 -128 ~ +127로 200cm가 넘는 사람이 있으므로 범위가 부족.
=> 이를 해결하기 위해 값의 범위가 0부터 시작하는 UNSIGNED 예약어를 사용 할 수 있음.
TINYINT와 TINYINT UNSIGNED 모두 1바이트 크기이다.
1바이트는 256개를 표현하므로 =128 ~ +127로 표현하거나, 0 ~ 255로 표현하거나 모두 256개를 표현하는 것이다.
결국 회원테이블을 바꾼 결과는
멤버 수 INT -> TINYINT
키 SMALLINT -> TINYINT UNSIGNED
⁕ 문자형
- 문자형은 글자를 저장하기 위해 사용, 입력할 최대 글자의 개수를 지정해야 함.
[ 대표적인 문자형 ]
CHAR(개수) - 1~255 바이트
VARCHAR (개수) - 1~16383 바이트
CHAR 은 문자를 의미하는 Character의 약자. 자릿수가 고정되어 있음. char(10)에 '가나다' 3글자만 저장해도 10자리를 모두 확보 한 후에 앞의 3자리를 사용하고 뒤의 7자리는 낭비하게 됨.
VARCHAR 은 가변길이 문자형으로 VARCHAR(10)에 '가나다' 3글자를 저장 할 경우 3자리만 사용하게 됨.
Varchar가 char보다 공간을 효율적으로 운영하지만 내부적으로 char로 설정하는 것이 좋음.
⁕ 실수형
- 소수점이 있는 숫자를 저장 할 때 사용
[ 데이터 형식 ]
Float - 4byte - 소주점 아래 7자리까지 표현
Double - 8byte - 소수점 아래 15자리까지 표현
float와 double은 거의 비슷. 과학 기술용 데이터가 아닌 이상 float면 충분함
시력은 float로 설정하는 것이 적합함.
⁕ 날짜형
- 날짜 및 시간을 저장 할 때 사용
[ 데이터 형식 ]
Date - 3byte - 날짜만 저장 - 2007-08-26 형식
Time - 3byte - 시간만 저장 - 01:38:00 형식
DATETIME - 8byte - 날짜 및 시간 저장 - 위 두개 합친 것
인터넷 마켓 데이터베이스의 데뷔 일자 : date
구매 테이블 구매한 기록 필요 ; DATETIME
- 날짜 또는 시간을 입력 할 때는 문자와 마찬가지로 작은 따옴표로 묶어줘야 함
⁕ 조인
- 두개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것
인터넷 마켓 데이터베이스의 회원 테이블과 구매 테이블이 예임.
⁕ 내부 조인
- 두 테이블을 연결 할 때 가장 많이 사용되는 것이 내부조인 ( 그냥 조인이라고 부르는 것이 내부조인 )
- 이것들은 일대다 관계로 연결 되어야 함.
⁕ 외부조인
- 내부 조인은 두 테이블에 모두 데이터가 있어야만 결과가 나오지만, 외부 조인은 한쪽에만 데이터가 있어도 결과가 나옴
⁕ 기타 조인
- 상호조인 : 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인 시키는 기능
- 자체 조이 : 자신이 자신과 조인 한다는 것
[ 숙제 ]
정답 : Where B.prod_name IS NULL