seo技术建站,源码怎样做网站,门户网站的细分模式有,有没有专门做胜负彩的网站数据类型选择
完整性约束 是完整性约束是为保证数据库中数据的正确性和相容性#xff0c;对关系模型提出的某种约束条件或规则。 通常包括#xff1a;实体完整性约束、参照完整性约束、域完整性约束、用户自定义完整性约束。 实体完整性(Entity integrity)是指主键必须非空…数据类型选择
完整性约束 是完整性约束是为保证数据库中数据的正确性和相容性对关系模型提出的某种约束条件或规则。 通常包括实体完整性约束、参照完整性约束、域完整性约束、用户自定义完整性约束。 实体完整性(Entity integrity)是指主键必须非空唯一参照完整性(Referential Integrity也就是外键约束域完整性是保证数据库字段取值的合理性一般包括检查CHECK、默认值DEFAULT、不为空NOT NULL、外键FOREIGN KEY等约束。
char和varchar区别
最大长度char最大长度是255字符varchar最大长度是65535个字节。char是定长的不足的部分用隐藏空格填充varchar是不定长的。char会浪费空间varchar会更加节省空间。char查找效率会很高varchar查找效率会更低。对于尾部空格char插入时可省略varchar插入时不会省略查找时省略
set和enum类型的用法和区别
都只能在固定值中选择可以在数据库层面限制非法值。set可以取多个值,enum只能取一个值
deletedroptruncate 都有删除表的作用区别在于
delete 和 truncate 仅仅删除表数据drop 连表数据和表结构一起删除delete 是 DML 语句操作完以后如果没有不想提交事务还可以回滚truncate 和 drop 是 DDL 语句操作完马上生效不能回滚执行的速度上droptruncatedelete
between和in的区别 between是min和max范围内的包括min和max是数字型的 in是离散数据between是连续值1到2之间会有无数个值
like 模糊查询”_“代表一个字符”%“代表多个字符
left、right、full、inner
left、right 简单的说就是最终结果以谁为主full join全连接则是保留所有的查询记录没有的对应位置则为空。inner join只保留所有查询都有结果的记录其它都丢弃。
数据类型的选择
尽量使用可以正确存储数据的最小数据类型因为更小的数据类型占用的资源也更少处理的速度也更快例如整型比字符串操作代价更低避免使用null可以给null默认值除非真的想要存储null值数字类型分为整数和实数 整数例如tinyint、smallint、mediumint、int、bigint还能使用unsigned来禁止负数实数是指带有小数部分的数字例如float、double、decimal 字符类型Varchar和char 最大长度char最大长度是255字符varchar最大长度是65535个字节。char是定长的不足的部分用隐藏空格填充varchar是不定长的。char会浪费空间varchar会更加节省空间。char查找效率会很高varchar查找效率会更低。对于尾部空格char插入时可省略varchar插入时不会省略查找时省略char适合长度等长的字符串varchar适合最大长度比平均长度大很多的 BLOB和TEXT类型 两者都是为了存储很大的数据而设计的字符串数据类型区别是分别采用二进制和字符方式存储TEXT: tinytext、smalltext、text、mediumtext、longtextBLOB类似每个BLOB或者TEXT都会被当作一个独立的对象处理值太大时innodb还会再外部存储行内只存地址memory引擎不支持这两种类型如果查询使用了BLOB或者TEXT列并且需要使用隐式临时表临时表会是MYISAM引擎的这样会导致严重的性能开销最好的办法就是尽量少用这两种类型 枚举类型 尽量少使用数字作为枚举常量很容易混乱枚举其实就是 “数字-字符串”可以有效的节省空间但是每次查找也需要额外的转换不过这个开销比较小枚举字段是按照内部存储的整数来排序的而不是根据字符串排序可以显式的使用FIELD来指定排序枚举最不好的地方是字符串列表是固定的添加或者删除都需要使用ALTER TABLE操作如果是可能会改变的字符串不建议使用枚举 日期类型 date和datetime、timestamp 的区别 date保存精度到天格式为YYYY-MM-DD如2016-11-07datetime和timestamp精度保存到秒格式为YYYY-MM-DD HH:MM:SStimestamp会跟随设置的时区变化而变化而datetime保存的是绝对值不会变化。因此如果应用场景有跨时区要求的要特别注意这点。占用存储空间不同 timestamp储存占用4个字节datetime储存占用8个字节。timestamp可表示范围:1970-01-01 00:00:00~2038-01-09 03:14:07datetime支持的范围更宽1000-01-01 00:00:00 ~ 9999-12-31 23:59:59。timestamp更轻量索引相对datetime更快。 ip ip实际是32位无符号整数不是字符串用小数点分成四段只是为了方便阅读mysql提供了专门转换ip的函数
mysql不要设计过多的列和过多的关联也不要过渡使用枚举避免使用null
用varchar5和varchar200来存储“hello”的空间开销是一样的但是更长的列会消耗更多的内存mysql通常会分配固定大小的内存块来保存内部指所以最好的策略是按需分配