INSERT 은 행을 삽입하는 명령어입니다. 예시 코드는 다음과 같습니다.
INSERT INTO table_name(column_name, column_name)
VALUES (value_1, value_2)
예를 들어 다음과 같은 테이블을 생성합니다.
CREATE TABLE cats (
name VARCHAR(50),
age INt
);
위 dog 테이블에 INSERT 명령어를 사용하여 데이터에 값을 삽입합니다.
INSERT INTO cats(name, age)
VALUES ('야옹', 3);
위 INSERT 문의 컬럼 이름을 반대로 하여 입력할 수 있습니다.
INSERT INTO dogs(age, name)
VALUES (5, '감자');
컬럼 이름을 생략하여 INSERT 문을 사용할 수 있습니다. 대신 테이블을 생성할 때 나열한 속성 순으로 삽입합니다.
INSERT INTO dogs
VALUES ('치즈', 4);
INSERT 문을 통해 많은 데이터를 삽입 할 수 있습니다.
INSERT INTO dogs(name, age)
VALUES ('멍멍이1', 5),
('멍멍이2', 4),
('멍멍이3', 1);
위 코드를 실행한 뒤 테이블을 조회하면 다음과 같은 결과가 나옵니다.

DESC명령어를 통해 테이블의 정보를 확인할 수 있습니다.
DESC dogs;
위 코드의 결과는 다음과 같습니다.

위 사진을 보면 NULL 컬럼에 YES로 되어 있는 것을 확인할 수 있습니다. 이 뜻은 값을 설정할 때 NULL값이 허용된다는 뜻입니다. 즉 INSERT 문을 실행할 때 값을 지정하지 않는다면 NULL로 저장됩니다.
INSERT INTO dogs()
VALUES ()
위 코드를 실행한 뒤 테이블을 조회하면 다음과 같은 결과가 나옵니다.

위 사진을 보시면 7번 행에 name 과 age가 NULL로 설정되어 있는 것을 확인할 수 있습니다.
여기서 NULL값을 허용하지 않을려면 NOT NULL 제약 조건을 설정해야합니다.
제약 조건이란 데이터의 상태를 제약하는 조건을 말합니다. 즉 데이터를 삽입할 때 지켜야할 규칙입니다. 제약 조건을 설정한 새로운 테이블을 생성해보겠습니다.
CREATE TABLE dogs2(
name VARCHAR(50) NOT NULL,
age INT NOT NULL
);
위 테이블의 정보를 DESC명령어를 통해 확인하면 다음과 같습니다.

이렇게 데이터를 생성하면 데이터 삽입을 할 때 name 속성 값이 NULL로 설정하면 에러가 발생합니다.
INSERT INTO dogs2(age)
VALUES (20);
위 코드를 실행하면 다음과 같은 결과가 나옵니다.

따라서 dogs2 테이블에 데이터를 삽입하는 방법은 두 컬럼에 대한 값을 모두 입력해야 합니다.
INSERT INTO dogs2(name, age)
VALUES ('고구마',20);

dogs 와 dogs2 테이블의 정보를 보면 Default에 NULL로 설정된 것을 확인할 수 있습니다. 이는 데이터 삽입시 아무런 정보가 없다면 기본적으로 설정될 값이 NULL로 설정된다는 것을 의미합니다. 만약 데이터 삽입시 특정 컬럼에 아무 값도 넣지 않았을 때 기본적으로 가지고 있는 값을 설정하기 위해선 Default를 사용하면 됩니다.
CREATE TABLE dogs3 (
name VARCHAR(50) DEFAULT "강아지이름",
age INT DEFAULT 1000
);
INSERT INTO dogs3()
VALUES ();
위 코드를 실행한 뒤 테이블을 조회하면 다음과 같습니다.

INSERT 문에 아무 값도 설정하지 않았지만 테이블을 생성할 때 Default에 쓴 값이 설정된 것을 확인할 수 있습니다.