데이터 테이블을 수정 MYSQL

디렉토리

데이터 테이블을 수정 MYSQL

1 테이블 이름을 수정

2 변형 데이터 타입 필드

3 필드 이름을 수정

4 추가 필드

4.1 필드에는 무결성 제약 조건을 추가하지

무결성 제약 조건의 4.2 추가 필드

4.3 테이블의 첫 번째 열의 필드 추가

테이블의 지정된 열 후 4.4 필드 추가

5 삭제 필드

필드 6 변형 배치 위치

6.1 테이블의 첫 번째 필드의 필드를 수정

6.2 목록 다음 지정된 필드를 수정합니다

테이블 기억 엔진 7 명 변경

표 8 삭제 외래 키 제약 조건


데이터 테이블을 수정 MYSQL

그것은 기존의 데이터 테이블을 수정하는 데이터베이스에 수정 된 테이블 구조를 의미한다. 테이블을 수정하려면 ALTER TABLE 문을 사용하여 MYSQL. 작업은 일반적으로 테이블을 수정하는 데 사용됩니다 추가 및 필드 삭제, 테이블 이름을 수정할 필드 이름 또는 데이터의 필드 유형을 수정, 필드의 배열 위치는 변경 테이블 스토리지 엔진을 수정 외래 키 테이블 제약 조건을 제거합니다.

1 테이블 이름을 수정

다음과 같이 MySQL이 ALTER TABLE 문의 테이블 이름을 수정하여 달성, 특정 구문 규칙은 다음과 같습니다

ALTER TABLE <旧表名> RENAME [TO] <新表名>;

제품에 사용 선택하지인지 어디 결과에 영향을 미친다.

[실시 예] : 데이터 테이블 tb_dept1 변경 tb_deptment1;

mysql> show tables;
+-------------------+
| Tables_in_test_db |
+-------------------+
| tb_dept1          |
| tb_emp1           |
| tb_emp5           |
+-------------------+
3 rows in set (0.00 sec)
​
mysql> alter table tb_dept1 rename tb_deptment1;
Query OK, 0 rows affected (0.22 sec)
​
mysql> show tables;
+-------------------+
| Tables_in_test_db |
+-------------------+
| tb_deptment1      |
| tb_emp1           |
| tb_emp5           |
+-------------------+
3 rows in set (0.00 sec)

2 변형 데이터 타입 필드

필드 데이터 형식을 수정, 데이터 유형 필드는 다른 데이터 형식으로 변환됩니다.

MySQL의에서 수정 구문 규칙 필드 유형의 데이터는 다음과 같습니다 :

ALTER TABLE <表名> MODIFY <字段名> <数据类型>

테이블 "테이블 이름"의 이름은 단순히 더 필드의 데이터 형식을 수정하려면 "필드의 이름이"수정 될 현장의 요구를 의미하는 경우, "데이터 유형은"수정 된 데이터 필드의 새로운 유형을 말한다.

[예]를 VARCHAR VARCHAR (22)에 의해 수정 데이터 테이블 tb_deptl 이름 필드 (30)에서의 데이터 유형.

테이블 이름을 수정하는 작업을 수행하기 전에 DESC의 tb_dept 테이블 구조, 다음과 같은 결과를 볼 수 :

mysql> desc tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(22) | NO   |     | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.06 sec)
​
mysql> alter table tb_dept1 modify name varchar(30);
Query OK, 0 rows affected (0.36 sec)
Records: 0  Duplicates: 0  Warnings: 0
​
mysql> desc tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(30) | YES  |     | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.89 sec)

3 필드 이름을 수정

다음과 같이 수정 MySQL의 테이블 필드 이름의 구문 규칙은 다음과 같습니다 :

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

유형 필드가 새로운 될 수있는 경우 "새로운 데이터 유형"은 수정 될 필요가 수정 된 데이터의 데이터 유형을 말한다있어서, "오래된 필드 이름"필드 이름을 변경하기 전에을 말한다 "새 필드의 이름이"수정 된 필드 이름을 참조 데이터 유형은 원래 동일 제공 될 수 있지만, 데이터 유형은 비어있을 수 없다.

