本文已参与「新人创作礼」活动,一起开启掘金创作之路。
还有两天答辩,今天去旁听了一下,大致了解了一下老师们都喜欢问哪些问题,发现对数据库方面知识还是比较生疏,现在顺便复习一下.......
数据库三大范式
- 第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据线;也就是说:每列的值具有原子性,不可再分割。
- 第二范式(2NF)是在第一范式(1NF)的基础上建立起来得,满足第二范式(2NF)必须先满足第一范式(1NF)。如果表是单主键,那么主键以外的列必须完全依赖于主键;如果表是复合主键,那么主键以外的列必须完全依赖于主键,不能仅依赖主键的一部分。
- 第三范式(3NF)是在第二范式的基础上建立起来的,即满足第三范式必须要先满足第二范式。第三范式(3NF)要求:表中的非主键列必须和主键直接相关而不能间接相关;也就是说:非主键列之间不能相关依赖。
数据库的数据类型
使用MySQL数据库存储数据时,不同的数据类型决定了 MySQL存储数据方式的不同。为此,MySQL数据库提供了多种数据类型,其中包括整数类型、浮点数类型、定点 数类型、日期和时间类型、字符串类型、二进制…等等数据类型。
整数类型
根据数值取值范围的不同MySQL 中的整数类型可分为5种,分别是TINYINT、SMALUNT、MEDIUMINT、INT和 BIGINT。下图列举了 MySQL不同整数类型所对应的字节大小和取值范围而最常用的为INT类型的。
| 数据类型 | 字节数 | 无符号数的取值范围 | 有符号数的取值范围 |
|---|---|---|---|
| TINYINT | 1 | 0~255 | -128~127 |
| SMALLINT | 2 | 0~65535 | -32768~32768 |
| MEDIUMINT | 3 | 0~16777215 | -8388608~8388608 |
| INT | 4 | 0~4294967295 | -2147483648~ 2147483648 |
| BIGINT | 8 | 0~18446744073709551615 | -9223372036854775808~9223372036854775808 |
字符串类型
在MySQL中常用CHAR 和 VARCHAR 表示字符串。两者不同的是:VARCHAR存储可变长度的字符串。
当数据为CHAR(M)类型时,不管插入值的长度是实际是多少它所占用的存储空间都是M个字节;而VARCHAR(M)所对应的数据所占用的字节数为实际长度加1。
| 插入值 | CHAR(3) | 存储需求 | VARCHAR(3) | 存储需求 |
|---|---|---|---|---|
| '' | '' | 3个字节 | '' | 1个字节 |
| 'a' | 'a' | 3个字节 | 'a' | 2个字节 |
| 'ab' | 'ab' | 3个字节 | 'ab' | 3个字节 |
| 'abc' | 'ab' | 3个字节 | 'abc' | 4个字节 |
| 'abcd' | 'ab' | 3个字节 | 'abc' | 4个字节 |
文本类型用于表示大文本数据,例如,文章内容、评论、详情等,它的类型分为如下4种:
| 数据类型 | 字节数 |
|---|---|
| TINYTEXT | 0-255字节 |
| TEXT | 0-65535字节 |
| MEDIUMTEXT | 0-16777215字节 |
| LONGTEXT | 0-4294967295字节 |
日期与时间类型
MySQL提供的表示日期和时间的数据类型分别是 :YEAR、DATE、TIME、DATETIME 和 TIMESTAMP。下图列举了日期和时间数据类型所对应的字节数、取值范围、日期格式以及零值:
| 数据类型 | 字节数 | 取值范围 | 日期格式 | 零值 |
|---|---|---|---|---|
| YEAR | 1 | 1901~2155 | YYYY | 0000 |
| DATE | 4 | 1000-01-01~9999-12-31 | 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 |
简单总结,肝论文、PPT 去,有错误请指正..........
我向你敬礼啊,Salute!