Education*
Devops
Architecture
F/B End
B.Chain
Basic
Others
CLOSE
Search For:
Search
BY TAGS
linux
HTTP
golang
flutter
java
fintech
개발환경
kubernetes
network
Docker
devops
database
tutorial
cli
분산시스템
www
블록체인
AWS
system admin
bigdata
보안
금융
msa
mysql
redis
Linux command
dns
javascript
CICD
VPC
FILESYSTEM
S3
NGINX
TCP/IP
ZOOKEEPER
NOSQL
IAC
CLOUD
TERRAFORM
logging
IT용어
Kafka
docker-compose
Dart
MySQL ALTER TABLE
Recommanded
Free
YOUTUBE Lecture:
<% selectedImage[1] %>
yundream
2023-03-14
2023-03-14
1801
## MySQL ALTER TABLE - COLUMN 편 MySQL **ALTER TABLE** 문은 기존 테이블의 구조를 수정하거나 변경하는데 사용한다. 새로운 컬럼(column)의 추가 또는 제거, 컬럼의 데이터 유형 변경, 이름 변경, 기본 키(primary key), [색인(index)](https://www.joinc.co.kr/w/mysql_index), 엔진유형과 같은 테이블 옵션을 수정 할 수 있다. 여기에서는 테이블의 **컬럼을 수정** 하는 방법을 살펴보겠다. 다룰 내용은 아래와 같다. * ADD COLUMN - 컬럼 추가 * MODIFY COLUMN - 컬럼 수정 * CHANGE COLUMN - 컬럼 수정(이름까지) * DROP COLUMN - 컬럼 삭제 * ADD PRIMARY - PRIMARY Key 설정 * DROP PRIMARY - PRIMARY Key 삭제 ## 문법 ```sql ALTER TABLE table_name ACTION [COLUMN column_name | CONSTRAINT constraint_name | etc.] ``` * table_name : 수정하려는 테이블의 이름이다. * ACTION : 수행하려는 행동 유형이다. ACTION 키워드 뒤에 수정하려는 컬럼 혹은 제약조건등이 들어갈 수 있다. ## Example Table 연습을 위해서 테스트용 테이블을 만들었다. ```sql CREATE TABLE User ( id int NOT NULL, name varchar(32) NOT NULL, email varchar(32) NOT NULL, address varchar(128) NOT NULL ) ``` ### ALTER TABLE ADD COLUMN - 컬럼 추가 테이블에 컬럼을 추가한다. 문법은 아래와 같다. ```sql ALTER TABLE table_name ADD column_name datatype; ``` User 테이블에 website url을 저장하기 위한 컬럼을 추가해보자. ```sql ALTER TABLE User ADD website VARCHAR(80); ``` ### ALTER TABLE MODIFY COLUMN - 컬럼 수정 이미 존재하는 컬럼을 데이터 타입을 변경한다. ```sql ALTER TABLE table_name MODIFY COLUMN column_name datatype; ``` website의 데이터 타입을 TEXT로 변경하기로 했다. ```sql ALTER TABLE User MODIFY COLUMN website TEXT; ``` ### ALTER TABLE CHANGE COLUMN - 컬럼 수정(이름까지) MODIFY COLUMN과 비슷하지만 이름까지 변경 할 수 있다. ```sql ALTER TABLE table_name CHANGE COLUMN original_name new_name column_definition; ``` website 컬럼의 이름을 **website_url** 로 하고 데이터타입을 varchar(160)으로 변경해보자. 그리고 **NOT NULL** 제약 조건도 함께 설정했다. ```sql ALTER TABLE User CHANGE website website_url VARCHAR(160) NOT NULL; ``` 테이블 스키마를 확인해보자. ```text mysql> desc User; +-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | id | int | NO | | NULL | | | name | varchar(32) | NO | | NULL | | | email | varchar(32) | NO | | NULL | | | address | varchar(128) | NO | | NULL | | | website_url | varchar(160) | NO | | NULL | | +-------------+--------------+------+-----+---------+-------+ ``` ### ALTER TABLE DROP COLUMN - 컬럼 삭제 테이블에서 컬럼을 삭제한다. 문법은 아래와 같다. ```sql ALTER TABLE table_name DROP COLUMN column_name; ``` 더 이상 사용하지 않는 website 컬럼을 삭제하기로 했다. ```sql ALTER TABLE User DROP website; ``` ### ALTER TABLE ADD PRIMARY - PRIMARY Key 설정 테이블에 Primary Key를 설정한다. ```sql ALTER TABLE table_name ADD PRIMARY KEY (ID, LastName, ...) ``` id 컬럼을 primary key로 설정해보자. ```sql ALTER TABLE User ADD PRIMARY KEY (id); ``` Primary key가 생성되면 인덱스가 만들어진다. show index 명령으로 인덱스 테이블 정보를 확인해보자. ```text show index from User \G *************************** 1. row *************************** Table: User Non_unique: 0 Key_name: PRIMARY Seq_in_index: 1 Column_name: id Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: Index_type: BTREE Comment: Index_comment: Visible: YES Expression: NULL ``` ### ALTER TABLE DROP PRIMARY KEY - PRIMARY Key 삭제 테이블의 Primary Key를 삭제한다. ```sql ALTER TABLE User DROP PRIMARY KEY; ``` id 컬럼의 primary key를 삭제해보자. Primary key는 테이블에 하나만 있기 때문에 컬럼이나 인덱스 이름등을 설정할 필요가 없다. ```sql ALTER TABLE User DROP PRIMARY KEY; ``` ## 참고 * MySQL의 다른 문서들은 [SQL Study With MySQL](https://www.joinc.co.kr/w/sql_study_with_mysql_index) 을 참고하자.
Recent Posts
Vertex Gemini 기반 AI 에이전트 개발 05. 첫 번째 LLM 애플리케이션 개발
LLama-3.2-Vision 테스트
Vertex Gemini 기반 AI 에이전트 개발 04. 프롬프트 엔지니어링
Vertex Gemini 기반 AI 에이전트 개발 03. Vertex AI Gemini 둘러보기
Vertex Gemini 기반 AI 에이전트 개발 02. 생성 AI에 대해서
Vertex Gemini 기반 AI 에이전트 개발 01. 소개
Vertex Gemini 기반 AI 에이전트 개발-소개
생성 AI 모델 Flux.1 설치 및 사용
GPT를 이용한 Reranker 테스트
5분만에 만들어보는 Streamlit 챗봇
Archive Posts
Tags
database
mysql
sql
SQL tutorial with MySQL
Copyrights © -
Joinc
, All Rights Reserved.
Inherited From -
Yundream
Rebranded By -
Joonphil
Recent Posts
Archive Posts
Tags