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通用语法

  1. 单行或者多行书写,以分号结束

  2. 可以使用空格或者缩进来增强语句的可读性

  3. mysql数据库中,SQL语句不区分大小写,关键

    字建议使用大写

  4. 注释

    1. 单行注释 # –
    2. 多行注释, /* */

用户管理

  1. 查看当前登录的用户

    select user() [from dual];
    

    dual 虚拟表,为了让select语句完整

  2. 创建新用户

    create user 用户名@'ip主机地址' identified by '密码';
    
  3. 修改密码

    alter user 用户名@'ip主机地址' identified by '密码' password expire never;
    # 修改密码之后不需要重新登录
    
    # 指定加密方式重置密码
    alter user 用户名@'ip主机地址' identified with mysql_native_password by '密码';
    
  4. 查询用户信息

    select user,host from mysql.user;
    
  5. 用新用户登录

    mysql -u 用户名 [-h ip地址] -p
    # 新创建的用户只有登录权限,需要使用管理员账户授权
    
  6. 查询用户的权限

    show grants for 用户名@'ip主机地址';
    
  7. 为用户授权

    # *.*  == 所有的数据库.所有的表
    grant 权限 on 数据库名.表名 to 用户名@`ip主机地址`;
    
    # 授权的新用户需要重新登录才能使用新权限
    

    all:所有权限

    select:查询权限

    insert:插入权限

    update :更新权限

  8. 删除用户

    drop user 用户名@'ip主机地址';
    

数据库

  1. 查看数据库

    查看当前用户可操作的所有数据库

    show databases;
    
  2. 创建新数据库

    CREATE DATABASE [IF NOT EXISTS] 数据库名字 [DEFAULT CHARSET utf8mb4];
    create database [if not exists] 数据库名字 [default charset utf8mb4];
    # mysql8 中创建的数据库默认编码是'utf8mb4'
    
  3. 选择数据库

    use 数据库名;
    # 选择数据库之后可以在其中创建数据库表
    
    select database();
    #查看当前所在数据库
    
  4. 删除数据库

     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关闭
  1. 备份表结构

    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
    
  2. 备份多个数据库

    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
    
  3. 备份数据和结构

    # 备份命令去掉 -d
    mysqldump -u root -p --databases 数据库1 数据库2 > 地址
    
  4. 将查询的结果集保存为文件

    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
    
  5. 还原数据结构和数据

    # 登录选中数据库之后执行,将数据还原到该数据库
    source 地址;  # 地址里是有SQL语句的文件
    
    # 在服务器外面使用mysql命令还原
    # 新数据库需要提前建好
    mysql -u root -p 新数据库名 < 地址
    
    mysql -u root -p kfm < E:/cart.sql