发表于: 2018-04-25 17:49:24

2 594


 一、今日完成

1、学习SQL语言中字段(列)类型、属性。

学习地址:https://blog.csdn.net/luyaran/article/details/53421979

 1.1数据类型

MySQL中的数据类型大致可以分为:数值、日期/时间和字符串(字符)类型。

A数值类型

整形

定义语句:类型 unsignedunsigned关键字,定义成无符号的类型,比如:tinyint unsigned的取值范围为0~255

 

浮点

float保证约7为精确度,范围10^38double保证约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,表示年份20XXXX数字大于等于70,表示年份19XX

 

C字符串数据类型

  

1.charn)和varcharn)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。

2.同时charvarchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n

3.超过charvarcharn设置后,字符串会被截断。

4.char的上限为255字节,varchar的上限65535字节,text的上限为65535mysql记录长度规定一个行总长度不超过65535个字节,所以实际utf8 varchar可以存21844个字符,gbk varchar可以存32766个字符。一般数据长度超过255个字符,使用text,系统会根据实际数据长度选择text的四个子类存储。

5.char在存储的时候会截断尾部的空格,varchartext不会。

6.varchar会使用1-3个字节来存储长度,text不会。

 

D其它类型

1.枚举(单选):enum(member1, member2, … “member65535)

最多包含65535个不同的成员。实际上存入的是下标索引(指向真实数据值的位置),所以insert into...values()可以用123..代表“member1, member2″。

2.集合:set(member, member2, … “member64)
set
数据类型为指定一组预定义值中的零个或多个值提供了一种方法,这组值最多包括64个成员。值的选择限制为列定义中声明的值。

 

1.2数据类型属性

概括后记录重点和需要注意的内容。

数据类型属性

注释说明

uullnot   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+1auto_increment_ increment:步长;auto_increment_ offset:初始值。修改自增长值,只能比现有值大。

unique

只是null值可以重复。

index

要加速数据库查询,使用索引通常是最重要的一个步骤。index lastname(lastname)

binary

只用于charvarchar值。以区分大小写的方式排序


对应语句:

表后创建主键: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数据类型的划分和使用规则,明晰数据类型属性的使用方式和作用,后面的任务步骤就是对以上内容的练习而已了。



返回列表 返回列表
评论

    分享到