데이터베이스

4. 데이터 입력_INSERT - 패스트캠퍼스 백엔드 부트캠프 3기

gkss2tpt 2025. 1. 17. 18:07

1. 데이터 입력 - INSERT

  • CREATE TABLE직후에는 아무런 행도 없는 상태
CREATE TABLE users(
    user_id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    birthdate DATE,
    registration_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

DESC users;
SELECT * FROM users;	// 조회 명령어
  • 데이터 추가하기 : INSERT
INSERT INTO 테이블이름 VALUES (값1, 값2, ...);

# 모든 열 지정
INSERT INTO users VALUES (1, 'user1', 'user1@example.com', '1985-03-22', '2025-01-17 16:46:00');

# 일부 열 지정 (나머지는 default / extra)
INSERT INTO users (username, email, birthdate) VALUES ('user2', 'user2@exampel.com', '1990-01-15');
INSERT INTO users (username, email) VALUES ('user3', 'user3@example.com');

# 명시적 DEFAULT 설정
INSERT INTO users (username, email, registration_date) VALUES ('user4', 'user4@example.com', DEFAULT);
  • NOT NULL인 제약이 걸린 열(username)에 데이터를 지정하지 않는다면? - 추가 실패
  • 외래키 참조 상황에서의 INSERT
CREATE TABLE categories(
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    PRIMARY KEY(id)
);

CREATE TABLE products(
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    category_id INT NOT NULL,
    PRIMARY KEY (id),
    FOREIGN KEY (category_id) REFERENCES categories (id)
);

-- 카테고리 추가
INSERT INTO categories (name) VALUES ('전자제품');
INSERT INTO categories (name) VALUES ('의류');
SELECT * FROM categories;

-- 제품 추가
INSERT INTO products (name, category_id) VALUES ('스마트폰', 1); -- 전자제품 카테고리
INSERT INTO products (name, category_id) VALUES ('노트북', 1); -- 전자제품 카테고리
INSERT INTO products (name, category_id) VALUES ('티셔츠', 2); -- 의류 카테고리
INSERT INTO products (name, category_id) VALUES ('청바지', 2); -- 의류 카테고리
SELECT * FROM products;