每日一题:

查看PEP8规范:

查看PEP8规范:
1 缩进与换行 每级缩进使用四个空格
2 限制每行的最大长度为79个字符
3 空行
顶层函数和类之间使用两个空行
类的方法之间用一个空行
在函数中使用空行表示不同逻辑段落
4 导入位于文件的顶部
5 避免多余空格
6 注释
注释要保持与时俱进 一句后面两个空格 跟注释
7 命名规范
除了正常的命名规范外
不要使用 大小写的L 大写的O 作为变量名
类名首字母大写 内部类 加上前导下划线
函数名应该小写 增强可读性可以使用下划线分割
8 其他
别用 ‘==‘ 进行布尔值 和 True 或者 False 的比较 应该用 is

字符编码

字符编码发展史,以及你所知道的字符编码码,每个字符编码表的在表示数字和字符关系的时候区别??

ascii 是最早美国用的标准信息交换码,把所有的字母的大小写,各种符号用 二进制来表示,共有256中,加入些拉丁文等字符,1bytes代表一个字符,

Unicode是为了统一世界各国语言的不用,统一用2个bytes代表一个字符,可以表达2**16=65556个,称为万国语言,特点:速度快,但浪费空间,

可以用在内存处理中,兼容了utf-8,gbk,ASCII,

utf-8 为了改变Unicode的这种缺点,规定1个英文字符用1个字节表示,1个中文字符用3个字节表示,特点;节省空间,速度慢,用在硬盘数据传输,网络数据传输,相比硬盘和网络速度,体现不出来的,

gbk  是中文的字符编码,用2个字节代表一个字符,

数据库表映射

数据库建表-- 一对多/多对一/一对一/多对多 关系:

---->关联映射!!!

一对一主键关联:要求两个表的主键必须完全一致,通过两个表的主键建立关联关系


一对一主键关联:要求两个表的主键必须完全一致,通过两个表的主键建立关联关系

数据库中的多对多关联关系一般需采用中间表的方式处理,将多对多转化为两个一对多。

char、varchar和text的区别:

MySQL中字段类型char、varchar和text的区别:


MySQL中,char、varchar和text类型的字段都可以用来存储字符类型的数据,char、varchar都可以指定最大的字符长度,但text不可以

数据的检索效率是:char > varchar > text

char:存储定长数据很方便,CHAR字段上的索引效率级高,必须在括号里定义长度,可以有默认值,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间(自动用空格填充),且在检索的时候后面的空格会隐藏掉,所以检索出来的数据需要记得用什么trim之类的函数去过滤空格。

varchar:存储变长数据,但存储效率没有CHAR高,必须在括号里定义长度,可以有默认值。保存数据的时候,不进行空格自动填充,而且如果数据存在空格时,当值保存和检索时尾部的空格仍会保留。另外,varchar类型的实际长度是它的值的实际长度+1,这一个字节用于保存实际使用了多大的长度。

text:存储可变长度的非Unicode数据,最大长度为2^31-1个字符。text列不能有默认值,存储或检索过程中,不存在大小写转换,后面如果指定长度,不会报错误,但是这个长度是不起作用的,意思就是你插入数据的时候,超过你指定的长度还是可以正常插入。

结论:

1、经常变化的字段用varchar;

2、知道固定长度的用char;

3、超过255字节的只能用varchar或者text;

4、能用varchar的地方不用text;

5、能够用数字类型的字段尽量选择数字类型而不用字符串类型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接回逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了;

6、同一张表出现多个大字段,能合并时尽量合并,不能合并时考虑分表
12-30 18:19