手机版 | 登录 | 注册 | 留言 | 设首页 | 加收藏
联系客服
当前位置: 网站首页 > 程序技巧 > asp > 文章 当前位置: asp > 文章

Mysql----修改数据库结构语句(alter)

时间:2023-02-01    点击: 次    来源:网络    添加者:佚名 - 小 + 大

修改表
1、添加字段:

alter table 表名add [column] 字段名 数据类型 [位置] ;

2、删除字段:

alter table 表 drop [column] 字段名 ;  

3、修改字段(改名):

alter table 表 change [column] 原字段名 新字段名 数据类型 …;

4、修改字段数据类型:

alter table 表 modify 字段名 数据类型;       

其中的modify也可以用alter

例如:

alter table Soft alter FileName VARCHAR(80)


5、修改引擎:

alter table 表名 engine=引擎名;   

6、修改表名:

alter table 表名 rename to 新表名 ;  

7、将表移动到其他数据库

alter table 表名 rename to 另一个数据库名.表名;



主键
添加主键

alter table 表名 add primary key(id);

删除主键

alter table 表名 drop primary key;


二、数据库对字段的操作(alter table)
1、重命名表中的字段名:alter table 表名 change 旧字段名 新字段名 新数据类型;

2、修改字段类型:      alter table 表名 modify 字段名 新的数据类型;

3、添加删除字段:

        对Country varchar(20)字段操作

        3.1、在表的最后一列添加字段:  alter table 表名 add 字段名 字段类型;

        Eg: alter table t_emp add Country varchar(20);

        3.2、在表的第一列添加字段:    alter table 表名 add 字段名 字段类型 first;

        Eg:alter table t_emp add Country varchar(20) first;

        3.3、在表的指定列后添加:alter table 表名 add 字段名 字段类型 after 指定的字段名

        Eg:alter table t_emp add Country varchar(20) after Name;

        3.4、删除字段:         alter table 表名 drop 字段名;

        Eg:alter table t_emp drop Salary;

4、修改字段位置:(modify)

        4.1、将字段1位置放在第一列(first)

        Eg:alter table 表名 modify 字段1 数据类型 first;

4.2、将字段1位置放在字段2后一列(after)

        Eg:alter table 表名 modify 字段1 数据类型 after 字段2;



三、修改数据表



修改表名,语法:
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
将表 tb_dept3 改名为 tb_deptement3:

ALTER TABLE tb_dept3 RENAME tb_deptement3;
修改字段的数据类型,语法:
ALTER TABLE <表名> MODIFY <字段名> <数据类型>
将 tb_dept1表中 name字段的数据类型为 VARCHAR(22)将数据类型修改成VARCHAR(30);

ALTER TABLE tb_dept1 MODIFY name VARCHAR(30);
修改字段名,语法:
ALTER TABLE <表名> CHANGE <旧字段名> <新数据类型>;
将 tb_dept1表中 location字段名称改为 loc 数据类型改为VARCHAR(60)

ALTER TABLE tb_dept1 CHANGE location loc VARCHAR(60);
添加字段,一个完整字段包括:
字段名,
数据类型,
完整性约束
添加字段,语法:
ALTER TABLE <表名> ADD <新字段名> <数据类型>
[约束条件] [FIRST | AFTER 已存在字段名];
添加无完整性约束条件的字段

ALTER TABLE tb_dept1 ADD managerId INT(10);
添加有完整性约束条件的字段

ALTER TABLE tb_dept1 ADD columnl VARCHAR(12) NOT NULL;
在表的第一列添加一个字段

ALTER TABLE tb_dept1 ADD column2 INT(11) FIRST;
在表指定列之后添加一个字段

ALTER TABLE tb_dept1 ADD column3 INT(11) AFTER name;
删除字段,语法:
ALTER TABLE <表名> DROP <字段名>;
删除 tb_dept1表中的 column2字段

ALTER TABLE tb_dept1 DROP column2;
修改字段的排列位置,语句:
ALTER TABLE <表名> MODIFY <字段1> <数据类型> FIRST|AFTER <字段2>;
1、修改字段为表的第一个字段

ALTER TABLE tb_dept1 MODIFY columnl VARCHAR(12) FIRST;
2、修改字段导表的指定列之后

