- [ MySQL ] - 데이터 입력

민짜이·2025년 2월 3일

데이터베이스

목록 보기
3/11

INSERT

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);

위 코드를 실행한 뒤 테이블을 조회하면 다음과 같은 결과가 나옵니다.

NULL, NOT NULL

DESC명령어를 통해 테이블의 정보를 확인할 수 있습니다.

DESC dogs;

위 코드의 결과는 다음과 같습니다.

위 사진을 보면 NULL 컬럼에 YES로 되어 있는 것을 확인할 수 있습니다. 이 뜻은 값을 설정할 때 NULL값이 허용된다는 뜻입니다. 즉 INSERT 문을 실행할 때 값을 지정하지 않는다면 NULL로 저장됩니다.

INSERT INTO dogs()
VALUES ()

위 코드를 실행한 뒤 테이블을 조회하면 다음과 같은 결과가 나옵니다.

위 사진을 보시면 7번 행에 nameage가 NULL로 설정되어 있는 것을 확인할 수 있습니다.

여기서 NULL값을 허용하지 않을려면 NOT 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);

DEFAULT

dogsdogs2 테이블의 정보를 보면 Default에 NULL로 설정된 것을 확인할 수 있습니다. 이는 데이터 삽입시 아무런 정보가 없다면 기본적으로 설정될 값이 NULL로 설정된다는 것을 의미합니다. 만약 데이터 삽입시 특정 컬럼에 아무 값도 넣지 않았을 때 기본적으로 가지고 있는 값을 설정하기 위해선 Default를 사용하면 됩니다.

CREATE TABLE dogs3 (
	name VARCHAR(50) DEFAULT "강아지이름",
	age INT DEFAULT 1000
);

INSERT INTO dogs3()
VALUES ();

위 코드를 실행한 뒤 테이블을 조회하면 다음과 같습니다.

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

profile
꼬박꼬박

0개의 댓글