做的时间长的网站制作公司哪家好,wordpress 小工具添加图片大小,网站上怎么做企业推广,wordpress图片站教程引言 一般在操作数据库的过程中对表的修改操作常常涉及, 如何处理/修改已存在大量数据的表通常是个老大难的问题 各种报错信息层出不穷, 担心误操作而导致数据丢失. 因此, 修改表结构, 看似简单实则处处细节 修改表结构 修改表结构大致有如下基本语法 1 -- 1. 修改表名2 AL… 引言 一般在操作数据库的过程中对表的修改操作常常涉及, 如何处理/修改已存在大量数据的表通常是个老大难的问题 各种报错信息层出不穷, 担心误操作而导致数据丢失. 因此, 修改表结构, 看似简单实则处处细节 修改表结构 修改表结构大致有如下基本语法 1 -- 1. 修改表名2 ALTER TABLE 表名 3 RENAME 新表名;4 5 -- 2. 增加字段6 ALTER TABLE 表名7 ADD 字段名 数据类型 [完整性约束条件…],8 ADD 字段名 数据类型 [完整性约束条件…];9
10 -- 3. 删除字段
11 ALTER TABLE 表名
12 DROP 字段名;
13
14 -- 4. 修改字段
15 ALTER TABLE 表名
16 MODIFY 字段名 数据类型 [完整性约束条件…];
17 ALTER TABLE 表名
18 CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
19 ALTER TABLE 表名
20 CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];
21
22 -- 5.修改字段排列顺序/在增加的时候指定字段位置
23 ALTER TABLE 表名
24 ADD 字段名 数据类型 [完整性约束条件…] FIRST;
25 ALTER TABLE 表名
26 ADD 字段名 数据类型 [完整性约束条件…] AFTER 字段名;
27 ALTER TABLE 表名
28 CHANGE 字段名 旧字段名 新字段名 新数据类型 [完整性约束条件…] FIRST;
29 ALTER TABLE 表名
30 MODIFY 字段名 数据类型 [完整性约束条件…] AFTER 字段名;
31 ALTER TABLE的语法 示例 1.利用ALTER TABLE处理NULL和UNIQUE约束 1 CREATE TABLE t(2 id INT UNIQUE, 3 name CHAR(10) NOT NULL4 );5 6 -- 去掉NULL约束7 ALTER TABLE t 8 MODIFY name CHAR(10) NULL;9
10 -- 添加NULL约束
11 ALTER TABLE t
12 MODIFY name CHAR(10) NOT NUll;
13
14 -- 去掉UNIQUE约束
15 ALTER TABLE t
16 DROP INDEX id;
17
18 -- 添加UNIQUE约束
19 ALTER TABLE t
20 MODIFY id INT UNIQUE; 利用ALTER TABLE处理NULL和UNIQUE约束 2.利用ALTER TABLE处理主键 1 CREATE TABLE t(2 id INT UNIQUE, 3 name CHAR(10) NOT NULL4 );5 6 -- 去掉NULL约束7 ALTER TABLE t 8 MODIFY name CHAR(10) NULL;9
10 -- 添加NULL约束
11 ALTER TABLE t
12 MODIFY name CHAR(10) NOT NUll;
13
14 -- 去掉UNIQUE约束
15 ALTER TABLE t
16 DROP INDEX id;
17
18 -- 添加UNIQUE约束
19 ALTER TABLE t
20 MODIFY id INT UNIQUE; 利用ALTER TABLE处理主键 3.利用ALTER TABLE为表添加外键 1 CREATE TABLE press(2 id INT(11) NOT NULL,3 name CHAR(10) DEFAULT NULL,4 PRIMARY KEY (id)5 );6 7 CREATE TABLE book(8 id INT(11) DEFAULT NULL,9 bk_name CHAR(12) DEFAULT NULL,
10 press_id INT(11) NOT NULL,
11 );
12
13 -- 为book表添加外键
14 ALTER TABLE book
15 ADD CONSTRAINT [foreign key name] FOREIGN KEY(press_id) REFERENCES press(id);
16
17 -- 删除外键
18 ALTER TABLE book
19 DROP FOREIGN KEY [foreign key name];
20
21 -- 注: [内容] 为可选填内容, 除保留字外, 符合语法规范均可 利用ALTER TABLE为表添加外键 其他示例 1.表重命名 1 DESC old_name;2 ---------------------------------------------------------3 | Field | Type | Null | Key | Default | Extra |4 ---------------------------------------------------------5 | id | int(11) | YES | | NULL | |6 | name | varchar(50) | YES | | NULL | |7 | age | int(3) | YES | | NULL | |8 | sex | enum(male,female) | YES | | NULL | |9 | phone | bigint(11) | YES | | NULL | |
10 | job | varchar(11) | YES | | NULL | |
11 ---------------------------------------------------------
12 rows in set (0.00 sec)
13
14 -- 表重命名
15 ALTER TABLE old_name RENAME new_name;
16 Query OK, 0 rows affected (0.00 sec)
17
18 DESC new_name;
19 ---------------------------------------------------------
20 | Field | Type | Null | Key | Default | Extra |
21 ---------------------------------------------------------
22 | id | int(11) | YES | | NULL | |
23 | name | varchar(50) | YES | | NULL | |
24 | age | int(3) | YES | | NULL | |
25 | sex | enum(male,female) | YES | | NULL | |
26 | phone | bigint(11) | YES | | NULL | |
27 | job | varchar(11) | YES | | NULL | |
28 ---------------------------------------------------------
29 rows in set (0.00 sec) 表重命名 2.删除或添加某列 1 -- 删除sex列2 ALTER TABLE staff DROP sex;3 Query OK, 0 rows affected (0.02 sec)4 Records: 0 Duplicates: 0 Warnings: 05 6 DESC staff;7 -----------------------------------------------8 | Field | Type | Null | Key | Default | Extra |9 -----------------------------------------------
10 | id | int(11) | YES | | NULL | |
11 | name | varchar(50) | YES | | NULL | |
12 | age | int(3) | YES | | NULL | |
13 | phone | bigint(11) | YES | | NULL | |
14 | job | varchar(11) | YES | | NULL | |
15 -----------------------------------------------
16 rows in set (0.01 sec)
17
18 -- 添加列
19 ALTER TABLE staff ADD sex ENUM(male,female);
20 Query OK, 0 rows affected (0.03 sec)
21 Records: 0 Duplicates: 0 Warnings: 0 删除或添加某列 3.修改字段属性1 1 -- 修改id的宽度2 ALTER TABLE staff MODIFY id INT(4);3 Query OK, 0 rows affected (0.02 sec)4 Records: 0 Duplicates: 0 Warnings: 05 6 DESC staff;7 ---------------------------------------------------------8 | Field | Type | Null | Key | Default | Extra |9 ---------------------------------------------------------
10 | id | int(4) | YES | | NULL | |
11 | name | varchar(50) | YES | | NULL | |
12 | age | int(3) | YES | | NULL | |
13 | phone | bigint(11) | YES | | NULL | |
14 | job | varchar(11) | YES | | NULL | |
15 | sex | enum(male,female) | YES | | NULL | |
16 ---------------------------------------------------------
17 rows in set (0.01 sec) 修改字段属性1 4.修改字段属性2 1 -- 修改name列的字段名2 ALTER TABLE staff CHANGE name sname VARCHAR(20);3 Query OK, 4 rows affected (0.03 sec)4 Records: 4 Duplicates: 0 Warnings: 05 6 DESC staff;7 ---------------------------------------------------------8 | Field | Type | Null | Key | Default | Extra |9 ---------------------------------------------------------
10 | id | int(4) | YES | | NULL | |
11 | sname | varchar(20) | YES | | NULL | |
12 | age | int(3) | YES | | NULL | |
13 | phone | bigint(11) | YES | | NULL | |
14 | job | varchar(11) | YES | | NULL | |
15 | sex | enum(male,female) | YES | | NULL | |
16 ---------------------------------------------------------
17 rows in set (0.00 sec) 修改字段属性2 5.修改字段属性3 1 -- 修改sex列的位置2 ALTER TABLE staff MODIFY sex ENUM(male,female) AFTER sname;3 Query OK, 0 rows affected (0.02 sec)4 Records: 0 Duplicates: 0 Warnings: 05 6 DESC staff;7 ---------------------------------------------------------8 | Field | Type | Null | Key | Default | Extra |9 ---------------------------------------------------------
10 | id | int(4) | YES | | NULL | |
11 | sname | varchar(20) | YES | | NULL | |
12 | sex | enum(male,female) | YES | | NULL | |
13 | age | int(3) | YES | | NULL | |
14 | phone | bigint(11) | YES | | NULL | |
15 | job | varchar(11) | YES | | NULL | |
16 ---------------------------------------------------------
17 rows in set (0.00 sec) 修改字段属性3 6.创建自增id主键 1 -- 创建自增id主键2 ALTER TABLE staff MODIFY id INT(4) PRIMARY KEY AUTO_INCREMENT;3 Query OK, 4 rows affected (0.02 sec)4 Records: 4 Duplicates: 0 Warnings: 05 6 DESC staff;7 ------------------------------------------------------------------8 | Field | Type | Null | Key | Default | Extra |9 ------------------------------------------------------------------
10 | id | int(4) | NO | PRI | NULL | auto_increment |
11 | sname | varchar(20) | YES | | NULL | |
12 | sex | enum(male,female) | YES | | NULL | |
13 | age | int(3) | YES | | NULL | |
14 | phone | bigint(11) | YES | | NULL | |
15 | job | varchar(11) | YES | | NULL | |
16 ------------------------------------------------------------------
17 rows in set (0.00 sec) 创建自增id主键 7.删除主键 1 -- 删除主键可以看到删除一个自增主键会报错2 ALTER TABLE staff DROP PRIMARY KEY;3 ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key4 5 -- 需要先去掉主键的自增约束然后再删除主键约束6 ALTER TABLE staff MODIFY id INT(11);7 Query OK, 4 rows affected (0.02 sec)8 Records: 4 Duplicates: 0 Warnings: 09
10 DESC staff;
11 ---------------------------------------------------------
12 | Field | Type | Null | Key | Default | Extra |
13 ---------------------------------------------------------
14 | id | int(11) | NO | PRI | 0 | |
15 | sname | varchar(20) | YES | | NULL | |
16 | sex | enum(male,female) | YES | | NULL | |
17 | age | int(3) | YES | | NULL | |
18 | phone | bigint(11) | YES | | NULL | |
19 | job | varchar(11) | YES | | NULL | |
20 ---------------------------------------------------------
21 rows in set (0.01 sec)
22
23 ALTER TABLE staff DROP PRIMARY KEY;
24 Query OK, 4 rows affected (0.06 sec)
25 Records: 4 Duplicates: 0 Warnings: 0 删除主键 其他有关主键操作 1 -- 添加联合主键2 ALTER TABLE staff ADD PRIMARY KEY(sname, age);3 Query OK, 0 rows affected (0.02 sec)4 Records: 0 Duplicates: 0 Warnings: 05 6 -- 删除主键7 ALTER TABLE staff DROP PRIMARY KEY;8 Query OK, 4 rows affected (0.02 sec)9 Records: 4 Duplicates: 0 Warnings: 0
10
11 -- 设置id为主键
12 ALTER TABLE staff ADD PRIMARY KEY(id);
13 Query OK, 0 rows affected (0.02 sec)
14 Records: 0 Duplicates: 0 Warnings: 0
15
16 DESC staff;
17 ---------------------------------------------------------
18 | Field | Type | Null | Key | Default | Extra |
19 ---------------------------------------------------------
20 | id | int(11) | NO | PRI | 0 | |
21 | sname | varchar(20) | NO | | | |
22 | sex | enum(male,female) | YES | | NULL | |
23 | age | int(3) | NO | | 0 | |
24 | phone | bigint(11) | YES | | NULL | |
25 | job | varchar(11) | YES | | NULL | |
26 ---------------------------------------------------------
27 rows in set (0.00 sec)
28
29 -- 为主键添加自增属性
30 ALTER TABLE staff MODIFY id INT(4) AUTO_INCREMENT;
31 Query OK, 4 rows affected (0.02 sec)
32 Records: 4 Duplicates: 0 Warnings: 0
33
34 DESC staff;
35 ------------------------------------------------------------------
36 | Field | Type | Null | Key | Default | Extra |
37 ------------------------------------------------------------------
38 | id | int(4) | NO | PRI | NULL | auto_increment |
39 | sname | varchar(20) | NO | | | |
40 | sex | enum(male,female) | YES | | NULL | |
41 | age | int(3) | NO | | 0 | |
42 | phone | bigint(11) | YES | | NULL | |
43 | job | varchar(11) | YES | | NULL | |
44 ------------------------------------------------------------------
45 rows in set (0.00 sec) 其他有关主键操作 以上 转载于:https://www.cnblogs.com/dmcs95/p/10779136.html