본문 바로가기
MySQL

MySQL 구문 [ 생성, 제약 조건, 수정, 삭제 ]

by KDW999 2023. 1. 19.

MySQL Syntax

ㅡ MySQL에선 작업 명령을 SQL구문을 사용하여 처리한다.

ㅡ QUIT와 같은 몇 몇의 경우를 제외하곤 자바처럼 뒤에 세미콜론이(;) 붙는다.

ㅡ MySQL에선 키워드 입력 시 대소문자 구분을 하지 않는다. → SELECT * FROM, select * from 같은 결과를 도출

* 키워드만 대소문자를 구분하지 않을 뿐 테이블 명, 필드 명은 구분한다.

 

주석

#  →  한 줄 주석

--  →  한줄 주석   * 하이픈 주석은 뒤에 한 칸의 공백이 필요하다.

/* */ → 여러 줄 주석

 

MySQL 주요 구문

▶데이터베이스 생성

CREATE DATABASE 데이터베이스 명;
CREATE DATABASE BLOG;

* 데이터베이스 목록은 SHOW DATABASES로 확인할 수 있다.

 

▶ 데이터베이스 선택

생성된 데이터베이스를 사용하기 위해선 먼저 어떤 데이터베이스를 쓸건 지 정해줘야한다. USE를 통해 선택 가능

 

USE 데이터베이스 이름;
USE BLOG;

* MySQL 킬 때 마다, 쓰려는 DB를 항상 USE로 실행시키자

* 데이터베이스 = DB

▶ 테이블 생성 

DB는 하나 이상의 테이블이 있으며, 테이블에서 데이터를 관리한다. / 자바에서 클래스 같은 느낌

테이블 생성 시엔 테이블 내에 필드도 명시해야한다. / 필드는 자바의 멤버 변수 

 

CREATE TABLE 테이블 이름 (
 필드 명, 필드 타입, 제약 조건,
 필드 명, 필드 타입, 제약 조건  # 마지막 필드는 쉼표(,) 빼야한다.
)

CREATE TABLE BlogData(
  boardNum INT Auto_INCREMENT PRIMARY KEY
);

*쿼리 : DB 등에서 원하는 정보를 검색하기 위해 요청하는 것

 

▶ 제약 조건(constraint)

데이터의 무결성을 위해 데이터 입력 시 실행되는 검사 규칙

테이블 생성이나 ALTER로 필드 추가할 때도 설정 가능

 

1. NOT NULL : 해당 필드는 NULL값을 저장할 수 없다.

2. UNIQUE : 해당 필드는 서로 다른 값을 가진다.

3. PRIMARY KEY : 해당 필드가 NOT NULL과 UNIQUE 제약 조건의 특징을 모두 가진다.

4. FOREIGN KEY : 하나의 테이블을 다른 테이블에 의존하게 한다.

5. DEFAULT : 해당 필드의 기본 값 설정

* AUTO_INCREMENT 키워드는 해당 필드의 값을 1부터 시작해 새로운 레코드(행)가 추가될 때 마다 1씩 값을 증가시켜준다. / 키워드 뒤에 =를 사용하면 시작값을 1이 아니라 다른 값으로 시작할 수 도 있다. 

 

▶ 데이터베이스 / 테이블 수정(필드 추가, 삭제, 타입 변경)

MySQL에선 ALTER를 사용하여 DB와 테이블 내용 수정 가능

ALTER DATABASE / ALTER TABLE

 

DB 수정

ALTER DATABASE 데이터베이스 이름 CHARACTER SET=문자집합 이름
ALTER DATABASE 데이터베이스 이름 COLLATE=콜레이션 이름

*콜레이션(collation) : DB에서 검색, 정렬과 같은 작업할 때 비교를 위한 규칙의 집합

 

테이블 수정

1. ADD : 필드 추가

2. DROP : 필드 삭제

3. MODIFY COLUMN 필드 타입 변경

 

추가

ALTER TABLE 테이블이름 ADD 필드이름 필드타입 제약조건;
ALTER TABLE BlogData ADD boardCategory VARCHAR(30) NOT NULL;

BlogData 테이블에 길이가 30인 문자열 boardCategory를 추가

 

삭제

ALTER TABLE 테이블이름 DROP 필드이름;
ALTER TABLE BlogData DROP boardCategory;

 

타입 변경

ALTER TABLE 테이블이름 MODIFY COLUMN 필드이름 필드타입;
ALTER TABLE BlogData MODIFY COLUMN boardCategory INT;

 

  데이터베이스 / 테이블 삭제

MySQL에선 DROP문으로 DB와 테이블을 삭제할 수 있다. 

 

DB 삭제

DROP DATABASE 데이터베이스 명;
DROP DATABASE BLOG;

* DB를 삭제하면 DB내에 있던 테이블과 모든 데이터가 사라진다.

 

★테이블 삭제 → 3가지 방법이 존재

1. DROP : 테이블의 존재 자체를 삭제

2. TRUNCATE : 테이블만 존재하고 그 외 인덱스나 데이터 다 삭제 / 테이블 생성 초기의 상태

3. DELETE FROM : 테이블 내에 있는 레코드만 삭제 / 해당 테이블의 인덱스 경우엔 남아있음

 

DROP TABLE 테이블 명;
TRUNCATE TABLE 테이블 명;
DELETE FROM 테이블 명;

* DELETE FROM을 사용할 땐 Edit -> preference -> sql editor에서 맨 밑에 체크 풀어주고 다시 껐다 켜야됨

댓글