发表于: 2018-01-19 09:06:33

4 676


完成
1.分别用Navciat和Sql语句去将本条数据记录的报名宣言改成老大最帅。
Navicat:直接打开表,在该条数据报名宣言下双击直接修改即可。
sql语句:UPDATE 表名 SET 字段名=字段值 WHERE 条件
2.将表导出成Sql文件,并使用navciat和Sql分别尝试删除此条数据,并用之前备份的Sql恢复。
a.用Navicat将表导出成Sql文件
b.Navicat删除这条数据:打开表选中该条记录,右键单击选择删除记录即可。
Sql删除这条数据:DELETE FROM 表名 WHERE 条件
c.在数据库单击右键选择运行SQL文件,选择导出的SQL文件恢复数据。
3.给姓名建索引,思考一下还应该给哪些数据建索引
值得注意的是,如果字段student_name后面不加长度会报错,如下所示。
我认为QQ和线上学号也需要建索引。
思考
1.为什么DB的设计中要使用Long来替换掉Date类型?
一开始设计表的时候在Navicat中字段类型没有找到Long类型,后来百度查资料看到修真院的学院写的帖子(https://www.jianshu.com/p/9b67a447467b),原来Long类型是要在Java代码中将date转换成Long型。
2.自增ID有什么坏处?什么样的场景下不使用自增ID?
自增ID的坏处:如果A表用自增(id)作为主键,B表关联A表表时,是通过A表的Id作为关联的,假如我不小心把A表的记录删除了,重新追加记录,这是Id变了,还要更新B表,那多麻烦啊!!
3.什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?
索引是对数据库表中一列或多列的值进行排序的一种结构,只有当经常查询索引列中的数据时,才需要在表上创建索引。索引占用磁盘空间,并且降低添加、删除和更新行的速度。当然索引也有好处就是查询速度快,它利还是大于弊的所以请慎重使用索引。
4.唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。
普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件 (WHEREcolumn=)或排序条件(ORDERBYcolumn)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如 一个整数类型的数据列)来创建索引。
普通索引允许被索引的数据列包含重复的值。比如说,因为人有可能同名,所以同一个姓名在同一个“员工个人资料”数据表里可能出现两次或更多次。
如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。这么做的好 处:一是简化了MySQL对这个索引的管理工作,这个索引也因此而变得更有效率;二是MySQL会在有新记录插入数据表时,自动检查新记录的这个字段的值 是否已经在某个记录的这个字段里出现过了;如果是,MySQL将拒绝插入那条新记录。也就是说,唯一索引可以保证数据记录的唯一性。事实上,在许多场合, 人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。
5.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?
不需要,唯一索引会自动查找是否重复,如果存在就不能插入。
6.CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?
CreateAt 是在表创建的时候被赋予值 不会给外部的接口。
UpdateAt 在每次更新数据的时候 被赋予值 也不会给外部接口。
7.修真类型应该是直接存储Varchar,还是应该存储int?
修真的类型应该用int。
8.varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?
varchar 类型的长度根据对应的字段的需求来确定,varchar用于变长字符串 ,所占空间为字符串实际长度加1,最长为65535个字节。
text用于长文本数据,最长65535字节,而longtext用于极大文本数据 ,最长4294967295字节。
10.为什么不可以用Select * from table?
*查询的是这个表中的所有列,但是一般情况下我们只需要查询某一个或多个字段,而不需要所有字段都查询,这样会影响效率,所以在明确知道自己所需字段的情况下不推荐使用SELECT * FROM TABLE。
收获
1.熟练使用Navicat和写sql语句。
2.虽然深度思考的内容是百度或者从师兄那借鉴的,但是还是了解了很多知识点。
计划
开始java的学习。

返回列表 返回列表
评论

    分享到