[MySQL] 기본 쿼리문
* 테이블 생성
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 엔진에서 사용 불가