Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 alter를 사용하여 열을 추가하는 방법은 무엇입니까?

<시간/>

다음은 MySQL에서 alter를 사용하여 열을 추가하는 구문입니다.

alter table yourTableName add column yourColumnName yourDataType default yourValue;

먼저 테이블을 생성해 보겠습니다.

mysql> create table alterTableDemo
   -> (
   -> Id int,
   -> Name varchar(10)
   -> );
Query OK, 0 rows affected (0.69 sec)

DESC 명령어를 이용하여 테이블의 설명을 확인해보자. 테이블의 Field, Type, Key 등을 표시합니다.

mysql> desc alterTableDemo;

그러면 다음과 같은 출력이 생성됩니다.

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Id    | int(11)     | YES  |     | NULL    |       |
| Name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

이제 기본값이 18인 Age 열을 추가합니다. 사용자가 Age 열에 값을 제공하지 않으면 MySQL은 Age 열에 기본값을 사용합니다. 다음은 alter 명령을 사용하여 열을 추가하는 쿼리입니다.

mysql> alter table alterTableDemo add column Age int default 18;
Query OK, 0 rows affected (0.67 sec)
Records: 0 Duplicates: 0 Warnings: 0

테이블 설명을 다시 한 번 확인해 보겠습니다.

mysql> desc alterTableDemo;

그러면 다음과 같은 출력이 생성됩니다.

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Id    | int(11)     | YES  |     | NULL    |       |
| Name  | varchar(10) | YES  |     | NULL    |       |
| Age   | int(11)     | YES  |     | 18      |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

insert 명령어를 사용하여 테이블에 레코드를 삽입해보자.

다음은 쿼리입니다.

mysql> insert into alterTableDemo(Id,Name,Age) values(100,'Chris',24);
Query OK, 1 row affected (0.16 sec)

mysql> insert into alterTableDemo(Id,Name) values(101,'Robert');
Query OK, 1 row affected (0.25 sec)

다음은 select 문을 사용하여 테이블의 모든 레코드를 표시하는 쿼리입니다.

mysql> select *from alterTableDemo;

다음은 출력입니다. 'Robert'에 대한 연령을 설정하지 않았으므로 기본 18이 연령에 대해 설정됩니다.

+------+--------+------+
| Id   | Name   | Age  |
+------+--------+------+
| 100  | Chris  | 24   |
| 101  | Robert | 18   |
+------+--------+------+
2 rows in set (0.00 sec)