Mysql常规操作
一、增加用户
1.远程登录用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
例子:增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。
grant select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]” Identified by “abc”;
2.增加本机登录用户
例子:增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by “abc”;
二、数据库操作
1.显示数据库
mysql>> show databases;
2.创建数据库
mysql>> create database <数据库名>
3.删除数据库
mysql>> drop database <数据库名>
4.选择数据库
mysql>> use <数据库名>
5.查看当前数据库所有数据表
mysql>> show tables;
6.查看数据库版本
mysql>> select version();
三、表操作
1.创建表
mysql>> create table <表名>(<字段名n> <类型n>...);
表参数 | 理解 |
---|---|
NOT NULL | 不为空 |
AUTO_INCREMENT | 自增属性+1,一般用于主键 |
PRIMARY KEY | 定义主键 |
ENGINE | 设置存储引擎 |
CHARSET | 设置编码 |
ASC | 升序 |
DESC | 降序 |
INDEX、KEY | 用于指定字段为索引 |
UNIQUE | 创建唯一性索引 |
FULLTEXT | 创建全文索引 |
SPATIAL | 创建索引 |
2.获取表结构
mysql>> desc <表名>
show columns from <表名>
3.删除表
mysql>> drop table <表名>
可删除多个,需要有每个表的DROP权限
4.插入数据
mysql>> insert into <表名>(字段名..) VALUE(值);
说明:每次只能向表中插入一条数据
5.删除数据
mysql>> delete from <表名> where 表达式
6.更新表数据
mysql>> update <表名 > set 字段=新值... where 表达式
可更新多张表,limit限制更新行数
7.更改表字段
7.1 新增表字段
mysql>> alter table <表名> add <字段> 类型 其他;
7.2 加索引
mysql>> alter table <表名> add index <索引名> (字段名,字段名...)
7.3加关键字索引
mysql>> alter table <表名> add primary key(id);
7.4删除索引
mysql>> alter table <表名> drop index <索引名>;
7.5修改字段类型
mysql>> alter table <表名> MODIFY 字段 类型 新类型;
7.5修改字段名称、类型
mysql>> alter table <表名> CHANGE 字段 新字段名 新类型
8.修改表名
mysql>> rename table 原表名 to 新表名
当你执行 RENAME 时,你不能有任何锁定的表或活动的事务。
9.查数据表相关信息
show table status like '表名';
10.查询数据库变量属性
show variables like "PROFILING(变量名)";
属性 | 含义 |
---|---|
name | 表名 |
Engine | 表的引擎类型,旧版本中该属性名为Type |
Row_format | 行的格式 Dynamic(长度可变)Fixed(长度固定)Compressed(压缩表) |
Rows | 表的行数(InnoDB中是估计值) |
Avg_row_length | 平均每行字节数 |
Data_length | 表数据大小(字节单位) |
Max_data_length | 表数据最大容量(和存储引擎有关) |
Index_length | 索引大小(字节单位) |
Data_free | 已分配还未使用空间 |
Auto_increment | 下一个AUTO_INCREMENT的值 |
Create_time | 创建时间 |
Update_time | 最后更新时间 |
Check_time | 最后一次检查表的时间 |
Collation | 表的默认字符集和字符列排序规则 |
Create_options | 创建表时指定的其他选项 |
Comment | 额外信息,注释或空间信息 |
四、数据备份
mysqldump常用于MySQL数据库逻辑备份。导出文件默认在mysql\bin目录下
1.备份数据库
格式:mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysql>> mysqldump -u user_name -p 123456 [database_name...] > 路径/文件名
2.备份数据表
格式同数据库备份
mysql>> mysqldump -u user_name -p 123456 database_name [table_name....]> 路径/文件名
3.导出数据库结构
mysql>> mysqldump -u user_name -p -d –add-drop-table database_name > 路径/文件名
-d 无数据 -add-drop-table 在每个create语句之前增加一个drop table
4.不同主机备份
mysql>> mysqldump -h链接ip -P(大写)端口 -u用户名 -p密码数据库名>路径
5.数据库恢复
mysql>> source 备份文件
第二种:命令行执行
mysql -uroot -p demo_db < 备份文件