字符编码与配置文件
1.\s查看MySQL相关信息
2.默认的配置文件是my-default.ini
# 字符编码相关配置
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
'''
注意:
1.utf8mb4能够存储表情 功能更强大
2.utf8与utf-8是有区别的 MySQL中只有utf8
'''
3.修改了配置文件中关于[mysqld]的配置 需要重启服务端
利用配置文件我们可以偷懒
将管理员登录的账号密码直接写在配置文件中 之后使用mysql登录即可
数据库存储引擎
存储引擎
- 就是数据库针对数据采取的多种存取方式
查看常见存储引擎的方式
show engines;
需要了解的四种引擎
MyISAM
- MySQL5.5之前默认的存储引擎
优点:存取数据的速度快
缺点:功能较少 安全性较低
适用场景:对事务完整性没有要求 表的数据都会只读的
InnoDB
- MySQL5.5之后默认的存储引擎
优点:支持事务和崩溃修复能力 引入了行级锁和外键约束 安全性更高
缺点:占用的数据空间相对较大 存取速度没有MyISAM快
适用场景:需要事务支持 并且有较高的并发读写频率
Memory
- 基于内存存取数据 仅用于临时表数据存取
优点:访问速度较快
缺点:
1.哈希索引数据不是按照索引值顺序存储 无法用于排序
2.不支持部分索引匹配查找 因为哈希索引是使用索引列的全部内容来计算哈希值的
3.只支持等值比较 不支持范围查询
4.当出现哈希冲突时 存储引擎需要遍历链表中所有的行指针 逐行进行比较 直到找到符合条件的行
BlackHole
- 其表现就像一个黑洞 只进不出 进来就消失 换句话说,任何往其中写的数据都将丢失
使用场景:虽然其不保存数据 但对数据库的操作仍旧记录在binlog日志中 这就带来一个好处 可以将其作为主从复制的中介 将原来从主库中同步的操作变为从作为中介的BlackHole引擎数据库中同步
了解不同存储引擎底层文件个数
create database db2;
use db2;
create table t1(id int) engine=innodb;
create table t2(id int) engine=myisam;
create table t3(id int) engine=memory;
create table t4(id int) engine=blackhole;
- innodb两个文件
后缀名 | 作用 |
---|---|
.frm | 表结构 |
.ibd | 表数据(表索引) |
这里的表索引是输的目录,加快数据查询的
- myisam三个文件
后缀名 | 作用 |
---|---|
.frm | 表结构 |
.MYD | 表数据 |
.MYI | 表索引 |
后缀名 | 作用 |
- memory一个文件
- blackhole一个文件
文件名 | 后缀名 | 作用 |
---|---|---|
memory | .frm | 表结构 |
blackhole | .frm | 表结构 |
- 往四个表里面分别插入一条数据
insert into t1 values(1);
insert into t2 values(1);
insert into t3 values(1);
insert into t4 values(1);
'''注意:MySQL默认忽略大小写'''
创建表的完整语法
create table 表名(
字段名 字段类型(数字) 约束条件,
字段名 字段类型(数字) 约束条件,
字段名 字段类型(数字) 约束条件
);
1.字段名和字段类型是必须的
2.数字和约束条件是可选的
3.约束条件也可以写多个 空格隔开即可
4.最后一行结尾不能加逗号
ps:编写SQL语句报错之后不要慌 仔细查看提示 会很快解决
near ')' at line 7
字段类型之整型
整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT
tinyint 1bytes 正负号(占1bit)
smallint 2bytes 正负号(占1bit)
int 4bytes 正负号(占1bit)
bigint 8bytes 正负号(占1bit)
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
TINYINT | 1 字节 | -128~127 | (0,255) | 小整数值 |
SMALLINT | 2 字节 | -32768~32767 | (0,65 535) | 大整数值 |
MEDIUMINT | 3 字节 | -8388608~8388607 | (0,16 777 215) | 大整数值 |
INT或INTEGER | 4 字节 | -2147483648~2147483647 | 0~4294967295 | 大整数值 |
BIGINT | 8 字节 | -9223372036854775808~9223 372036854775807 | 0~18446744073709 551615 | 极大整数值 |