MySQL之库操作

数据库操作

创建数据库
# 创建数据库,库名较长可用下划线间隔
create database [if not exists] db_name
	# 指定字符集,不写则默认utf8
	[default] character set utf8		
	# 指定校对规则,默认utf8_general_ci
    [default] collate utf8_general_ci;
  • 注释

    • if not exits: 如果不存在则创建

    • db_name: 数据库名

    • [] 注解,表示可写可不写

    • ``:反引号,规避关键字;

      • 例如:create database `create`
    • character set:指定数据库采用的字符集

      • 默认utf-8

      • MySQL8.0 开始默认字符集为 utf8mb4

        • utf8mb4utf8 的超集、支持 Emoji 表情

          • utf8:只使用 1~3 个字节表示字符

          • utf8mb4:使用 1~4 个字节表示字符

          • mysql8.0 版本不要使用 char 类型,统一使用 varchar

    • collate:指定数据库字符集的校对规则

      • utf8_general_ci:忽略大小写,默认使用
      • utf8_bin:区分大小写
      • 校对规则针对数据库中数据
      • sql 语句不区分大小写,数据内容区分大小写
      • 数据表的字符集、校对规则 默认与所在数据库一致
        • 可单独修改
数据库操作
基本操作
  • show databases;			# 显示所有数据库
    select database();				# 查看当前使用数据库
    select version();				# 查看 myslq 版本号
    show create database db_name;	# 显示数据库创建语句
    
    # 查看数据库字符集
    show variables like 'character%';
    show variables like '%char%';
    
    # 修改数据库字符集
    alter database db_name character set 'utf8mb4';
    
    # 查看数据库支持的字符集类型
    SHOW CHARACTER SET; 
    select * from information_schema.CHARACTER_SETS;
    
    # 删除数据库
    drop database [if exists] db_name;
    
字符集
分类
  • 四个级别:server级、database级、table级、column级

    • character_set_server :服务器级别的字符集

      • 启动服务器程序时通过启动选项,或服务器程序运行过程中,使用 SET 语句修改

      • 在配置文件中修改

        • [server]
          character_set_server=gbk 			
          collation_server=gbk_chinese_ci
          # 服务器启动时读取配置文件,两个系统变量的值修改完成
          
    • character_set_database:当前数据库的字符集

      • 创建和修改数据库的时指定该数据库的字符集和比较规则
    • character set 字符集名称:指定表的字符集和比较规则

      • 追加在建表语句后
    • CHARACTER SET 字符集名称:指定列的字符集和比较规则

      • 存储字符串的列,同一表中的不同列允许不同的字符集和比较规则;追加在列定义中
      • 转换列的字符集:转换前列中存储的数据不能用转换后的字符集进行表示会发生错误
  • 六个关键位置使用字符集概念:client 、connection、database、results、server、system

    • client:客户端使用的字符集,相当于网页中的字符集

    • connection:连接数据库的 MySQL 字符集设置类型

    • database:某个库使用的字符集设定

      • 建库时没有指明,将使用服务器安装时指定的字符集设置
    • results:数据库给客户端返回时使用的 MySQL 字符集设定

      • 如果没有指明,使用服务器默认的字符集
    • server:服务器安装时指定的默认字符集设定

    • system:数据库系统使用的字符集设定

  • 默认

    • 创建或修改列 没有显式指定字符集和比较规则,则该列 默认用表的 字符集和比较规则
    • 创建表 没有显式指定字符集和比较规则,则该表 默认用数据库的 字符集和比较规则
    • 创建数据库时 没有显式指定字符集和比较规则,则该数据库 默认用服务器的 字符集和比较规则
  • 大小写规范

    • Linux 下大小写规则
      1. 数据库名、表名、表别名、变量名严格区分大小写的
      2. 关键字、函数名称在 SQL 中不区分大小写
      3. 字段名与字段别名在所有的情况下均是忽略大小写的
    • Windows 的环境下全部不区分大小写
      • sql 语句不区分大小写,数据内容区分大小写
修改
  • 默认 utf-8
    • MySQL8.0 开始默认字符集为 utf8mb4
      • utf8mb4utf8 的超集、支持 Emoji 表情
        • utf8:只使用 1~3 个字节表示字符
        • utf8mb4:使用 1~4 个字节表示字符
      • mysql8.0 版本不要使用 char 类型,统一使用 varchar
  • 修改数据库默认字符集
    1. 数据库配置文件 my.ini 文件中 [mysql] 项下添加参数
      • default-character-set=utf8
    2. [mysqld] 项下添加参数 character-set-server=utf8
    3. [client] 项下添加参数 default-character-set=utf8
    4. 重启数据库服务生效
      • 修改配置之前的数据库和数据表的字符集不会因为新修改配置发生改变
备份数据库
# dos命令备份,文件名可以带路径
mysqldump -u 用户名 -p密码 -B 数据库1 数据库2 数据库n > 文件名.sql 

# 备份数据库中具体的表,不写-B(B:表示数据库)
mysqldump -u 用户名 -p密码 - 数据库 表1 表2 表n > 文件名.sql 

-- 恢复数据库
# 进入 MySQL 命令行执行,先在 dos 窗口登录 MySQL
Source 文件名.sql

# navicat 中右键数据库转储 SQL 文件可以备份数据库
# 右键运行 SQL 文件可以恢复数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值