MySQL数据表的修改
在MySQL中,允许对创建好的数据表进行修改,修改时可以有以下几种形式:修改表名、修改字段名、修改字段类型、修改字段排列位置、添加字段、删除字段、添加字段约束、删除约束等,它们一般都是使用“Alter table表名”命令,但后跟的具体参数不同,下面分别介绍其语句格式。
4.4.1修改表名
语句格式一:Alter table表名RENAME [TO] 新表名
语句格式二:RENAME TABLE 表名 TO 新表名
在上面语句格式中,“表名”为要更名的表,“新表名”为要更改成的表名,格式一中参数“TO”可以省略。
下面截图中的“ALTER TABLE”语句将dept更名为t_dept。
一、修改表
二、复制表
三、表字段的数据类型
存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的。
mysql常用数据类型有:
数值类型
1、整数类型
TINYINT SMALLINT MEDIUMINT INT BIGINT
作用:存储年龄,等级,id,各种号码等
注意:为该类型指定宽度时,仅仅只是指定查询结果的显示宽度,与存储范围无关,存储范围如下
其实我们完全没必要为整数类型指定显示宽度,使用默认的就可以了
默认的显示宽度,都是在最大值的基础上加1
2、浮点型
定点数类型 DEC等同于DECIMAL
浮点类型:FLOAT DOUBLE
作用:存储薪资、身高、体重、体质参数等
3、日期类型
DATE TIME DATETIME TIMESTAMP YEAR
作用:存储用户注册时间,文章发布时间,员工入职时间,出生时间,过期时间等
datatime与timestamp的区别
4、字符串类型
总结:
单从数据类型的实现机制去考虑,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。
但对于InnoDB数据表,内部的行存储格式没有区分固定长度和可变长度列(所有数据行都使用指向数据列值的头指针),因此在本质上,使用固定长度的CHAR列不一定比使用可变长度VARCHAR列性能要好。因而,主要的性能因素是数据行使用的存储总量。由于CHAR平均占用的空间多于VARCHAR,因此使用VARCHAR来最小化需要处理的数据行的存储总量和磁盘I/O是比较好的。
5、枚举类型和集合类型
字段的值只能在给定范围中选择,如单选框,多选框
enum 单选 只能在给定的范围内选一个值,如性别 sex 男male/女female
set 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...)
MYSQLALTER
TABLE命令用于修改表结构,例如添加/修改/删除字段、索引、主键等等,本文章通过实例向大家介绍MYSQL
ALTER
TABLE语句的使用方法,
MySQL
ALTER语法如下:
ALTER
[IGNORE]
TABLE
tbl_name
alter_spec
[,
alter_spec
...]
alter_specification:
ADD
[COLUMN]
create_definition
[FIRST
|
AFTER
column_name
]
or
ADD
INDEX
[index_name]
(index_col_name,...)
or
ADD
PRIMARY
KEY
(index_col_name,...)
or
ADD
UNIQUE
[index_name]
(index_col_name,...)
or
ALTER
[COLUMN]
col_name
{SET
DEFAULT
literal
|
DROP
DEFAULT}
or
CHANGE
[COLUMN]
old_col_name
create_definition
or
MODIFY
[COLUMN]
create_definition
or
DROP
[COLUMN]
col_name
or
DROP
PRIMARY
KEY
or
DROP
INDEX
index_name
or
RENAME
[AS]
new_tbl_name
or
table_options
下面来看几个实例:
1、向表employee中添加Account_Number字段并设置其字段类型为INT
ALTER
TABLE
employee
ADD
COLUMN
Account_Number
INT
2、修改表employee中的ID字段为索引
ALTER
TABLE
employee
ADD
INDEX
(ID)
3、修改表employee中的ID字段为主键PRIMARY
KEY
ALTER
TABLE
employee
ADD
PRIMARY
KEY
(ID)
4、修改表employee中的ID字段为唯一索引UNIQUE
ALTER
TABLE
employee
ADD
UNIQUE
(ID)
5、将employee表中的id字段重命名为salary并设置其数据类型为int
ALTER
TABLE
employee
CHANGE
ID
salary
INT
6、删除employee表中的Customer_ID字段
ALTER
TABLE
employee
DROP
Customer_ID
7、删除employee表中所有主键
ALTER
TABLE
employee
DROP
PRIMARY
KEY
8、删除employee表中字段Customer_ID的索引,只是将Customer_ID的索引取消,不会删除Customer_ID字段。
ALTER
TABLE
employee
DROP
INDEX
Customer_ID
9、修改employee表中First_Name的字段类型为varchar(100)
ALTER
TABLE
employee
MODIFY
First_Name
varchar(100)
10、将表employee重命名为Customer
ALTER
TABLE
employee
RENAME
Customer
11、多命令写在一起:
mysql>
ALTER
TABLE
Books
->
ADD
PRIMARY
KEY
(BookID),
->
ADD
CONSTRAINT
fk_1
FOREIGN
KEY
(PubID)
REFERENCES
Publishers
(PubID),
->
ADD
COLUMN
Format
ENUM('paperback',
'hardcover')
NOT
NULL
AFTER
BookName
感谢阅读此文,希望能帮助到大家,谢谢大家对本站的支持!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)