[DB, SQL] 테이블생성, Data 생성, 수정, 삭제

JUNHO YEOM·2022년 11월 9일
0

DB, SQL

목록 보기
8/21
post-thumbnail

테이블 생성/수정/삭제

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;

INSERT INTO - 데이터 삽입

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

일부 컬럼에만 값 넣기

INSERT INTO people
  (person_id, person_name, birthday)
  VALUES (3, '임꺽정', '1995-11-04');
  # age 컬럼의 값을 제외하고 데이터를 넣었다.
  # NOT NULL 옵션이 있으면 제외할 수 없다.

여러 행에 자료 넣기

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');
    # 한번에 2개이상의 행에 자료를 넣을 수 있다.

테이블에 제약조건 넣기

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
);
  • AUTO_INCREMENT: 새 행이 생성될 때 마다 값이 1씩 증가
  • PRIMARY KEY: 중복된 값 입력 불가, NULL 불가
  • NOT NULL: 빈값 입력 불가
  • UNIQUE: 중복된 값 입력 불가
  • UNSIGNED: (숫자일때) 양수만 입력 가능
  • DEFAULT: 값이 없을 경우 기본값

PRIMARY KEY

  • 테이블마다 한개의 컬럼에만 적용 가능
  • 기본적으로 인덱스 생성
  • 보통 AUTO_INCREMENT와 함께 사용
  • 고유한 값으로 data를 식별하는데 사용 가능

데이터 삭제하기

MYSQL workbench의 경우 Safe Updates 항목 허용해줘야 수정 및 삭제 가능

DELETE FROM businesses
WHERE status = 'CLS';
# status 행이 CLS인 자료 삭제

DELETE 주의 사항

DELETE FROM businesses;

다음과 같이 조건을 주지 않고 삭제 요청을 실행하면 모든 data가 삭제 되기 때문에 조심해야함.


TRUNCATE

테이블 초기화 하기

TRUNCATE businesses;

UPDATE

UPDATE menus # menus table을 업데이트 한다.
SET menu_name = '삼선짜장' # 수정할 내용
WHERE menu_id = 12; # 수정해줄 행

행의 1개 컬럼 수정하기

UPDATE menus
SET 
  menu_name = '열정떡볶이',
  kilocalories = 492.78,
  price = 5000
WHERE 
  fk_business_id = 4
  AND menu_name = '국물떡볶이';

행의 둘 이상의 컬럼 수정하기


UPDATE 주의 사항

UPDATE menus
SET menu_name = '획일화';

다음과 같이 조건을 주지 않고 수정 요청을 실행하면 모든 data가 해당 자료로 획일화 되어 수정 되기 때문에 조심해야함.

0개의 댓글