57

燕十八 Mysql 笔记 68 课

 5 years ago
source link: https://blog.csdn.net/lvoo86/article/details/88088950?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

68 建表过程与字符类型的意义

目的:要学会建表

知识点:列类型

怎么建表?

以在 A4 纸上建表为例,表头写完就算表建好了,后面的是插入数据,建表的过程其实就是一个声明字段的过程

学号 姓名 家乡 入学年份 001 Mark 山西 2014

建表又和列类型有什么关系呢?

列类型大小,过大浪费资源,过小存不下,合理分配空间。存储同样的数据,不同的列类型,所占的 空间和效率 是不一样的,这就是我们建表前要考虑列类型的原因。

69 Mysql 三大列类型

tee 生成一个 sql 文件

1 . 数值型:

  • 整型:
    • Tinyint 占据空间:一个字节,存储范围:-128 - 127、0 - 255 学习 tinyint 的参数并验证字节与范围的关系,默认是有符号 -128 - 127
    • Smallint
    • Mediuint
    • Int

int 系列声明时的参数,(M) unsigned zerofill 各自代表什么,M 必须和 zerofill 一起出现才有意义,smallint(5) zerofill 用 0 填充,宽度为 5

alter table stu add sal smallint(5) zerofill not null default ‘0’;

  • 小数(浮点型/定点型):

    • 浮点数表示比较复杂
    • Float(M,D) decimal (M,D) M 精度 D 标度
    • 浮点数占多大的空间呢?如果 M <= 24,占 4 个字节,否则占 8 个字节
    • 浮点和定点的区别:定点是把整数部分和小数部分分开存储的,比 float 精确,银行建议 decimal
  • 字符串型:

    • char varchar text blob
    • char(6) 定长字符串,查找比较快,会浪费空间,用空格补齐,如果右边本来就有空格,取出时是删除空格,空格失效,范围 0-255 之间
    • varchar(6) 变长类型 2 张三,生活中坐车的例子,对于 varchar(N) ,不用空格补齐,但列内容前,有 1-2 个字节来标志该列的内容长度。 0-65535 之间
    • Text:文本类型,可以存比较大的文本段,一般用来存储文章内容,新闻内容等,搜索速度比较慢,建议用 char varchar 来代替,声明 text 列时,不用加默认值,加了也没用。
    • Blob 是二进制类型,用来存储图像、音频等二进制信息,意义在于 2 进制,0-255 都有可能出现,Blob 在于防止因为字符集的问题,导致信息丢失,比如:一张图片有 0xFF 字节,这个在 asci 字符集认为非法,在入库的时候被过滤了。

燕十八 Mysql 秘籍

select concat(c,’!’),concat(v,’!’) from test;

注意:char(M) varchar(M) 限制的是字符,不是字节,即 char(2) charset utf8 ,能存 2 个 utf8 字符,比如”中国“,多了不能

create table test2 (article text);

视图:View

视图的学习:

查询每个栏目下商品的平均价格,并取平均前 3 高的栏目


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK