mysql数据库表修改某一列的类型

mysql数据库表修改某一列的类型,第1张

下面列出:

1.增加一个字段

alter

table

user

add

COLUMN

new1

VARCHAR(20)

DEFAULT

NULL

//增加一个字段,默认为空

alter

table

user

add

COLUMN

new2

VARCHAR(20)

NOT

NULL

//增加一个字段,默认不能为空

2.删除一个字段

alter

table

user

DROP

COLUMN

new2

//删除一个字段

3.修改一个字段

alter

table

user

MODIFY

new1

VARCHAR(10)

//修改一个字段的类型

alter

table

user

CHANGE

new1

new4

int 

//修改一个字段的名称,此时一定要重新

//主键

alter

table

tabelname

add

new_field_id

int(5)

unsigned

default

0

not

null

auto_increment

,add

primary

key

(new_field_id)

//增加一个新列

alter

table

t2

add

d

timestamp

alter

table

infos

add

ex

tinyint

not

null

default

‘0′

//删除列

alter

table

t2

drop

column

c

//重命名列

alter

table

t1

change

a

b

integer

//改变列的类型

alter

table

t1

change

b

b

bigint

not

null

alter

table

infos

change

list

list

tinyint

not

null

default

‘0′

//重命名表

alter

table

t1

rename

t2

加索引

mysql>

alter

table

tablename

change

depno

depno

int(5)

not

null

mysql>

alter

table

tablename

add

index

索引名

(字段名1[,字段名2

…])

mysql>

alter

table

tablename

add

index

emp_name

(name)

加主关键字的索引

mysql>

alter

table

tablename

add

primary

key(id)

加唯一限制条件的索引

mysql>

alter

table

tablename

add

unique

emp_name2(cardnumber)

删除某个索引

mysql>alter

table

tablename

drop

index

emp_name

增加字段:

mysql>

ALTER

TABLE

table_name

ADD

field_name

field_type

修改原字段名称及类型:

mysql>

ALTER

TABLE

table_name

CHANGE

old_field_name

new_field_name

field_type

删除字段:

mysql>

ALTER

TABLE

table_name

DROP

field_name

mysql修改字段长度

alter

table

表名

modify

column

字段名

类型

例如

数据库中user表

name字段是varchar(30)

可以用

alter

table

user

modify

column

name

varchar(50)

支持分别修改列默认值和数据类型。要为某列设置一个新默认值,可以使用命令:

ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT new_default

修改数据类型,使用命令:

ALTER TABLE table_name ALTER COLUMN column_name TYPE new_type

注意:这不会影响任何表中已经存在的行。

你可以使用 ALTER TABLE 加 ALTER COLUMN 来更改指定的列数据类型,如:

CREATE TABLE

myTest (fId int,fName nvarchar(20) null)

创建一个表,名为:myTest,包含两个字段。如果此时你想要更改 fName 列,那么可以使用以下语句:

ALTER TABLE myTest

ALTER COLUMN fName nvarchar(30) null

这里要注意,如果指定的新的数据类型长度比原来的数据类型小,那么会出现数据丢失的情况,所以千万要注意,另外,不是所有的数据类型都可以更改,以下是SQL联机丛书中提到的注意事项:

要更改的列不能是:

·数据类型为 text、image、ntext 或 timestamp 的列。

·表的 ROWGUIDCOL 列。

·计算列或用于计算列中的列。

·被复制列。

·用在索引中的列,除非该列数据类型是 varchar、nvarchar 或 varbinary,数据类型没有更改,而且新列大小等于或者大于旧列大小。

·用在由 CREATE STATISTICS 语句创建的统计中的列。首先用 DROP STATISTICS 语句删除统计。由查询优化器自动生成的统计会由 ALTER COLUMN 自动除去。

·用在 PRIMARY KEY 或 [FOREIGN KEY] REFERENCES 约束中的列。

用在 CHECK 或 UNIQUE 约束中的列,除非用在 CHECK 或 UNIQUE 约束中的可变长度列的长度允许更改。

·有相关联的默认值的列,除非在不更改数据类型的情况下允许更改列的长度、精度或小数位数。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9244917.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存