mysql燕18学习笔记.docVIP

  • 2
  • 0
  • 约1.14万字
  • 约 80页
  • 2017-05-13 发布于四川
  • 举报
mysql燕18学习笔记

Mysql三大列类型 数值型 整型 Tinyint、Smallint、Mediumint、Int、Bigint 小数型 Float(D,M),Decimal(D,M) 字符串型 Char(M) Varchar(M) Text 文本类型 日期时间类型 Date 日期 Time 时间 Datetime 时间类型 Year年类型 整型列的字节与存储范围 从数学上讨论tinyint,建表时既能足够存放,又不浪费空间。 即: (1). 占据空间 (2). 存储范围 Tinyint微小的列类型,1字节。 类型 字节 最小值 最大值 (带符号/无符号) (带符号/无符号) Tinyint 1 -128 127 0 255 Smallint 2 -32768 32767 0 65535 Mediumint 3 -2^23 2^23-1 0 2^24-1 Int 4 -2^31 2^31-1 0 2^32-1 Bigint 8 -2^63 2^63-1 0 2^64-1 通过占用字节和所存范围分关系合理的选择类型。 例:Tinyint 经测试,Tinyint的默认为有符号-128~127之间,当越界时自动取相应的边界值。若要存0~255无符号时: 列的可选属性: Tinyint(M) unsigned zerofill. M:宽度(在0填充的时候才有意义) Unsigned:无符号类型(非负),影响存储范围 Zerofill: 0填充(默认无符号) 列可以声明默认值,而且推荐声明默认值 not null default 0; 小数型/浮点型、定点型 Float(M,D):M代表总位数,D代表小数位 (6,2)为例:-9999.99 –9999.99 Decimal(D,M) : 字符型列 Char:定长,char(M),M代表宽度,即:可容纳的字符数0=M=255 Varchar:变长,0=M=65535(约2W—6W个字符受字符集影响) Text文本串,(约2W—6W个字符受字符集影响) 区别在哪呢? char定长:M个字符,如果存的小于M个字符,实占M个字符 varchar:M个字符,存的小于M个字符,设为N,NM,实占N个字符 因此,char定长若存空格,读取时会丢失。而变长不会。 Char利用率小于等于100%,而varchar永远小于100%,1-2个字节用于标志实存字符长度。 Char(M)如何占据M个字符宽度? 答:如果实际存储内容不足M个,则后面加空格补齐,取出来的时候再把后面的空格去掉,(所以如果内容后面有空格,将会被清除) 选择原则: 空间利用效率(M固定选Char) 速度 速度上:定长速度快些, 日期时间列类型 Date 日期 Time 时间 Datatime 时间类型 Year 年类型 Year类型:1个字节表示1901-2155年【0000年表示错误时】 如果输入两位,“00--69”表示2000—2069, 如果输入两位“70--99”表示1970—1999 如果记得麻烦,输入四位就行了、 Date类型:典型格式,1992-08-12 ‘1000-01-01’ ?’9999-12-31’ Time 类型,典型格式 hh:mm:ss ‘-838:59:59’?’+838:59:59’ Datetime 典型格式:’1989-05-06 12:23:34’ ‘1000-01-01 00:00:00’? ‘9999-12-31 23:59:59` 注意: 在开发中很少使用日期时间类型来表示一个需要精确到秒的列,原因:虽然日期时间类型能够精确到秒,而且方便查看。但是计算不便。用时间戳来表示。 时间戳: 1970-01-01 00:00:00 到当前的秒数 面试1: 当表示性别时,可用1或0表示男女,如, 可能会问到为什么不用enum枚举,原因:enum不符合关系型数据库设计理念,而且字节上不比tinyint少。 实例: 增删改查之案例过程分析 用户注册表单收集,提交数据,注册页面收集到表单的数据后,形成insert语句,user表插入该条数据,用户注册完成 前台用户中心,用户新昵称,根据新昵称和用户id,形成update语句,完成昵称修改 管理后台点击会员列表,此时,网页形成select语句,查询出所有会员的数据,完成会员的查看 管理员后台选中某用户并且删除,捕捉此用户的id,根据用户id形成相应的delete语句 执行delete语句,完成用户的删除。 阶段总结(一) 列

文档评论(0)

1亿VIP精品文档

相关文档