본문 바로가기
Database/MySQL

[Database / MySQL] - 기본 문법과 데이터 무결성 (Data Integrity)

by nam_ji 2024. 6. 12.

기본 문법과 데이터 무결성

MySQL 기본 문법

  • 키워드, 구문, 문자열의 대소문자를 구분하지 않습니다.
    (window의 경우 테이블명, 데이터베이스명도 대소문자를 구분하지 않습니다.)
  • 데이터베이스 == 스키마 (Database == schema)

Object 다루기

  • SHOW, DESC, USE
  • CREATE, DROP, ALTER (DDL 데이터 정의어)

조회 SHOW, DESC

-- 데이터베이스 목록 조회
SHOW DATABASES;

-- 현재 접속한 스키마의 테이블 목록 조회
SHOW TABLES;

-- 테이블 컬럼 조회
DESC 테이블;

선택 USE

-- 사용할 데이터베이스 선택, 접속
USE 데이터베이스;

생성 CREATE

-- 데이터베이스 생성
CREATE DATABASE 데이터베이스;
CREATE SCHEMA 스키마;

-- 테이블 생성
CREATE TABLE 테이블(컬럼1 타입1 제약조건, 컬럼2 타입2 제약조건);

-- 테이블 복제
CREATE TABLE 테이블 LIKE 테이블;

-- 테이블 복사(컬럼 선택)
CREATE TABLE 테이블 AS SELECT 컬럼 FROM 테이블;

삭제 DROP

DROP DATABASE 데이터베이스;
DROP TABLE 테이블;

수정 ALTER

1. 테이블, 컬럼 이름 변경 RENAME

-- 테이블 이름 변경
ALTER TABLE 기존테이블명 RENAME TO 변경테이블명;

-- 컬럼 이름 변경
ALTER TABLE 테이블 RENAME COLUMN 기존컬럼명 TO 변경컬럼명;

2. 컬럼, 키 추가 ADD

-- 컬럼 추가
ALTER TABLE 테이블 ADD 컬럼 타입 [제약조건] [AFTER 앞에 위치할 컬럼];

-- 키 추가
ALTER TABLE 테이블 ADD PRIMARY KEY(컬럼);

3. 컬럼 타입 변경 MODIFY, CHANGE

-- 컬럼 타입 변경
ALTER TABLE 테이블 MODIFY 컬럼 타입;

-- 컬럼 이름과 타입 변경
ALTER TABLE 테이블 CHANGE 기존컬럼명 변경컬럼명 타입;

4. 컬럼, 키 삭제 DROP

-- 컬럼 삭제
ALTER TABLE 테이블명 DROP 컬럼;

-- 키 삭제
ALTER TABLE 테이블명 DROP PRIMARY KEY;

Data 다루기 (DML 데이터 조작어)

  • INSERT, DELETE, SELECT, UPDATE

삽입 INSERT

-- 레코드 삽입
INSERT INTO 테이블(컬럼1, 컬럼2) values(값1, 값2);

삭제 DELETE

-- 조건에 해당하는 데이터 삭제
DELETE FROM 테이블 WHERE 컬럼 = 값

수정 UPDATE

-- 조건에 해당하는 데이터 수정
UPDATE 테이블 
SET 컬럼 = 변경값 
WHERE 컬럼 = 기존값

조회 SELECT

  • SELECT 컬럼 FROM 테이블

1. 조건절 WHERE

SELECT 컬럼
FROM 테이블
WHERE 검색조건;

 


2. 그룹화 GROUP BY + 그룹화 조건 HAVING

SELECT 컬럼
FROM 테이블
WHERE 검색조건
GROUP BY 컬럼
HAVING 그룹화조건;

3. 정렬 ORDER BY + 오름차순(ASC 생략가능) or 내림차순(DESC)

SELECT 컬럼
FROM 테이블
WHERE 조건
ORDER BY 컬럼 [ASC 또는 DESC];

4. 레코드 중복 제거 DISTINCT

SELECT DISTINCT 컬럼
FROM 테이블
WHERE 검색조건;

5. 조건문 CASE

SELECT 
CASE 컬럼
WHEN 비교값 THEN 반환값
WHEN 비교값 THEN 반환값
ELSE (WHEN 조건에 전부 부합하지 않으면) 반환값
END AS 가명
FROM 테이블;

데이터 무결성 Data Integrity

  • 데이터를 인가되지 않은 방법으로 변경할 수 없도록 보호하는 성질
    • 데이터 무결성을 위해 컬럼에 다음과 같은 제약 조건을 걸 수 있습니다.

1. 제약 조건 Constraints

키워드 NULL허용 중복 허용 특징
primary key (기본키) x x 테이블의 대표 컬럼 (하나만 설정 가능)
unique key (고유키) o x 테이블에 유일한 값으로 존재하도록 설정
foriegn key (외래키) o o 참조 테이블과 연결 목적으로, 참조 테이블에서는 기본키이며, 참조 테이블에 존재하는 값만 사용 가능
not null x o 필수 입력 사항
check o o 주어진 조건에 해당하는 값들만 사용 가능