[얄코] Section 3-2. 데이터 조작하기 (테이블 만들고 데이터 입력하기)

2023. 4. 19. 10:43Database/갖고노는 MySQL 데이터베이스

1. 테이블 생성/수정/삭제

CREATE TABLE - 테이블 만들기

 
CREATE TABLE people (
  person_id INT,
  person_name VARCHAR(10),
  age TINYINT,
  birthday DATE
);

ALTER TABLE - 테이블 변경

-- 테이블명 변경
ALTER TABLE people RENAME TO  friends,
-- 컬럼 자료형 변경
CHANGE COLUMN person_id person_id TINYINT,
-- 컬럼명 변경
CHANGE COLUMN person_name person_nickname VARCHAR(10), 
-- 컬럼 삭제
DROP COLUMN birthday,
-- 컬럼 추가
ADD COLUMN is_married TINYINT AFTER age;

DROP TABLE - 테이블 삭제

DROP TABLE friends;
 

2. INSERT INTO - 데이터 삽입

 
INSERT INTO people
  (person_id, person_name, age, birthday)
  VALUES (1, '홍길동', 21, '2000-01-31');

-- 모든 컬럼에 값 넣을 때는 컬럼명들 생략 가능
INSERT INTO people
  VALUES (2, '전우치', 18, '2003-05-12');

-- 일부 컬럼에만 값 넣기 가능 (NOT NULL은 생략 불가)
INSERT INTO people
  (person_id, person_name, birthday)
  VALUES (3, '임꺽정', '1995-11-04');

-- 자료형에 맞지 않는 값은 오류 발생
INSERT INTO people
  (person_id, person_name, age, birthday)
  VALUES (1, '임꺽정', '스물여섯', '1995-11-04');

-- 여러 행을 한 번에 입력 가능
INSERT INTO people
  (person_id, person_name, age, birthday)
  VALUES 
    (4, '존 스미스', 30, '1991-03-01'),
    (5, '루피 D. 몽키', 15, '2006-12-07'),
    (6, '황비홍', 24, '1997-10-30');

 

3. 테이블 생성시 제약 넣기

CREATE TABLE people (
  person_id INT AUTO_INCREMENT PRIMARY KEY,
  person_name VARCHAR(10) NOT NULL,
  nickname VARCHAR(10) UNIQUE NOT NULL,
  age TINYINT UNSIGNED,
  is_married TINYINT DEFAULT 0
);
위와 같이 테이블에 Alter Table을 클릭하면 제약을 체크박스로 상세하게 설정할수있다.
 
 
제약
설명
AUTO_INCREMENT 새 행 생성시마다 자동으로 1씩 증가
PRIMARY KEY 중복 입력 불가, NULL(빈 값) 불가
UNIQUE 중복 입력 불가
NOT NULL NULL(빈 값) 입력 불가
UNSIGNED (숫자일시) 양수만 가능
DEFAULT 값 입력이 없을 시 기본값

 

💡 PRIMARY KEY (기본키)

  • 테이블마다 하나만 가능
  • 기본적으로 인덱스 생성 (기본키 행 기준으로 빠른 검색 가능)
  • 보통 AUTO_INCREMENT와 함께 사용
  • ⭐ 각 행을 고유하게 식별 가능 - 테이블마다 하나씩 둘 것
INSERT INTO people 
  (person_name, nickname, age)
  VALUES ('김철수', '아이언워터', 10);

person_id는 AUTO_INCREMENT와 같은 제약 덕분에 자동으로 채워짐을 볼 수 있고,

is_married는 default 값으로 0으로 채워진 것을 확인할 수 있다.

INSERT INTO people 
  (person_name, nickname, age)
  VALUES ('이불가', '임파서블', -2);

age값을 범위 안에 있지않은 수를 입력해서 ERROR!

INSERT INTO people 
  (person_name, nickname, age, is_married)
  VALUES ('박쇳물', '아이언워터', NULL, 1);
  -- nickname에 NULL, '아이언수' 넣어보기

nickname은 UNIQUE한 값을 넣어야하는데, 기존에 있던 값을 넣어서 ERROR!

 

출처 : https://www.yalco.kr/@sql/3-2/

 

테이블 만들고 데이터 입력하기

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr