mysql中少用但必须掌握的命令以及一些细节知识
数据表修改
- 添加列 add
alter table 表名
add 列名 类型 其他要求
after 列名(加在这个列之后);
- 修改列 modify
alter table 表名
modify 列名 类型 其他要求;
- 删除列 drop
alter table 表名
drop 列名;
- 更改表名
rename table 旧表名 to 新表名;
- 更改表的字符集
alter table 表名 character set 字符集;
- 更改列名
alter table 表名
change 旧列名 新列名 类型 其他要求;
迁移数据表内的数据
insert into 新表
(新列名1, 新列名2, 新列名3)
select 旧列名1, 旧列名2, 旧列名3 from 旧表;
注意:对应列的数据类型要相同,列名无所谓
扩展:自我复制
insert into 表1
select * from 表1;
备份
备份命令和恢复命令可以说是工作上必须掌握的两个命令了,但自己平时练习项目很少用到
备份整个数据库
mysqldump -u 用户名 -p 密码(可以没有) -B 数据库1 数据库2 ... > (绝对路径)文件名.sql
备份某个数据库的数据表
mysqldump -u 用户名 -p 密码(可以没有) 数据库名 数据表1 数据表2 ... > (绝对路径)文件名.sql
注:备份命令一定要在DOS命令行执行!
恢复
source (绝对路径)文件名.sql
注:恢复命令要在mysql命令行里执行
一些注意点(后期会不断总结更新)
- char(6),这里的6是指6个字符,不是6个字节,char可以容纳0~255个字符
varchar(6),这里的6也是指6个字符,varchar可以容纳0~65535个字节(其中有3个字节用于记录长度),具体可以容纳多少字符要看用的是什么编码(常见的utf8是3字节一个字符,GBK是2字节一个字符); - count(*)表示返回满足条件的记录个数,count(列名)表示返回满足条件的某列的记录个数,会排除值为null的记录;
- where筛选表内存在的数据,having筛选查询后生成的临时数据;
- DUAL是亚元表,可用于测试;