DML
Data Manipulation Language
INSERT
새 행 추가 구문
테이블의 행 수가 증가됨
INSERT INTO table_name VALUES(v1, v2, ...)
: 테이블에 컬럼 순번대로 값 전달 필요
INSERT INTO table_name(c1, c2, .. ) VALUES(v1, v2, ... )
: 지정 컬럼 순번대로 값 전달 필요
미지정 컬럼에 Default 값 설정시 Default 값 삽입
아닐 경우 NULL
UPDATE
테이블에 기록된 기존 컬럼값을 수정하는 구문
테이블 행 수는 변화 x
UPDATE table_name
SET c1 = v1,
c2 = v2,
...
[WHERE condition];
DELETE
테이블에 기록된 기존 컬럼값을 삭제하는 구문
DELETE
FROM table_name
WHERE condition;
DDL
Data Definition Language
데이터 정의어, 데이터베이스 내의 객체(테이블, 뷰 등)을 생성, 수정, 삭제하는데에 필요한 객체
information_schema: MySQL의 메타정보(테이블, 컬럼, 인덱스, 제약조건 등) 을 제공하는 시스템
SELECT
table_schema
, table_name
, create_time
, update_time
, table_comment
FROM
information_schema.TABLES -- 테이블 구조 조회
information_schema.COLUMNS -- 테이블 컬럼 정보 조회
WHERE
table_schema = 'menudb';
CREATE
객체 생성을 위한 구문
CREATE TABLE [IF NOT EXISTS] table_name(
-- IF NOT EXISTS 설정시 기존 존재 테이블이어도 에러 미발생
c1 data_type,
...
)
명명규칙
- 소문자 이용 권장
- 숫자 사용 지양
- 각 단어를 밑줄로 연결, snake_case 방식 사용
- 테이블명은 테이블임을 알리는 prefix나 suffix값 사용 권장(ex. tbl_, _tbl)
- PK 컬럼명은 id 또는 테이블명_id 형식으로 작성 권장
- 지나친 줄임말 지양
주요 데이터 타입
문자형
CHAR(SIZE)
: 고정형 문자타입 지정 사이즈보다 짧을 경우 나머지 공란, 최대 255byteVARCHAR(SIZE)
: 가변형 문자타입 지정 사이즈보다 짧을 경우 실제 입력 데이터 길이만큼 저장공간 사용, 최대 65536byte숫자형
날짜형
DATE
날짜 형식만 사용, 1001-01-01 ~ 9999-12-31YYYY-MM-DD 형식
TIME
시간 형식만 사용, -898:59:59.000000 ~ 838:59:59.000000HH-MM-SS.SSSSSS 형식
DATETIME
날짜+시간저장 범위 : 1001-01-01 00:00:00 ~ 9999-12-31 23:59:00
정의문 마지막 ENGINE = INNODB
구문을 통해 엔진 지정
COMMENT
테이블 코멘트 변경 : ALTER 테이블명 COMMENT = ‘설명’;
컬럼 정보 조회
SHOW FULL COLUMNS FROM table_name
NOT NULL 제약조건
특정 컬럼에 반드시 값이 존재해야 되는 경우 해당 컬럼에 부여하는 제약조건, NULL을 미허용하는것
COLUMN-LEVEL 방식으로만 적용 가능.
제약조건 위배를 통한 오류 발생시 ⇒ ‘제약조건명’ 출력
제약조건명을 직접 지어주지 않을 경우 MySQL에서 임의로 부여
⇒ 오류 내용으로 어떤 컬럼에 문제가 발생했는지 파악이 어려움
제약조건명
제약조건 부여시 지어주는 이름
제약조건명은 중복 불가
CONSTRAINT 제약조건명 제약조건
'TIL' 카테고리의 다른 글
TIL 3/17 - VIEW, INDEX, 실행 계획, FUNCTION, PROCEDURE, AWS EC2(보안그룹, 인스턴스 실행) (0) | 2025.03.17 |
---|---|
TIL 3/14 - 제약조건,No SQL, AWS EC2 (0) | 2025.03.14 |
TIL 3/12 - 서브쿼리 (0) | 2025.03.12 |
TIL 3/11 - 그룹함수, GROUPING, JOIN (0) | 2025.03.11 |
TIL 3/10 - DB(2) SELECT, 빌트인함수 (0) | 2025.03.10 |