MariaDB Table 생성

2021. 5. 25. 14:55RDBMS

Table 생성은 DB생성과는 다르게 매우 명령어가 복잡? 하고 틀리면 매우 씅질이 나기 때문에

차근차근 곱씹으며 진행해 보도록 한다.

 

비록 실무에서는 Table을 직접 생성할 일이 많지 않다고는 하나 CRUD중 C에 해당하는 항목이니

진행해보자!

 

1. Table 생성 

 

CREATE TABLE <<테이블이름>>

(

    <<Column name1>> <<DataType1>>,

    <<Column name2>> <<DataType2>>,

    ...

)

기본 형을 따라서 작성을 하게 된다. 

 

 (1) Column name = 생성하고 싶은 컬럼의 이름을 입력한다. 

 (2) DataType (중요) 

   기본적으로 자주 사용하는 몇가지 데이터 타입만을 언급하여 작성하고 나머지는 

   Cheat Sheet나 MySQL 공식 문서를 찾아보기를 권한다. 

 

데이터 유형 정의
INT 정수형 데이터 저장
 값의 범위는 -2147483648 ~ 2147483647
BIGINT 정수형 데이터 저장
값의 범위는 -9223372036854775808 ~ 9223372036854775807
일반적으로 정수형 int로 해결하지 못하는 큰 수를 저장할때 씀
VAR 고정 길이를 갖는 문자열을 저장. 
M은 1 ~ 255(2^8 - 1). 
CHAR(20)인 컬럼에 10자만 저장을 하더라도, 20자 만큼의 기억장소를 차지.
VARCHAR 가변 길이를 갖는 문자열을 저장. 
M은 1 ~ 65535(2^16 - 1). 
VARCHAR(20)인 컬럼에 10자만 저장을 하면, 실제로도 10자 만큼의 기억장소를 차지.
TEXT 최대 65535(2^16 - 1)byte
DATETIME YYYY-MM-DD HH:MM:SS('1001-01-01 00:00:00' ~ '9999-12-31 23:59:59')
TIMESTAMP 1970-01-01 ~ 2037년 임의 시간(1970-01-01 00:00:00 를 0으로 해서 1초단위로 표기)

2. 제약조건 지정 

 

테이블에 컬럼을 지정할때 각 컬럼마다 조건을 다르게 할 수 있다. 예를들어 id값을 저장하는 컬럼의 경우는 

데이터가 건수가 계속 늘어날때마다 값을 자동으로 +1 시켜주는 기능이라던가 혹은 유저가 데이터를 입력하지 않았을 경우 값을 비울건지 아니면 값을 다시 넣으라고 에러를 줄건지에 대한 기능 등등 여러가지 기능을 추가하는데 사용한다.

 

그중 역시 기본적인 기능에 대한 설명을 하고 추가적으로 필요한 기능에 대해서는 공식문서를 참고하길 바란다. 

 

CREATE TABLE 문에서 사용할 수 있는 제약 조건

 

 1. NOT NULL : 해당 필드는 NULL 값을 저장할 수 없음

 2. UNIQUE : 해당 필드는 서로 다른 값을 가지도록 함

 3. PRIMARY KEY : 이 테이블의 대표 컬럼으로 not null과 unique의 기능을 모두 포함

 4. FOREIGN KEY : 하나의 테이블을 다른 테이블에 의존하게 만듬

 5. DEFAULT : 해당 필드의 기본값 설정

 

3. 예제

 

CREATE TABLE test_table(  

    id INT(11) NOT NULL AUTO_INCREMENT,

    title varchar(100) NOT NULL,

    description TEXT NULL,

    created DATETIME NOT NULL,

    author VARCHAR(30) NULL,

    profile VARCHAR(100) NULL,

    PRIMARY KEY(id)

);

 

4. 결과 

 

'RDBMS' 카테고리의 다른 글

MariaDB Data Update 하기  (0) 2021.05.25
mariaDB 데이터 INSERT하기  (0) 2021.05.25
MariaDB Database (schema) 삭제  (0) 2021.05.25
MariaDB Database (schema) 생성  (0) 2021.05.25
MariaDB / VS code 연결  (0) 2021.05.25