테이블 명령어
우선 데이터베이스 생성, 삭제, 선택 명령문 먼저 알아볼게요.
데이터베이스 생성 명령문
create database 데이터베이스명;
데이터베이스 삭제 명령문
drop database 데이터베이스명;
데이터베이스 선택
use 데이터베이스명;
이번엔 테이블 명령어를 보자
테이블이란 앞서 했듯이 표와 같이 행과 열로 구분이 되어있다.
예를 들어 학생들의 정보을 DB화 한다고 하면
필드로 이름, 전공, 학번, 주소, 휴대폰번호 등으로 채울것이고
레코드로 홍길동 전자공학 0883433 010-111-111 등으로 채우게된다.
테이블을 만들기 위해서는 테이블을 만들기 전 데이터베이스를 생성해주고 그 데이터베이스를 선택한후 create table로 만들면 된다.
앞서 설명했듯이 int등의 타입도 설정을 해주어야 한다.
타입을 설정할때 char로 설정을 한다고 하면 char(10)이라고 설정했을때
char값에 5바이트의 문자를 입력했다면 나머지 5byte는 공백처리된다. 만약 10byte를 넘어가는 문자를 입력한다면 10byte부터는 잘리게 된다.
varchar은 가변폭 문자열이다. char도 varchar도 255자까지 입력가능하다.
varchar(10)로 설정을 하고 5개의 문자를 입력한다면 왼쪽부터 문자가 채워지고 공백이 생기지 않는다. 그것이 char과 다른점이다.
메모리를 효율적으로 사용할수 있는것이다. 속도가 느리다는 장점이 있다고 하지만 얼마 차이 안날것으로 예상된다.
char보다는 varchar을 많이 사용한다.
문자열 데이터형의 길이
데이터형 | 최대 길이 | 저장 크기 |
char | 255 | 입력한 숫자 byte |
varchar | 255 | (입력한 숫자+1)byte |
tinylob, tinytext | 255 | (입력한 숫자+1)byte |
blob, text | 65535 | (입력한 숫자+2)byte |
mediumblob, mediumtext | 16777215 | (입력한 숫자+3)byte |
longblob, longtext | 4294967295 | (입력한 숫자+4)byte |
enum(문자열1, 문자열2) | 1 또는 2byte |
숫자형
숫자형 데이터를 사용할 때는 일반적으로 정수이면 int or integer를 사용하며 실수라면 double를 사용한다.
숫자가 큰 정수의 경우 unsignet int or bigint를 사용한다.
데이터형 |
최대 길이 |
저장 크기 |
TINYINT |
-128 ~ 127 |
1byte |
smallint |
-32768 ~ 32767 |
2byte |
mediumint |
-8388608 ~ 5388607 |
3byte |
int |
-2147493648 ~ 2147483647 |
4byte |
integer |
-2147493648 ~ 2147483647 |
4byte |
bigint |
-9223372036854775858 ~ 9223372036854775807 |
4byte |
float |
-3.402823466E+38 ~ -1.175494351E-38, 0 , 1.175494351E-38 ~ 3.402823466E+38 |
8byte |
double |
-1.7976931348623157E+308 ~ -2.2250738585072014E-308,0, 2.2250738585072014E-308 ~ -1.7976931348623157E+308 |
8byte |
이런거 외우지 마시고 그냥 이렇구나 라고 넘기시는게 정신건강이나 시간 절약상 좋아요... 그냥 필요하면 그때 그때 보는게 좋아요. 혹시 프로그래밍 처음공부하셔서 난 완벽하게 다 외울꺼야 라고 하시는분 계실까봐 드리는 말씀이에요 저도 처음 프로그래밍 공부할때 저런거 다 하나하나 외울라고 몇일 걸리고 지금생각하면 미친시간낭비에요...
절대 비추입니다.
데이터형 |
표시범위 |
형식 |
저장크기 |
date |
1000-01-01 ~ 9999-12-31 |
YYYY-MM-DD |
3byte |
datetime |
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 |
YYYY-MM-DD HH:MM:SS |
8byte |
timestamp |
1970-01-01 00:00:00 ~ 2037-12-31 23:59:59 |
YYYYMMDD HHMMSS |
4byte |
time |
-838:59:59 ~ 838:59:59 |
HH:MM:SS |
3byte |
year |
1901~2155 |
|
1byte |