MySQL数据库(1)
登录数据库
mysql [-h 127.0.0.1] [-P 3306] -u 用户名 -p
# 参数:
-h : MySQL服务所在的主机IP
-P : MySQL服务端口号, 默认3306
-u : MySQL数据库用户名
-p : MySQL数据库用户名对应的密码
退出数据库
exit
quit
\q
查询MySQL版本
select version();
SQL通用语法
-
单行或者多行书写,以分号结束
-
可以使用空格或者缩进来增强语句的可读性
-
mysql数据库中,SQL语句不区分大小写,关键
字建议使用大写
-
注释
- 单行注释 # –
- 多行注释, /* */
用户管理
-
查看当前登录的用户
select user() [from dual];
dual
虚拟表,为了让select语句完整 -
创建新用户
create user 用户名@'ip主机地址' identified by '密码';
-
修改密码
alter user 用户名@'ip主机地址' identified by '密码' password expire never; # 修改密码之后不需要重新登录 # 指定加密方式重置密码 alter user 用户名@'ip主机地址' identified with mysql_native_password by '密码';
-
查询用户信息
select user,host from mysql.user;
-
用新用户登录
mysql -u 用户名 [-h ip地址] -p # 新创建的用户只有登录权限,需要使用管理员账户授权
-
查询用户的权限
show grants for 用户名@'ip主机地址';
-
为用户授权
# *.* == 所有的数据库.所有的表 grant 权限 on 数据库名.表名 to 用户名@`ip主机地址`; # 授权的新用户需要重新登录才能使用新权限
all
:所有权限select
:查询权限insert
:插入权限update
:更新权限 -
删除用户
drop user 用户名@'ip主机地址';
数据库
-
查看数据库
查看当前用户可操作的所有数据库
show databases;
-
创建新数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名字 [DEFAULT CHARSET utf8mb4]; create database [if not exists] 数据库名字 [default charset utf8mb4]; # mysql8 中创建的数据库默认编码是'utf8mb4'
-
选择数据库
use 数据库名; # 选择数据库之后可以在其中创建数据库表 select database(); #查看当前所在数据库
-
删除数据库
drop database 数据库名;
数据备份
mysqldump [选项] 数据库名 [表名] > 地址
选项说明:
参数名 | 缩写 | 含义 |
---|---|---|
–host | -h | 主机地址 |
–port | -P | 服务器端口号 |
–user | -u | MySQL用户名 |
–password | -p | MySQL密码 |
–databases | -B | 指定要备份的数据库 |
–all-databases | -A | 备份MySQL服务器上的所有数据 |
–no-data | -d | 不备份数据,默认为备份数据 |
–comments | -i | 是否有信息备注,默认为打开,使用–skip-comments关闭 |
-
备份表结构
mysqldump -u root -p 数据库名 表1 表2 > 地址 # -d 只备份表结构 mysqldump -u root -p -d kfm07 dept > E:/kfm/dept.sql # 数据+表结构一起备份 mysqldump -u root -p kfm07 > e:/kfm/kfm07.sql # 关闭信息备注 mysqldump -u root -p -d --skip-comments store cart > E:/cart.sql
-
备份多个数据库
mysqldump -u root -p -d --databases 数据库1 数据库2 > 地址 mysqldump -u root -p -d -B kfm07 kfm007 book bank > E:/test.sql # --all-databases 备份所有数据库 mysqldump -u root -p -d --all-databases 或 -A > E:/allbackupfile.sql
-
备份数据和结构
# 备份命令去掉 -d mysqldump -u root -p --databases 数据库1 数据库2 > 地址
-
将查询的结果集保存为文件
mysql -u root -p -e "select * from 数据库.表名" > 地址 mysql -u root -p -e "select * from store.goods" > E:/result.txt mysql -u root -p -e "select * from goods" store > E:/result.csv
-
还原数据结构和数据
# 登录选中数据库之后执行,将数据还原到该数据库 source 地址; # 地址里是有SQL语句的文件 # 在服务器外面使用mysql命令还原 # 新数据库需要提前建好 mysql -u root -p 新数据库名 < 地址 mysql -u root -p kfm < E:/cart.sql