发表于: 2018-04-25 17:49:24
2 594
一、今日完成
1、学习SQL语言中字段(列)类型、属性。
学习地址:https://blog.csdn.net/luyaran/article/details/53421979
1.1数据类型
MySQL中的数据类型大致可以分为:数值、日期/时间和字符串(字符)类型。
A数值类型
整形
定义语句:类型 unsigned。unsigned关键字,定义成无符号的类型,比如:tinyint unsigned的取值范围为0~255。
浮点
float保证约7为精确度,范围10^38。double保证约15精确度,范围10^308。
在使用浮点型的时候,要注意陷阱的,要以插入数据库中的实际结果为准,插入float(5, 3):
1.插入123.45678,最后查询得到的结果为99.999;
2.插入123.456,最后查询结果为99.999;
3.插入12.34567,最后查询结果为12.346;
B日期和时间数据类型
1.Timestamp:时间戳不能为null,随对应数据的变动而更新。
2.Year:输入范围0-99,可表示范围1900-2155年。XX数字小于等于69,表示年份20XX。XX数字大于等于70,表示年份19XX。
C字符串数据类型
1.char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。
2.同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。
3.超过char和varchar的n设置后,字符串会被截断。
4.char的上限为255字节,varchar的上限65535字节,text的上限为65535。mysql记录长度规定一个行总长度不超过65535个字节,所以实际utf8 varchar可以存21844个字符,gbk varchar可以存32766个字符。一般数据长度超过255个字符,使用text,系统会根据实际数据长度选择text的四个子类存储。
5.char在存储的时候会截断尾部的空格,varchar和text不会。
6.varchar会使用1-3个字节来存储长度,text不会。
D其它类型
1.枚举(单选):enum(“member1″, “member2″, … “member65535″)
最多包含65535个不同的成员。实际上存入的是下标索引(指向真实数据值的位置),所以insert into...values()可以用1、2、3..代表“member1″, “member2″。
2.集合:set(“member”, “member2″, … “member64″)
set数据类型为指定一组预定义值中的零个或多个值提供了一种方法,这组值最多包括64个成员。值的选择限制为列定义中声明的值。
1.2数据类型属性
概括后记录重点和需要注意的内容。
数据类型属性 | 注释说明 |
uull和not null | null精确的说法是“无”,而不是空字符串或0。 |
defult | 如果要指定默认值,此值必须是常量,不允许插入函数或表达式值。此外,此属性无法用于BLOB(存二进制文件)或TEXT列。如果已经为此列指定了NULL属性,没有指定默认值时默认值将为NULL,否则默认值将依赖于字段的数据类型。例如:subscribed enum('0', '1') not null default '0'; |
coment | 专门用于开发人员使用的注释说明。 |
primary key | 每个表只有一个主键。指定为主键的列中,值不能重复,也不能为空。主键的列常与auto_increment属性组合使用,成逻辑主键。因为此列不必与行数据有任何关系,而只是作为一个唯一标识符。 |
auto_increment | 每个表只允许有一个auto_increment列。auto_increment属性用于作为主键的列,列赋此属性将为每个新插入的行赋值为上一次插入的ID+1。auto_increment_ increment:步长;auto_increment_ offset:初始值。修改自增长值,只能比现有值大。 |
unique | 只是null值可以重复。 |
index | 要加速数据库查询,使用索引通常是最重要的一个步骤。index lastname(lastname)。 |
binary | 只用于char和varchar值。以区分大小写的方式排序 |
对应语句:
表后创建主键:alter table 表名 add primary key(字段名);
删除主键:alter table 表名 drop primany key(字段名);或alter table..change..删去primany key关键字.
修改自增长值:alter table 表名 auto_increment = 值;自增长属性值在表选项中。
删除自增长:alter table 表名 modify 字段名 类型 属性(去掉auto_increment);
表后创建唯一键:alter table 表名 add unique(字段名);
删除唯一键:alter table 表名 drop index(唯一键名即字段名);
表后创建索引:create index 索引名 on 表名 (字段名(有效位数));
学习完后对应报名表信息类型属:
姓名:varchar(10) not null
ID:int not null auto_increament primary key
QQ:varchar(15) not null unique
修真类型:set(前端工程师,JAVA工程师,运维工程师, iOS工程师,Android工程师,UI设计师,
产品经理)
预计入学时间:data
毕业院校:varchar(15)
线上(jnshu.com)学号:varchar(10) not null unique
日报链接:varchar not null
立愿:varchar
辅导师兄:varchar(10) not null
从何处了解到的修真院:varchar
二、明日计划
学习SQL语句表关系内容。使用navicat设计mysql数据库,创建报名贴的业务表。
三、问题与收获
收获:掌握了mysql数据类型的划分和使用规则,明晰数据类型属性的使用方式和作用,后面的任务步骤就是对以上内容的练习而已了。
评论