다음 [예] tb_dept1의 LOC에 테이블 내의 위치 데이터 필드 명, 데이터 타입, SQL 문 변하지 :

ALTER TABLE tb_deptl CHANGE location loc VARCHAR(50);
mysql> desc tb_dept1;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | int(11)     | NO   | PRI | NULL    |       |
| name     | varchar(30) | YES  |     | NULL    |       |
| location | varchar(50) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
3 rows in set (0.04 sec)
​
mysql> alter table tb_dept1 change location loc varchar(50);
Query OK, 0 rows affected (0.38 sec)
Records: 0  Duplicates: 0  Warnings: 0
​
mysql> desc tb_dept1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | NO   | PRI | NULL    |       |
| name  | varchar(30) | YES  |     | NULL    |       |
| loc   | varchar(50) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.02 sec)

4 추가 필드

비즈니스 요구 변화에 따라, 당신은 테이블에 이미 존재하는 새로운 필드를 추가해야 할 수도 있습니다. 필드 이름, 데이터 유형, 무결성 제약 조건을 포함하여 전체 필드. 다음과 같이 추가 필드 구문은 다음과 같습니다

ALTER TABLE<表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER 已存在字段名];

우리는 필드의 이름라는 새로운 필드를 추가 할 필요가;

"FIRST"는 그 역할이 새롭게 테이블의 첫 번째 필드에 필드 세트를 추가, 선택 사항입니다;

"AFTER"선택 사항이며, 그 역할은 지정된 "기존의 필드 이름"의 뒷면에 추가 된 새로운 필드를 추가하는 것입니다.

4.1 필드에는 무결성 제약 조건을 추가하지

[예]를 INT 타입 필드 관리자 ID 데이터 테이블 tb_deptl의 무결성 제약 (관리 번호)없이 추가,

다음과 같이 SQL 문은 다음과 같습니다

mysql> alter table tb_dept1 add managerId int(10);
Query OK, 0 rows affected (0.35 sec)
Records: 0  Duplicates: 0  Warnings: 0
​
mysql> desc tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(30) | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0.50 sec)

무결성 제약 조건의 4.2 추가 필드

다음과 같이 예를 들면, 데이터 타입 필드의 columnI tb_deptl 테이블에 SQL 문을하지 않은 널 VARCHAR (12)를 추가

