나의 공부방/MySQL

[MySQL] 기본 쿼리문

jojaeguk 2023. 6. 27. 03:50

* 테이블 생성

CREATE TABLE people ( id INT, name VARCHAR(10), age TINYINT, birthday DATE );

 

* 테이블명 변경
ALTER TABLE people RENAME TO  people_test,


* 컬럼 자료형 변경
CHANGE COLUMN id id TINYINT,


* 컬럼명 변경
CHANGE COLUMN name name_test VARCHAR(10), 


* 컬럼 삭제
DROP COLUMN birthday,


* 컬럼 추가
ADD COLUMN married TINYINT AFTER age;

 

* 테이블 삭제

DROP TABLE people;

 

* 데이터 삽입

INSERT INTO people
  (id, name, age, birthday)
  VALUES 
    (1, '홍길동1', 20, '1990-03-01'),
    (2, '홍길동2', 30, '2000-12-07'),
    (3, '홍길동3', 40, '1990-10-30');

 

*** DELTE 전 필수사항

Preferences > SQL Editor > Safe Updates 항목 체크오프하고 다시 접속

 

* 테이블 부분 컬럼 삭제

DELETE FROM people WHERE name =  '홍길동1';

 

* 테이블 삭제

DELETE FROM people ;

 

* 테이블 초기화

TRUNCATE people ;

 

* 테이블 조건에 따른 수정

UPDATE people SET name = '20살 홍길동' WHERE age = 20;

UPDATE people SET name = '적당한나이' + name WHERE age= 30;

 

* 테이블 제약

CREATE TABLE people (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(10) UNIQUE NOT NULL,
  age TINYINT UNSIGNED,
  birthday TINYINT DEFAULT 0
);

 

* Table 제약 조건

AUTO_INCREMENT -- 행 생성시 자동으로 1씩 증가

PRIMARY KEY -- 중복 입력 불가, NULL 입력 불가

UNIQUE -- 중복 입력 불가(PRIMARY KEY와는 NULL이 입력이 가능하다는 차이가 있다)

NOT NULL NULL -- 빈 값 입력 불가

UNSIGNED -- 양수만 가능

DEFAULT -- 값 입력이 없을 시 기본값

 

-- 기본키 넣는 방법 1
CREATE TABLE people (
  first_name CHAR(2) PRIMARY KEY,
  last_name CHAR(3),
  nickname VARCHAR(10)
);

 

-- 기본키 넣는 방법 2
CREATE TABLE people (
  first_name CHAR(2),
  last_name CHAR(3),
  nickname VARCHAR(10),
  PRIMARY KEY (first_name)
);

기본 키 변경하기

ALTER TABLE people DROP PRIMARY KEY;

ALTER TABLE people ADD PRIMARY KEY (last_name);

 

다중 기본키

CREATE TABLE people (
  first_name CHAR(2),
  last_name CHAR(3),
  nickname VARCHAR(10),
  PRIMARY KEY (first_name, last_name)
);

 

-- 고유키 넣는 방법 1
CREATE TABLE people (
  person_id INT AUTO_INCREMENT PRIMARY KEY,
  first_name CHAR(2) UNIQUE,
  last_name CHAR(3)
);

 

-- 고유키 넣는 방법 2
CREATE TABLE people (
  person_id INT AUTO_INCREMENT PRIMARY KEY,
  first_name CHAR(2),
  last_name CHAR(3),
  UNIQUE (first_name)
);

 

-- 다중 고유키
CREATE TABLE people (
  person_id INT AUTO_INCREMENT PRIMARY KEY,
  first_name CHAR(2),
  last_name CHAR(3),
  UNIQUE (first_name, last_name)
);

외래 키 추가하기

ALTER TABLE _자식테이블명
  ADD CONSTRAINT _제약명 
  FOREIGN KEY ( _자식테이블외래키 )
  REFERENCES 부모테이블명 ( _부모테이블기본키 )
  -- ON DELETE _삭제시제약 
  -- ON UPDATE _수정시제약 

 

외래 키 삭제하기

ALTER TABLE _자식테이블명 DROP FOREIGN KEY _자식테이블외래키

 

외래 키 제약

NO ACTION, RESTRICT - 자식 테이블에 해당 외래키가 있을 때 수정/삭제되지 않음

CASCADE - 자식 테이블의 해당 행도 수정/삭제

SET NULL - 자식 테이블의 외래키를 NULL로 - 자식 외래키가 NOT NULL일 시 설정 불가

SET DEFAULT - 자식 테이블의 외래키를 기본값으로 - InnoDB 엔진에서 사용 불가

 

 

 

 

참고 :갖고노는 MySQL 데이터베이스 by 얄코 대시보드 - 인프런 | 강의 (inflearn.com)