MySQL에서 테이블을 생성하는 SQL 문법은 무엇인가요?
_____A1: 기본 문법은 다음과 같습니다.
```sql
CREATE TABLE 테이블명 (
컬럼1 데이터타입 [제약조건],
컬럼2 데이터타입 [제약조건],
...
[테이블 제약조건]
);
```
---
Q2: 컬럼의 데이터 타입에는 어떤 것들이 있나요?
A2: 자주 사용하는 데이터 타입 예시는 다음과 같습니다.
- 정수형: INT, TINYINT, SMALLINT, MEDIUMINT, BIGINT
- 문자열: VARCHAR(길이), CHAR(길이), TEXT
- 날짜/시간: DATE, DATETIME, TIMESTAMP, TIME, YEAR
- 기타: DECIMAL(정밀도), FLOAT, DOUBLE, BLOB 등
---
Q3: 컬럼 제약조건에는 어떤 것들이 사용되나요?
A3: 대표적인 제약조건은 다음과 같습니다.
- `NOT NULL`: NULL 값 허용 안 함
- `AUTO_INCREMENT`: 자동 증가 (주로 기본키와 함께 사용)
- `PRIMARY KEY`: 기본키 지정
- `UNIQUE`: 유일한 값만 허용
- `DEFAULT 값`: 기본값 설정
- `CHECK`: 값 제한 조건 (MySQL 8.0 이상에서 지원)
---
Q4: 예시로 간단한 테이블 생성 코드를 보여주세요.
A4: 예시 코드입니다.
```sql
CREATE TABLE members (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL,
reg_date DATETIME DEFAULT CURRENT_TIMESTAMP
);
```
---
Q5: 테이블 생성 시 문자 인코딩이나 저장 엔진을 지정할 수 있나요?
A5: 네, 가능합니다. 예를 들어 UTF-8 인코딩과 InnoDB 엔진을 지정하는 방법은 다음과 같습니다.
```sql
CREATE TABLE example (
col1 INT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
```
---
Q6: 테이블 생성 후 컬럼을 추가하거나 변경하는 방법은?
A6: 기존 테이블은 `ALTER TABLE` 문으로 수정합니다.
- 컬럼 추가:
```sql
ALTER TABLE 테이블명 ADD COLUMN 새컬럼명 데이터타입 [제약조건];
```
- 컬럼 변경:
```sql
ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 새로운데이터타입 [제약조건];
```
---
Q7: 테이블 생성 시 외래키 제약조건을 걸려면 어떻게 하나요?
A7: 외래키는 다음과 같이 지정합니다.
```sql
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES customers(id)
);
```
---
요약
- `CREATE TABLE` 뒤에 테이블명과 괄호 안에 컬럼 정의 및 제약조건을 작성
- 컬럼명, 데이터타입, NOT NULL, PRIMARY KEY, AUTO_INCREMENT 등을 조합하여 정의
- 필요시 테이블 옵션으로 저장 엔진, 문자셋 설정 가능
- 외래키, UNIQUE 등 다양한 제약조건을 함께 설정할 수 있음
작성자:
정재민 [비회원]
| 작성일자: 1년 전
2024-09-20 08:05:20
조회수: 192 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 192 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.