mysql> alter table tb_dept1 add column1 varchar(12) not null;
Query OK, 0 rows affected (0.25 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(30) | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
| column1   | varchar(12) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
5 rows in set (0.03 sec)

4.3 테이블의 첫 번째 열의 필드 추가

다음과 같이 데이터 테이블 tb_dept1의 2 열에서의 int 형 필드를 추가, SQL 문은 다음과 같습니다

mysql> alter table tb_dept1 add column2 int(11) first;
Query OK, 0 rows affected (1.44 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| column2   | int(11)     | YES  |     | NULL    |       |
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(30) | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
| column1   | varchar(12) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.64 sec)

테이블의 지정된 열 후 4.4 필드 추가

[예] 상기 데이터 테이블의 이름 열 tb_dept1 INT의 3 열 타입 필드를 추가 한 후, SQL 문장은 다음된다 :

mysql> alter table tb_dept1 add column3 int(11) after name;
Query OK, 0 rows affected (0.60 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| column2   | int(11)     | YES  |     | NULL    |       |
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(30) | YES  |     | NULL    |       |
| column3   | int(11)     | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
| column1   | varchar(12) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
7 rows in set (0.02 sec)

5 삭제 필드

구문은 다음과 같은 필드가 상기 테이블에서 제거되고 데이터 테이블의 필드 삭제

ALER TABLE <表名> DROP <字段名>

"필드 이름은"테이블 tb_dept1 테이블에서 필요의 2 열 필드를 참조

[실시 예 5] 삭제 필드 데이터 테이블 2 열 테이블 tb_dept1

mysql> alter table tb_dept1 drop column2;
Query OK, 0 rows affected (0.66 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(30) | YES  |     | NULL    |       |
| column3   | int(11)     | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
| column1   | varchar(12) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.32 sec)

필드 6 변형 배치 위치

데이터 테이블, 생성 시간에, 순서 테이블의 필드가 결정되고있다.

그러나이 구조는 테이블의 상대적 위치는 ALTER TABLE 통해 현장에서 변경 될 수 있고, 완전히 테이블이 변경 될 수 없다. 다음과 같은 구문은 다음과 같습니다

ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST|AFTER <字段2>;

"필드 1"필드에 단순히 더 많은 변형 사이트 "데이터 형식"이라 함은 "필드 1"데이터 형식

"우선"선택 사항은 "필드 1"은 테이블의 첫 번째 필드로 변경을 의미

"필드가 AFTER 2"이하 "필드 2"로 "필드 1"을 의미한다.

6.1 테이블의 첫 번째 필드의 필드를 수정

[예] 테이블의 첫 번째 필드 내의 필드 데이터 테이블 컬럼 1의 tb_dept1 수정, SQL 문으로서 다음과 같다 :

mysql> alter table tb_dept1 modify column1 varchar(12) first;
Query OK, 0 rows affected (1.11 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| column1   | varchar(12) | YES  |     | NULL    |       |
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(30) | YES  |     | NULL    |       |
| column3   | int(11)     | YES  |     | NULL    |       |
| loc       | varchar(50) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.18 sec)

6.2 목록 다음 지정된 필드를 수정합니다

[실시 예]는 필드 데이터 테이블 tb_dept1의 컬럼 1의 위치 필드 뒤에 삽입 SQL 문장은 다음이다 :

mysql> alter table tb_dept1 modify column1 varchar(12) after location;
Query OK, 0 rows affected (1.96 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc tb_dept1;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| id        | int(11)     | NO   | PRI | NULL    |       |
| name      | varchar(30) | YES  |     | NULL    |       |
| column3   | int(11)     | YES  |     | NULL    |       |
| location  | varchar(50) | YES  |     | NULL    |       |
| column1   | varchar(12) | YES  |     | NULL    |       |
| managerId | int(10)     | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
6 rows in set (0.02 sec)

테이블 기억 엔진 7 명 변경

MySQL의 스토리지 엔진 지원

엔진 이름 지원
FEDERATED 아니오
MRG의 MYISAM 그것은이다
MYISAM 그것은이다
블랙홀 그것은이다
CSV 그것은이다
기억 그것은이다
ARCHIVE 그것은이다
이노 그것은이다
성능 SCHEMA 디폴트 값

[예] 테이블 데이터 스토리지 엔진은 tb_emp1의 MyISAM 수정;

mysql> alter table tb_emp1 engine=MyISAM;
Query OK, 0 rows affected (0.18 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table tb_emp1\G;
*************************** 1. row ***************************
       Table: tb_emp1
Create Table: CREATE TABLE `tb_emp1` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(25) DEFAULT NULL,
  `deptId` int(11) DEFAULT NULL,
  `salary` float DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.01 sec)

ERROR:
No query specified

표 8 삭제 외래 키 제약 조건

외래 키는 데이터베이스에 정의 된 경우, 더 이상 필요하지, 당신은 그것을 삭제할 수 있습니다. 당신이 외부 키를 제거하면 기본 테이블을 들어 올려 관계에서 테이블 간의됩니다,

MySQL은 다음과 같이 외래 키 구문은 삭제합니다 :

ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>

"외래 키 제약 조건 이름은"다음 매개 변수 정의 테이블을 참조 할 때 키워드 CONSTRAINT

출시 다섯 개 원래 기사 · 원 찬양 4 · 조회수 252

추천

출처blog.csdn.net/sc_942344134/article/details/103977238