1、数据库的基础知识
1.1 创建和查看数据库
创建数据库:create database 数据库名称;
(分号不能丢),“数据库名称”是唯一的,不可重复出现。执行结果如下所示:
查看数据库:show databases;
执行结果如下所示:
查看创建好的数据库信息:show create database 数据库名称;
执行结果如下所示:
1.2 修改和删除数据库
修改数据库:alter database 数据库名称 default character set 编码方式 collate 编码方式_bin;
“数据库名称”指的是要修改的数据库,“编码方式”指的是修改后的数据库编码。执行结果如下:
删除数据库:drop database 数据库名称;
2、数据类型
2.1 整数类型
数据类型 | 字节数 | 无符号数的取值范围 | 有符号数的取值范围 |
---|---|---|---|
TINYINT | 1 | 0~255 | -128~127 |
SMALLINT | 2 | 0~65 535 | -32 768~32 767 |
MEDIUMINT | 3 | 0~16 777 215 | -8 388 608~8 388 607 |
INT | 4 | 0~4 294 967 295 | -2 147 483 648~2 147 483 647 |
BIGINT | 8 | 0~18 446 744 073 709 551 615 | -9 223 372 036 854 775 808~9 223 372 036 854 775 807 |
2.2 浮点数类型和定点数类型
数据类型 | 字节数 |
---|---|
FLOAT(浮点) | 4 |
DOUBLE(浮点) | 8 |
DECIMAL(M,D)(定点) | M+2 |
DECIMAL类型的有效取值范围是有M和D决定的,其中,M表示的是数据的长度,D表示的是小数点后的长度。
2.3 日期和时间类型
数据类型 | 字节数 | 取值范围 | 日期格式 | 零值 |
---|---|---|---|---|
YEAR | 1 | 1901~2015 | YYYY | 0000 |
DATE | 4 | 1000-01-10~9999-12-3 | YYYY-MM-DD | 0000-00-00 |
TIME | 3 | -838:59:59~838:59:59 | HH:MM:SS | 00:00:00 |
DATETIME | 8 | 1000-01-01 00:00:00~9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 0000-00-00 00:00:00 |
TIMESTAMP | 4 | 1970-01-01 00:00:01~2038-01-19 03:14:07 | YYYY-MM-DD HH:MM:SS | 0000-00-00 00:00:00 |
YEAR类型用于表示年份,当使用YEAR类型时,一定要区分‘0’和0 。字符串格式的‘0’表示的值是2000,而数字格式的0表示的YEAR值是0000。DATE类型用于表示日期值,不包含时间部分。TIME类型用于表示时间值。DATETIME类型用于表示日期和时间。TIMESTAMP类型也用于表示日期和时间,但取值范围比DATETIME小。
2.4 字符串和二进制类型
数据类型 | 类型说明 |
---|---|
CHAR | 用于表示固定长度的字符串 |
VARCHAR | 用于表示可变长度的字符串 |
BINARY | 用于表示固定长度的二进制数据 |
VARBINARY | 用于表示可变长度的二进制数据 |
BOLB | 用于表示二进制大数据 |
TEXT | 用于表示大文本数据 |
ENUM | 表示枚举类型,只能存储一个枚举字符串值 |
SET | 表示字符串对象,可以有零或多个值 |
BIT | 表示位字段类型 |
当数据为CHAR(M)类型时,所占用的存储空间都是M个字节,而VARCHAR(M)所对应的数据所占用的字节数为实际长度加1 。BINARY(M)或VARBINARY(M),M表示二进制数据的最大字节长度。BINARY类型的长度是固定的,如果数据的长度不足最大长度,将在数据的后面用“\0”补齐,最终达到指定长度。TEXT 用于表示大文本数据,例如文章内容、评论等。BOLB 用于表示二进制大数据 ,例如图片、PDF文档等。BIT(M),其中M的范围为1~64 。