MySQL的sql语言-上篇(数据类型)
sql语言:
语句分类:
DDL(定义语言):
- create、drop、alter
DML(操纵语言):
- insert、delete、update
DQL(查询语言):
- select
DCL(控制语言):
- grant、revoke、commit、rollback
sql的简单使用:
查看字符集:
注意:
- 除了 utf8mb4 字符格式能存入表情包数据,其他字符不支持
字符存放目录:
- /usr/share/mariadb/charsets/
例:
#查看支持的字符集
show character set;
#查看当前使用的字符集。character_set_server为服务端使用的字符集,更改时也会改database的字符
show variables like 'character%';
更改字符集:
改文件方式:
vim /etc/my.cnf
[mysqld]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4
命令方式:
create database db1 character set 'utf8';
查看字符排序方式:
show collation;
查看数据库版本:
select version();
数据类型选择:
用于提高数据库性能
建议:
- 最小数据占用,使用最小数据类型
- 简单数据类型使用更少cpu周期
- 尽量避免null,有null的列、字段,不方便优化sql
mysql数据类型:
数值类型:
| 类型 | 数据 |
|---|---|
| tinyint | 1字节。(-128~127) |
| smallint | 2字节。(-32768~32767) |
| mediumint | 3字节。(-8388608~8388607) |
| int | 4字节。(-2147483648~2147483647) |
| bigint | 8字节。(+-9.22*10的18次方) |
| float | 浮点,float(10.3),表示7位数字,3位小数,总占10位 |
| decimal | 定点型 |
日期/时间类型:
| 类型 | 数据 |
|---|---|
| year | 2020 |
| data | 2020-01-01 |
| time | 01:01:00 |
| datetime | 2020-01-01 10:10:30 |
| timestamp | 自动存储记录修改时间 |
字符串(字符)类型:
| 类型 | 数据 |
|---|---|
| char(n) | 固定长度,最多255个字符。不使用改空间也会占用字节,但大小固定方便查询 |
| varchar(n) | 可变长度,最多65535个字符。使用多少占用多少字节,较定长数据查询慢 |
| tinytext | 可变长度,最多255个字符 |
| text | 可变长度,最多65535个字符 |
| mediumtext | 可变长度,最多2的24次方-1个字符 |
| longtext | 可变长度,最多2的32次方-1个字符 |
| BINARY(M) | 固定长度,可存二进制或字符,长度为0-M字节 |
| VARBINARY(M) | 可变长度,可存二进制或字符,允许长度为0-M字节 |
| ENUM | 枚举 |
| SET | 集合 |
varchar和text的区别:
- varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n< n>255),text是实际字符数+2个字节。
- text类型不能有默认值
- varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text数据类型
二进制数据blob类型:
- BLOB和text存储方式不同,TEXT以文本方式存储,英文存储区分大小写,而Blob以二进制方式存储,不分大小写
- BLOB存储的数据只能整体读出
- TEXT可以指定字符集,BLOB不用指定字符集
bool类型:
boolean(布尔型),是tinyint(1)的同义词。0值为假,非0值为真
数据类型修饰符:
适用所有类型的修饰符:
| 修饰符 | 作用 |
|---|---|
| null | 数据列可包含NULL值,默认值 |
| not null | 数据列不允许包含NULL值,*为必填选项 |
| default | 默认值 |
| primary key | 主键,所有记录中此字段的值不能重复,不可null;单独行指定一个或两个字段的是复合主键;单独行,直接写的是主键 |
| unique key | 唯一键,所有记录中此字段的值不能重复,可null |
| character set name | 指定一个字符集 |
适用数值型的修饰符:
| 修饰符 | 作用 |
|---|---|
| auto_increment | 自动递增,适用于整数类型 |
| unsigned | 无符号 |
查看当前的自增起始、步长:
show variables like 'auto_in%'; #查看全局自增设置
SET @@auto_increment_offset=10; #起始数
SET @@auto_increment_increment=3; #步长数

浙公网安备 33010602011771号