데이터 조작어 및 데이터 정의어란?
a. 데이터 조작어: Data Manipulation Language (DML)
- 데이터의 검색 및 수정 등을 위한 언어
- 예) INSERT, DELETE, UPDATE, SELECT
b. 데이터 정의어: Data Definition Language (DDL)
- 데이터의 구조와 그 정의와 관련된 언어
- 예) CREATE, DROP, ALTER
1. 데이터 삽입: INSERT
1) 열 이름과 함께 값 삽입
• 열 이름을 지정한 후, 값을 삽입하는 방법
INSERT INTO <테이블이름>(열이름1, 열이름2, 열이름3) VALUES(값1, 값2, 값3)
2) SQL 문장 결과를 삽입
INSERT INTO <테이블명1>(열이름1, 열이름2, 열이름3)
SELECT 열이름1, 열이름2, 열이름3 FROM <테이블명2> WHERE <조건절>;
• 다른 테이블의 데이터를 가져와서 입력 가능
• SELECT 문의 열의 갯수와 INSERT 할 테이블의 열의 갯수는 일치해야 함
3) AUTO_INCREMENT
• 테이블의 속성이 AUTO_INCREMENT로 지정되어있는 경우, INSERT에서는 해당 열이 없다고 생각하고 입력
• AUTO_INCREMENT는 자동으로 1부터 증가하는 값을 입력해줌
• AUTO_INCREMENT로 지정할 때는 반드시 PRIMARY KEY 혹은 UNIQUE로 지정해줘야 함
• AUTO_INCREMENT로 지정한 열의 데이터 형은 숫자 형식만 사용 가능함
EX)
CREATE TABLE test12
( id int AUTO_INCREMENT PRIMARY KEY,
username char(3),
age int
)
※ AUTO_INCREMENT의 입력값을 변경시킬 경우: ALTER TABLE test12 AUTO_INCREMENT=100;
※ AUTO_INCREMENT의 증가값을 변경시키는 경우: SET @@auto_increment_increment=<증가값>;
2. 데이터의 수정: UPDATE
1) 기존에 입력되어있는 값을 변경
UPDATE <테이블 이름>
SET 열1 = 값1, 열2 = 값2, ...
WHERE 조건 ;
※ 만일 WHERE 절을 빼먹은 경우, 전체 행이 변경될 수 있으므로 주의
3. 데이터 삭제: DELETE
1) 테이블의 모든 행 삭제
DELETE FROM <테이블명>;
2) 테이블의 부분 행 삭제
DELETE FROM <테이블명> WHERE <조건절>;
4. 테이블 생성 (CREATE) 및 삭제 (DROP)
1) 일반적으로 테이블을 생성하는 방법
CREATE TABLE <생성할 테이블>
(
열이름1 데이터 형식 (크기) PRIMARY KEY,
열이름2 데이터 형식 (크기) 성질들(NOT NULL, DEFAULT etc...),
...
);
※제약 조건
제약조건 | 설명 |
PRIMARY KEY | • 기본키 • 테이블에 존재하는 많은 행의 데이터 중 하나의 데이터를 유일하게 식별할 수 있는 식별자 • 기본키는 중복될 수 없으며, NULL 값이 입력될 수 없음 • 기본키는 각 테이블 별로 하나만 존재해야 하지만, 필요에 따라 두 개 혹은 그 이상의 열을 합쳐서 하나의 기본키로 설정할 수 있음 • Ex) 회원 아이디, 학번 |
FOREIGN KEY | • 외래키 • 두 테이블 간의 관계를 선언함으로써 데이터의 무결성을 보장해주는 역활을 함 • 외래키를 설정하면, 하나의 테이블이 다른 테이블에 의존하게 됨 • 외래키 테이블에 데이터를 입력할 경우에는 반드시 기존 참조 테이블에 해당 데이터가 존재해야 함 • CONSTRAINT FOREIGN KEY(<외래키 열>) REFERENCES <참조 테이블>(<COLUMN>) • 외래키 옵션: ON UPDATE CASCADE/ ON DELETE CASCADE - 참조 테이블의 데이터가 변경되었을 시, 외래키 테이블이 자동으로 값이 변경되도록 설정할지 여부를 결정함 |
UNIQUE | • 중복되지 않는 유일한 값을 입력해야 함 • PRIMARY KEY와 유사하지만 NULL값을 허용함 Ex) 사용자의 E-mail 주소 |
CHECK | • 입력되는 데이터를 점검하는 기능을 함 • CHECK 제약조건을 설정한 후에는 제약 조건에 위배되는 값은 입력이 안됨 |
2) 하위 쿼리에 의해 검색된 테이블과 동일한 구조로 테이블 생성
• CREATE TABLE ... SELECT 구문은 테이블을 복사해서 사용할 경우에 주로 사용됨
• Primary Key, Foreign Key 등의 제약 조건은 복사되지 않는다.
CREATE TABLE <생성할 테이블> AS
SELECT <열이름1>, <열이름2> FROM <복사할 테이블>;
3) 테이블 삭제
DROP TABLE <삭제할 테이블 명>;
4) 테이블이름 변경
RENAME <변경전 테이블이름> TO <변경 후 테이블이름>;
'프로그래밍 언어 > SQL - MySQL' 카테고리의 다른 글
[MySQL] SELECT - 조인 (join) (0) | 2021.08.01 |
---|---|
[MySQL] 함수, 조건문, 데이터 그룹화 (0) | 2021.08.01 |
[MySQL] SELECT 문 - where 절 (0) | 2021.06.26 |
[MYSQL] 우분투에 Employees 샘플 데이터 베이스 설치하기 (0) | 2021.06.25 |
[MySQL] MySQL과 관련된 기본적인 명령어들 (0) | 2021.06.12 |
댓글