1. 数据类型
1.1整数以及浮点数
age 年龄不会超过127 所以考虑使用`TINYINT
这个类型的范围为-128-127
;
又因为年龄
无符号 就是不会出现`负数
我们可以使用 无符号的TINYINT
;
综上所以 在MySql 里面定义年龄我们就可以
代码语言:javascript复制 age TINYINT UNSIGNED (范围为 0-127)
score 成绩 假设成绩的取值范围为0-100
,但是考虑到也有 60.0 , 75.5, 85.0
这样的数值存在;
我们就可以考虑使用double类型
来存储这个变量;
在SQL语句中 double 有两个参数 ,
- 第一个: 数值的最长长度 score一般是4位
100.0
- 第二个: 允许整数后几个数值存在 score 一般是1位
小数
score DOUBLE(4,1)
1.2字符串类型
varchar
: 变长
字符串 变量存储一个字符 就占一个字符
; 最多存储10个字符
性能较差
varchar(10)
char
: 定长
字符串 变量存储一个字符 也占10 个字符大小; 性能好'
chat(10)
1.3日期类型
31DATE 3 范围1000-01-01 至 9999-12-31
格式 YYYY-MM-DD
描述 日期值
birthday date;
2. Demo 习题展示
根据需求创建表(设计的数据类型、长度)
设计一张员工信息表,要求如下:
- 编号(纯数字)
- 员工工号(字符串类型,长度不超过10位)
- 员工姓名(字符串类型,长度不超过10位)
- 性别 (男/女,存储一个汉字)
- 年龄(正常人年龄,不可能存储负数)
- 身份证号(工代身份证号均为18位,身份证中有X这样的字符)
- 入职时间(取值年月日即可)
create table emp (
id INT, /*编号 */
gonghao varchar(10) ,/*员工工号*/
name varchart(10), /*姓名*/
gender char(1) , /* 性别 */
age TINYINT UNSIGNED, /* 年龄 */
peoID char(18), /*身份证号码*/
joinTime DATE , /* 入职时间 */
) comment '员工表';