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

MySQL에서 varchar 필드의 크기를 확장하면 그 안의 데이터에 영향을 줍니까?

<시간/>

MySQL에서 varchar 필드의 크기를 확장하면 그 안의 데이터에는 영향을 미치지 않습니다.

먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable(
   Name varchar(8)
);
Query OK, 0 rows affected (1.11 sec)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable values('John');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.13 sec)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select *from DemoTable;

이것은 다음과 같은 출력을 생성합니다 -

+--------+
| Name   |
+--------+
| John   |
| Robert |
| Mike   |
| Sam    |
+--------+
4 rows in set (0.00 sec)

테이블에 대한 설명을 확인해보자 -

mysql> desc DemoTable;

이것은 다음과 같은 출력을 생성합니다 -

+-------+------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| Name  | varchar(8) | YES  |     | NULL    |       |
+-------+------------+------+-----+---------+-------+
1 row in set (0.04 sec)

이제 VARCHAR(8)에서 VARCHAR(100)으로 VARCHAR 크기를 확장해 보겠습니다. -

mysql> alter table DemoTable change Name Name varchar(100);
Query OK, 4 rows affected (1.96 sec)
Records: 4 Duplicates: 0 Warnings: 0

다시 한번 표의 설명을 확인해보자 -

mysql> desc DemoTable;

이것은 다음과 같은 출력을 생성합니다 -

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Name  | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
1 row in set (0.01 sec)

varchar의 크기를 확장한 후에는 그 안의 데이터는 영향을 받지 않지만 크기를 줄이면 문제가 발생할 수 있습니다.