发表于: 2019-11-17 20:06:23

0 1052


任务1,Day 1


问题&解决:

1、为什么数据库中关于时间的数据类型使用bitint而不是使用Date(或DateTime)?


A:如果是大范围的时间进行操作,使用 int 或是 bigint  ,效率更高,而仅仅是对于固定时间查询,那么 timestamp 即可,且只占用4bits。


2、在插入varchar类型时,到底用双引号、单引号还是反引号?


A:单、双引号基本是等价的,但是在SQL标准中,更多的是推荐用单引号,在字符串套用时,才应该用双引号加以区分;

反引号是在 SQL 中想使用作为保留字或关键字作为字符串时,加以区分而引入,比如 desc 作为关键字,在创建表时执行SQL——CREATE TABLE desc 则报错,而执行 create table `desc` 可成功执行。


3、出现 `invalid default value for id` 的原因是什么?

A:我在建立 id 字段时,对其进行的设置有 PRIMARY KEY 和 AUTO_INCRETMENT,百度后,发现问题出在“自动增长”不可和“默认”同时勾选。


4、应该在表中的哪些字段上建立索引?


A:百度后,学习到了索引是以空间来换取效率,因此索引过多并不是好事;

对于索引,有一个比较详细的规则:

1.表的主键和外键建立索引

2.在order by 或者 group by 后边建立索引

3.数据量超过300的应该建立索引

4.经常与其他表进行连接的表的字段,应该在该字段上建立索引

5,经常出现在where子句中的字段应该建立索引,特别是大表字段

6.索引应该建立在选择性高的字段

7.复合索引在建立时应该仔细分析,尽量用单字段索引替代



完成至任务1——10



返回列表 返回列表
评论

    分享到