mysql备份数据表及主键_mysql添加列、删除列,创建主键、备份等常用操作总结...

一. 列常用操作

① 添加新的一列test_column,并将其作为主键,FIRST将其放在表中第一行,auto_increement是自动增长

alter table test_table add column test_column int not null auto_increment FIRST add primary key(test_column);

1

② 删除列

alter table test_table drop column test_column;

1

③ 修改某一列的字段长度(例如本来是30字节改为50字节长)

alter table test_table modify column test_column varchar(50);

1

④ 完全修改某一列(假设原本列名是test1_column,类型是int)

alter table test_table change column test1_column test_column varchar(30);

1

⑤ 仅仅想重命名某一列(首先需要了解这一列的类型,假如原本是int且不为空,列名是error_name_column)

alter table test_table change column error_name_column test_column int not null;

1

二. 针对表的多数操作

① 修改指定表的存储引擎,假设原本是MYISAM

alter table test_table engine=innodb;

1

② 删除指定表的主键

alter table test_table drop primary key;

1

这里有个情况需要指出,如果该主键列是自动增长(auto_increment)的,因为mysql要求自动增长列必须是索引,所以删除主键也就删除了主键索引,这是不符合mysql要求的,是无法实现的,会报错,必须先删除自动增长(通过修改列属性),后删除主键

③ 为指定表添加主键

alter table test_table add primary key(test_column);

1

④ 为指定表添加索引(普通索引),test_index是索引名

alter table test_table add index test_index(test_column);

1

⑤ 删除指定表索引

alter table test_table drop index test_index;

1

⑥ 重命名表

alter table test_table rename new_name_table;

1

三. 常用查询操作

① 查看当前的默认存储引擎

show variable like 'table_type';

1

② 查询当前数据库支持的存储引擎

show ENGINES \G;

1

③ 查看指定表的索引有哪些

show index from test_table;

1

④ 查看当前mysql服务器的字符集和校队规则

show variables like 'character_set_server';

show variables like 'collation_set_server';

1

2

⑤ 查看有哪些视图

show table status where comment='view';

1

⑥ 查看创建指定表的详细信息

show create table test_table;

1

⑦ 查看指定视图的定义,view_name是视图名

show create view view_name;

1

⑧ 查询指定触发器,test_trigger_name是触发器名

select * from triggers where trigger_name='test_trigger_name';

1

⑨ 查看所有的触发器

show triggers \G;

1

⑩ 查看所有的存储过程和函数

show procedure status;

show function status;

1

2

⑪ 查看所有的事件调度器

show events \G;

1

⑫ 查询当前版本mysql是否支持分区

show variables like '%partition%';

1

如果输出信息中,变量have_partition_engine的值为YES,则支持分区

四. 导入导出和备份操作

① 导出整个数据库

mysqldump -u root -p test_database > /tmp/test.sql

1

将test_database数据库导出到tmp目录下的test.sql文件中

② 导出一个表

mysqldump -u root -p test_database test_table > /tmp/test.sql

1

将test_database数据库中的test_table表导出到tmp目录下的test.sql文件

③ 导出一个数据库结构(不包含数据)

mysqldump -u root -p -d --add-drop-table test_database > /tmp/test.sql

1

将test_database数据库的结构导出至tmp目录下的test.sql文件

④ 导出数据表内容为excel文件

select * from test_table into outfile '/tmp/test.xls';

1

将test_table表中内容以excel表格格式导出到tmp目录下的test.xls文件

⑤ 导入sql文件,先进入某个数据库,例如test数据库,导入tmp目录下的test.sql文件

use test;

source /tmp/test.sql

1

2

⑥ 导入excel文件(linux下较为麻烦,利用window端的数据库连接软件可以轻松实现,不详细叙述)

---------------------

作者:Dhrome

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值