接触mysql很多年了,期间记录了常用的一些命令和语句,分享在这里,供大家借鉴。
-- 备份数据库: mysqldump -uroot -p****** --databases base1 base2> backup.sql mysqldump -uroot -p****** base > base.sql
mysqldump -uroot -proot --databases db1 --tables a1 a2 >/tmp/db1.sql
-- 还原数据库 mysql -u root -p****** base< base.sql -- 列出所有数据库: show databases; --选择数据库 use database; -- 查看数据库中的所有表 show tables; -- 查看建表语句 show create table 表名; -- 建立表 create table tablename (id int, user_mobile varchar(30), user_id varchar(30), user_name varchar(30), flag int, value int, red_use_period int, logdate varchar(30), logtime varchar(30)) default charset=utf8;-- 将数据导入表 load data local infile 'E:/log/query_result_20160620.csv' into table database.table fields terminated by ',' lines terminated by '\n'; 将表中的数据导出到外部文件
';
-- 只修改列的数据类型的方法:
alter table student modify column sname varchar(20);
--同时修改列名和列的数据类型的方法:
alter table student change column sname stuname varchar(20);
CREATE TABLE `table_name` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`aid` varchar(40) DEFAULT NULL,
`bid` varchar(40) DEFAULT NULL,
`cid` varchar(40) DEFAULT NULL,
`dt` varchar(20) DEFAULT NULL,
`create_time` datetime not NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ,
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `dt` (`dt`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
#split功能 select substring_index(name,'-',1),substring_index(name,'-',-1) from channels
转:https://www.cnblogs.com/benbenzhu/p/5604598.html
/* 创建表格 */mysql> create table enum_set_table( -> id int auto_increment primary key, -> gender enum('M','F'), -> hobby set('music','movie','swimming','footbal') -> ); Query OK, 0 rows affected (0.01 sec) /* 一个enum值,一个set值,二者均使用选项的字符串格式 */ mysql> insert into enum_set_table(id,gender,hobby) values(null,'M','music'); Query OK, 1 row affected (0.01 sec) /* 一个enum值,多个set值,二者均使用选项的字符串格式 */ mysql> insert into enum_set_table(id,gender,hobby) values(null,'F','music,movie,footbal'); Query OK, 1 row affected (0.00 sec) /* 一个enum值,一个set值,二者均使用选项的数字格式 */ mysql> insert into enum_set_table(id,gender,hobby) values(null,1,1); Query OK, 1 row affected (0.00 sec) /* 一个enum值,多个set值,二者均使用选项的数字格式,其中enum的值 2<=>'F',15=1+2+4+8 <=> 'music,movie,swimming,footbal' */ mysql> insert into enum_set_table(id,gender,hobby) values(null,2,15); Query OK, 1 row affected (0.00 sec) /* 一个enum值,多个set值,enum值使用选项的字符串格式,set值使用选项的数字格式,7=1+2+4 <=> 'music,movie,swimming' */ mysql> insert into enum_set_table(id,gender,hobby) values(null,'F',7); Query OK, 1 row affected (0.01 sec) /* 查询结果 */ mysql> select * from enum_set_table; +----+--------+------------------------------+ | id | gender | hobby | +----+--------+------------------------------+ | 1 | M | music | | 2 | F | music,movie,footbal | | 3 | M | music | | 4 | F | music,movie,swimming,footbal | | 5 | F | music,movie,swimming | +----+--------+------------------------------+ 5 rows in set (0.00 sec)
添加唯一键和外键约束
--单列唯一键约束 alter table tables add unique (tbName); --联合唯一键约束 alter table columns add unique key(tbName,columnName); --外键约束 --创建时先父表后子表,删除时先子表后父表 alter table columns add constraint FK_1 foreign key(tbName) references tables (tbName) on delete restrict on update restrict;
查看和删除唯一键
--查看表的索引 show index from table_name; --删除唯一键 alter table table_name drop index idx_name; --创建索引 create unique index idx_name on table_name(column_name);
批量添加字段
--批量添加字段 ALTER TABLE custom ADD contacts2 VARCHAR(50) NOT NULL DEFAULT '' COMMENT '客户2', ADD phone2 VARCHAR(20) NOT NULL DEFAULT '' COMMENT '联系人2', ADD other_contact2 VARCHAR(50) NOT NULL DEFAULT '' COMMENT '联系人2', ADD contacts_position2 VARCHAR(50) NOT NULL DEFAULT '' COMMENT '职位';