Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- function
- continue문
- 시스템 환경 변수 편집
- JAVA객체지향
- 포함관계
- 생성자
- While
- 메서드 오버로딩
- 집합관계
- 인텔리제이 한글 깨짐 해결법
- 자바 멀티스레딩
- this예약어
- break문
- 형 변환
- for문
- JAVA기초
- 메서드
- 인텔리제이 기초 설정
- IntelliJ IDEA
- multi-threading
- 연관관계
- 상수
- Java
- 컴파일
- 접근제어지시자
- Thread
- 반복문
- Java데이터 타입
- OPP개념
- java변수
Archives
- Today
- Total
최원종의 개발 블로그
INSERT 구문과 제약 조건 -7 본문
INSERT 기본 문법
-- 기본 형태
INSERT INTO 테이블명 (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...);
-- 여러 건 한 번에 (효율적)
INSERT INTO 테이블명 (컬럼1, 컬럼2) VALUES
(값1, 값2),
(값3, 값4),
(값5, 값6);
제약 조건 - 잘못된 데이터를 막는 규칙
NOT NULL - 반드시 값을 입력해야 함
CREATE TABLE member (
id INT PRIMARY KEY,
email VARCHAR(100) NOT NULL, -- NULL 불가, 반드시 입력
name VARCHAR(50) NOT NULL, -- NULL 불가
phone VARCHAR(20) -- NULL 허용 (선택 입력)
);
-- NOT NULL 컬럼에 값을 넣지 않으면 오류
INSERT INTO member (id, name) VALUES (1, '김철수');
-- → 오류: email 은 NOT NULL 이라 반드시 값이 있어야 함
-- 올바른 입력
INSERT INTO member (id, email, name)
VALUES (1, 'kim@test.com', '김철수');
DEFAULT - 값을 입력하지 않으면 기본값 자동 입력
CREATE TABLE member (
id INT PRIMARY KEY AUTO_INCREMENT,
email VARCHAR(100) NOT NULL,
name VARCHAR(50) NOT NULL,
grade VARCHAR(10) DEFAULT '일반', -- 기본값 '일반'
is_active BOOLEAN DEFAULT TRUE, -- 기본값 TRUE
created_at DATETIME DEFAULT CURRENT_TIMESTAMP -- 현재 시간 자동 입력
);
-- grade, is_active, created_at 생략 → 기본값 자동 적용
INSERT INTO member (email, name)
VALUES ('kim@test.com', '김철수');
SELECT * FROM member;
-- grade='일반', is_active=1, created_at=현재시간 으로 저장됨
AUTO_INCREMENT - 숫자 자동 증가
-- id 를 직접 넣지 않아도 자동으로 1, 2, 3... 증가
INSERT INTO member (email, name) VALUES
('hong@test.com', '홍길동'),
('lee@test.com', '이영희'),
('park@test.com', '박민준');
SELECT * FROM member;
-- id: 1, 2, 3 자동 부여
백틱(`) - SQL 예약어 충돌 방지
- 테이블명이나 컬럼명이 SQL 예약어와 같을 때 백틱으로 감싸줌
예약어 예시: order, select, from, where, group, by ...
CREATE TABLE order (...); -- 오류! order 는 예약어
CREATE TABLE `order` (...); -- 백틱으로 감싸면 OK
DATE 타입 값 입력
-- 방법 1: 문자열 형식 (권장)
INSERT INTO enrollment (enrollment_id, student_id, subject_id, score, enrolled_at)
VALUES (1, 1001, 101, 88.5, '2024-03-02');
-- 방법 2: 구분자 없는 문자열 형식
VALUES (2, 1001, 102, 92.0, '20240302');
-- 잘못된 날짜 → 오류 발생
VALUES (3, 1001, 103, 90.0, '20241325'); -- 13월은 없음 → 오류!
핵심 요약
NOT NULL : 반드시 값 입력 필요
DEFAULT : 입력 안 하면 기본값 자동 적용
AUTO_INCREMENT : 숫자 자동 1씩 증가 (PK 에 주로 사용)
백틱(`):
테이블명/컬럼명이 SQL 예약어면 백틱으로 감쌈
처음부터 예약어 피하는 게 더 좋음
DATE 입력:
'2024-03-02' 형식 권장
잘못된 날짜 입력 시 오류 발생'MySQL' 카테고리의 다른 글
| UPDATE 와 DELETE - 9 (0) | 2026.04.03 |
|---|---|
| SELECT 와 WHERE - 8 (0) | 2026.04.03 |
| MySQL 데이터 타입 - 6 (0) | 2026.04.02 |
| SQL - DDL, DML, DCL -5 (0) | 2026.04.02 |
| 데이터베이스 설계 시나리오 (0) | 2026.04.02 |
