发表于: 2018-03-15 23:58:30

1 649


今天完成的事:

1.task1-9给姓名建索引,还应该给常常查询的列建索引,比如:学号?

2.task1-10我插入了上百条数据可能是Linux终端上显示时间精度不够?愣是没看出区别

不过我理解索引利弊:给某一列建索引可以加快利用该列筛选的查询筛选,用作WHERE后面的条件中最为明显,弊端就是会增加负担并且在插入删除操作中会降低速度,因为索引也会增加相关‘索引’。

3.task1-11 查看深度思考中的mysql相关内容:

5.为什么DB的设计中要使用Long来替换掉Date类型?

便于计算?

6.自增ID有什么坏处?什么样的场景下不使用自增ID?

因为主键只有一个,主键有其他作用时不需要使用自增id,还有就是不用自增id记录顺序时可以不用,会拖慢数据库性能(都是我自己猜的)

7.什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?

我理解的索引是将加入索引的列建成一种数据结构,有利于查找,从navicat建索引的选项中看到mysql的索引有btree 和 哈希两种数据结构。数据量非常大时建索引会有性能差别,数据量小时差别不明显。在需要经常查找时应该对该字段建索引。

8.唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。

唯一索引的索引列的值必须唯一,但允许有空值。在每一行数据都是唯一的时候需要唯一索引,比如学号,身份证号(每个人学号和身份证号都不一样),在有可能一样时不能建唯一索引比如姓名,年龄等。

9.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?

不需要,QQ没有重复的,建了唯一索引应该是不能插入相同数据的

10.CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?

创建时间只在创建该行数据时赋值,修改时间在创建和修改该行数据时赋值,不应该,不需要外部接口赋值

11.修真类型应该是直接存储Varchar,还是应该存储int?

当然是varchar。 int是数字整形啊。

12.varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?

varchar是可变字符串长度,他的长度是插入的数据大小加3个字节。和text  longtext的区别是最大长度不一样。在mysql5中varchar最大长度是65532(占用3个)具体和版本,编码等等有关:https://zhidao.baidu.com/question/519664500345535085.html

插一个数据类型表连接:http://www.runoob.com/mysql/mysql-data-types.html

13.怎么进行分页数据的查询,如何判断是否有下一页?

这题不会!明天研究

14.为什么不可以用Select * from table?

因为mysql不能一次查看数据库内所有表的数据内容。因为太多没法显示?而且SQL语法也不能这么写。

明天计划的事情:

1.复习mysql内容,查漏补缺

2.完成task1-12到task1-16

3.学习javase知识

遇到的问题

1.上面的13题

2.用SQL插入多行数据时刚开始忘了加逗号,找了半天原因。以后学语法代码指令格式要看仔细。

3.其他的都是SQL的基础知识,可以通过查书或者百度看SQL资料解决

http://www.runoob.com这个网站很好,可以解决很多问题

收获:

1.补充了昨天mysql没学到的知识

2.找到了两个好网站http://www.w3school.com.cn/index.html

http://www.runoob.com


返回列表 返回列表
评论

    分享到