ALTER TABLE tb_dept1 MODIFY columnl VARCHAR(12) AFTER name;
更改表的存储引擎,语法:
ALTER TABLE <表名> BNGINE=<更改后的存储引擎名>
将 tb_deptment3表 当前的存储引擎为 ENGINE=InnoDB

ALTER TABLE tb_deptment3 ENGINE=MyISAM;
删除表的外键约束,语法:
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名>
创建表 tb_emp9,创建外键 deptId 关联deptId1表的主键 id

CREATE TABLE tb_emp9
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
CONSTRAINT fk_emp_dept FOREIGN KEY (deptId) REFERENCES tb_dept1(id)
);
删除外键约束:

ALTER TABLE tb_emp9 DROP FOREIGN KEY fk_emp_dept;
删除数据表
删除没有被关联的表,语法:
DROP TABLE [IF EXISTS] 表1, 表2,...表n;
删除表 tb_dept2

DROP TABLE IF EXISTS tb_dept2;
删除被其他表关联的主表
CREATE TABLE tb_dept2
(
id INT(11) PRIMARY KEY,
name VARCHAR(22),
location VARCHAR(50)
);

CREATE TABLE tb_emp
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
CONSTRAINT fk_emp_dept FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
);
直接删除父表 tb_dept2
DROP TABLE tb_dept2;
解除 tb_emp的外键约束:

ALTER TABLE tb_emp DROP FOREIGN KEY fk_emp_dept;
DROP TABLE to_dept2;

在ACCESS里,备注类型用Memo表示,所以改变字段的数据类型为备注的SQL为:
ALTER TABLE user ALTER COLUMN userinfo Memo
对了,如果user表有外键,而且你要修改的字段就是外键的话,你就不能修改啦!
下面给出修改为其它类型的SQL(表为tb,字段为aa):
ALTER TABLE tb ALTER COLUMN aa Byte 数字[字节]
ALTER TABLE tb ALTER COLUMN aa Long 数字[长整型]
ALTER TABLE tb ALTER COLUMN aa Short 数字[整型]
ALTER TABLE tb ALTER COLUMN aa Single 数字[单精
ALTER TABLE tb ALTER COLUMN aa Double 数字[双精度]
ALTER TABLE tb ALTER COLUMN aa Currency 货币
ALTER TABLE tb ALTER COLUMN aa Char 文本
ALTER TABLE tb ALTER COLUMN aa Text(n) 文本,其中n表示字段大小
ALTER TABLE tb ALTER COLUMN aa Binary 二进制
ALTER TABLE tb ALTER COLUMN aa Counter 自动编号
ALTER TABLE tb ALTER COLUMN aa Memo 备注
ALTER TABLE tb ALTER COLUMN aa Time 日期/时间


实例:

ALTER TABLE userinfo ALTER COLUMN age int;
–如果字段有默认值,则需要先删除字段的约束,在添加新的默认值,
select c.name from sysconstraints a
inner join syscolumns b on a.colid=b.colid
inner join sysobjects c on a.constid=c.id
where a.id=object_id(‘表名’)
and b.name=’字段名’
–根据约束名称删除约束
alter table 表名 drop constraint 约束名
–根据表名向字段中增加新的默认值
alter table 表名 add default (0) for 字段名 with values
— 修改字段不允许 NULL 值
ALTER TABLE userinfo ALTER COLUMN age float NOT NULL;
— 添加主键
ALTER TABLE userinfo ADD CONSTRAINT id_name PRIMARY KEY(ID);
— 修改字段名 (执行后会有提示:注意: 更改对象名的任一部分都可能会破坏脚本和存储过程。)
EXEC sp_rename “userinfo.age”,”userage”,”COLUMN”;

分享按钮

上一篇:HTML+JS实现左边select移动到右边select 双击左侧选项即可移动到右侧

下一篇:asp里面的regexp是什么类, 与正则表达式相关

豫ICP备19032584号-1  |   QQ:80571569  |  地址:河南濮阳市  |  电话:13030322310  |  
Copyright © 2024 FE内容付费系统 版权所有,授权www.xingwp.cn使用 Powered by 66FE.COM