昨日内容回顾

  • 数据存取的发展历程
    单台计算机:文本文件→软件开发目录规范→统一格式、统一操作
    存储位置:单机→网络→数据库集群
  • 数据库的本质
    本质是数据操作线程,一般指可视化操作数据的软件。
  • 数据库软件的分类
    关系型数据库:MySQL、Oracle、PostgreSQL、MariaDB、sql server、SQLite。
    非关系型数据库:redis、mongoDB、memcache。
  • MySQL的下载及基本使用
    官网下载压缩包,解压后通过cmd启动服务端,然后启动客户端使用;
    可以添加为服务进程,开机启动。
  • SQL基本语句
    show相关 展示库或表信息
    create相关 创建库或表
    alter相关 修改库或表指定属性
    drop相关 删除库或表
    describe/desc 展示选定表的数据结构
    insert into 向表中插入数据
    select...from... 选择展示表中指定条目数据
    delete 删除表中数据

今日内容概要

  • 字符编码与配置文件
  • 数据库存储引擎
  • 创建表的完整语法
  • MySQL字段基本数据类型

今日内容详细

字符编码与配置文件

最新版MySQL默认字符编码为utf8系列,5.6及之前版本编码未统一,因此需要手动修改配置文件。

配置文件的修改不能直接修改,要复制原配置文件,重命名为my.ini,然后在新文件中填写以下内容:

[mysqld]
        character-set-server=utf8mb4
        collation-server=utf8mb4_general_ci
        sql_mode=STRICT_TRANS_TABLES #使用严格模式
    [client]
        default-character-set=utf8mb4
    [mysql]
        default-character-set=utf8mb4

修改配置的服务端的配置后,需要重新启动服务端以应用新配置。

数据库存储引擎

存储引擎是数据库存取数据所采取的方式。

使用show engines查看MySQL内部使用的存储引擎。

常用的存储引擎有MyISAM、InnoDB、memory、blackhole。

MyISAM:存取数据速度快,但功能较少,安全性较低。存储生成两个文件,为.frm(表结构)及.idb(表数据)后缀。

InnoDB:存取速度较MyISAM慢,但存储数据类型多,安全性高。存储生成三个文件,分别为.frm(表结构)、.MYD(表数据)及.MYI(表索引)后缀。

memory:在内存中存取,重启服务端后就会失效。

blackhole:仅保存数据结构,会清除所有存储的数据。

创建表的完整语法

create table 表名(字段名1 数据类型(数字) 限制条件,字段名2 数据类型(数字) 限制条件)

字段名及数据类型是必须的,括号内数字及限制条件选填,多个限制条件使用空格隔开。

MySQL字段基本数据类型

整型

tinyint			1bytes			正负号(占1bit)
smallint		2bytes			正负号(占1bit)
int			    4bytes		    正负号(占1bit)
bigint			8bytes			正负号(占1bit)

整型数字默认带正负号,如果需要取消正负号需要在类型关键字后加上unsigned。

浮点型

float(数字位数,小数位数)
double(数字位数,小数位数)
decimal(数字位数,小数位数)

三者区别在于精确度,从上到下精确度依次提高。

字符型

char 定长字符
	char(n)  最多存储n个字符 超出就报错 不够n个空格填充至n个
varchar 变长字符
    varchar(n) 最多存储n个字符 超出就报错 不够则有几位存几位

定长字符串存取速度快,但浪费内存空间,取出时会自动删除空格,展示真实长度。常用于固定长度数据的存取;

变长字符串存取速度较慢,但节内存空间,使用较为广泛。

枚举与集合

enum(选项一,选项二...) 存储的数据只能是给出的选项中的一个,不在选项中则报错。

set(选项一,选项二...) 存储的数据只能是给出选项中的任意几个,不存在则报错。

时间

datetime()    日期与时间
date()        日期
time()        时间
year()        年份

时间数据一般不需要手动添加,后续通过系统自动获取。