以下是在Linux下经常会用到的MySQL的一些命令,导出,导入,建库建表,备份,以及MySQL修改字段,添加字段等语法。

数据库表导入

恢复sql到数据库,不会覆盖数据库,仅执行恢复的sql语句,常用于数据库表的导入:

mysql -uroot -p tanteng.me < mobile_promote.sql

数据库表导出

导出整个数据库

mysqldump -u root -p tanteng.me > www.sql

导出数据库表

支持以空格形式分隔多张表。

mysqldump -u root -p tanteng.me options > options.sql

查询数据导出到txt文件

mysql -u root -p -e"select id,username from walle.user" > user.txt

导出特定条件的 sql 语句

mysqldump -u root -p jiuwo_op v_block –where=‘blockid in(64,65)’ > block.sql

MySQL增加修改字段

增加字段

ALTER TABLE js_business_bank_info ADD bbi_ramdom char(100) DEFAULT ’’ COMMENT ‘生成的随机银行备注’ AFTER bbi_source;

修改字段

修改字段类型:

ALTER TABLE supplier MODIFY supplier_name char(100) NOT NULL;

修改字段名称:

ALTER TABLE new_mobile_promote CHANGE promote_link link varchar(255);

修改字段注释

ALTER TABLE t1 MODIFY col1 BIGINT UNSIGNED DEFAULT 1 COMMENT ‘my column’;

删除字段

ALTER TABLE new_mobile_promote DROP COLUMN list_image_url;

添加自动更新时间字段

ALTER TABLE civil_vote ADD created_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ;

MySQL建库

新建数据库并设定utf8编码

CREATE DATABASE mydb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

删除数据库

DROP DATABASE db_name

添加唯一索引

ALTER TABLE table_name ADD UNIQUE (column)

插入如果唯一索引字段存在则执行更新操作:

INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;

or

INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=VALUES(c);

复制表

基于 orig_tbl 创建一张空表,包含所有字段和索引。比如用于按天分表,需要用到按天建表的场景。

CREATE TABLE new_tbl LIKE orig_tbl;

复制一张表数据到另一张表

两种情况:

① 新表的结构和旧表一样

INSERT INTO 新表 SELECT * FROM 旧表

② 新表结构和旧表不一样,可能新表加了一些字段的情形

INSERT INTO 新表(字段1,字段2,…….) SELECT 字段1,字段2,…… FROM 旧表

比如这个场景,会用到复制表结构,以及复制一张表数据到另一张表数据的方法,当一张表数据很大的时候,如果线上加字段会导致锁表,很长时间没有响应,影响用户的操作,甚至停止业务的正常进行,这个时候可以新建一张表,增加字段,把旧表数据复制到新表,最后删掉旧表,把新表重命名为旧表的名字。不过注意这段时间可能有新增的数据,要把新增的数据也导入到新表。

其他

显示建表 sql:

show create table table_name;

显示自增长起始和递增值:

SHOW VARIABLES LIKE ‘auto_inc%’;

修改 auto_increment_increment 值:

SET @@auto_increment_increment=1;

示例:

mysql> SHOW VARIABLES LIKE ‘auto_inc%’; +————————–+——-+ | Variable_name | Value | +————————–+——-+ | auto_increment_increment | 2 | | auto_increment_offset | 2 | +————————–+——-+