테이블
- 데이터를 행과 열로 스키마(테이블의 형태)에 따라 저장할 수 있는 구조
create table 테이블명(
컬럼명 데이터타입 제약조건,
컬럼명2 데이터타입 제약조건,
컬럼명3 데이터타입 제약조건,
...)
데이터 타입
- 정수형
int : -21억부터 +21억까지의 수를 표현
bigint : 21억이 넘어가는 수를 표현
- 실수형
float : 소수점 6자리까지 표현
double : 부동 소수점
decimal : 고정 소수점
- 문자형
char : 고정 길이 문자형, 지정한 크기보다 짧은 글자가 들어와도 무조건 크기만큼 메모리 사용
varchar : 가변 길이 문자형, 입력된 글자의 길이에 맞춰 공간을 조절해줌 (최대 65535byte 까지)
text : 길이를 예측할 수 없는 긴 글
binary / varbinary : 글자 이외의 것들을 저장할 때 사용 (binary는 고정 / varbinary 는 가변)
- 날짜형
date : 연, 월, 일만 저장
time : 시, 분, 초만 저장
datetime / timestamp : 연, 월, 일, 시, 분, 초 모두 저장 (timestamp는 컴퓨터가 계산할 수 있도록 저장한다.)
제약조건
- 데이터의 무결성을 지키기 위해 데이터를 입력받을 때 실행되는 검사 규칙
- not null : Null 값을 허용하지 않음
- unique : 중복값을 허용하지 않음. Null값은 허용
- default : Null 값을 삽입할 때 기본이 되는 값을 설정
- primary key
- Null값을 허용하지 않는다
- 중복값을 허용하지 않음
- 인덱싱 설정
- 기본키로 설정. 참조(외래)키와 쌍으로 연결
- foreign key : 기본키와 쌍으로 연결
- auto-innocent : 데이터를 직접 삽입하지 못함, 자동 증가되는 숫자를 말한다.
데이터베이스 생성하기
create database ai;
데이터베이스 선택하기
use ai;
DDL
DDL (Data Definition Language, 데이터 정의어)
1. create : 데이터베이스, 테이블, 뷰 등을 생성
create table member(
idx int auto_increment primary key,
userid varchar(20) unique not null,
userpw varchar(20) not null,
name varchar(20) not null,
hp varchar(20) not null,
email varchar(50) not null,
ssn1 char(6) not null,
ssn2 char(7) not null,
zipcode varchar(5),
address1 varchar(100),
address2 varchar(100),
address3 varchar(100),
regdate datetime default now(),
point int default 1000
);
-- 테이블 확인하기
desc member;

2. alter : 기존 객체(테이블 등)의 구조를 변경
-- 컬럼 삭제하기
alter table member drop point;

-- 컬럼 추가하기
alter table member add point int default 1000;

-- 컬럼 수정하기
alter table member modify column point int default 100;

3. drop : 객체(데이터베이스, 테이블, 뷰, 인덱스 등)를 완전히 삭제
-- 테이블 삭제하기
drop table member;
4. truncate : 테이블의 모든 데이터를 삭제하지만, 구조는 남김(롤백 불가)
'BACK-END' 카테고리의 다른 글
| [MySQL] 뷰 (view) (0) | 2026.06.09 |
|---|---|
| [MySQL] MySQL 함수 (0) | 2026.06.09 |
| [MySQL] 서브쿼리 (Sub Query) (1) | 2026.06.09 |
| [MySQL] 정규화 (0) | 2026.06.06 |
| [MySQL] DML (0) | 2026.06.05 |