发表于: 2018-02-28 18:39:36
1 737
今天完成的事情:
步骤6:继续昨天的步骤,因为cmd界面有问题,所以改在navicat界面的命令列界面操作
结果:在熟悉了navicat界面的操作之后(中间因为没有点击表格下方的刷新按钮导致以为数据没有录入进去捣鼓了半天),以下为录入和按照姓名搜索的结果
过程:在MYSQL中使用UPDATE语句修改wish列,在Navicat中直接修改即可,不上图,在sql中修改结果如下
过程:navicat中较简单,可直接右键——转储为SQL文件——结构和数据,然后删除记录,再右键表,运行SQL文件即可恢复数据;Mysql中使用mysqldump 语句可以将某张数据表导出成sql文件;使用DELETE FROM 可以删除某条数据;使用mysqlimport语句导入之前备份的数据(但是使用sql语句导出和导入没有成功,导出失败,导入数据之后发现乱码,捣鼓了半天放弃了)
过程:由于索引分为唯一索引和简单索引,针对姓名,可以添加唯一索引,使用CREATE UNIQUE INDEX ON添加;由于索引是添加在要被查询的那一列,在我的理解里SELECT WHERE中经常需要查的建立索引比较好,所以还可以对修真类型,线上学号,毕业院校添加索引,以便查询某一类型有哪些人,某个学号是谁以及某学校在修真院有多少校友。结果如下
从图中可以看到其实在建立表格时,主键就是系统自带的一个索引。
过程:首先插入十条数据,然后筛选
再将索引删除,然后筛选
可以看出其实在数据量很小的情况下,索引的效果并不明显,因为筛选时间对于计算机可以忽略不计。
步骤11
要求:查看深度思考中Mysql相关的一些问题,将自己思考的结果写在日报中,并查阅之前师兄的日报,看看是否有合自己思路接近或者是完全不一致的地方。
5.为什么DB的设计中要使用Long来替换掉Date类型?
我的理解:数据库内部对于时间的计算就是用时间戳的方式进行的,所以用BIGINT来存储时间戳不仅运行速度查找速度上更快,而且可以避免以DATA方式存储造成的时区影响,在输出时可以利用转换函数,就可以避免看起来不够直观的问题了
6.自增ID有什么坏处?什么样的场景下不使用自增ID?
我的理解:今天自己做表格时,由于数据录入错误,所以多次删除了数据,导致后面录入的数据Id不是连续的,它将删除数据的id永久跳过了,所以如果数据在录入过程中需要经常增删的话,那么自增ID不仅会导致ID的不连续而且在后期按照ID查找时会容易造成数据为空的情况。
7.什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?
我的理解:数据库的索引是为某一列或几列数据添加的标记,可以利用这个标记快速定位到需要查询的数据中(相当于定位法术);当数据库的数据量上千,超过mysql的内存,使得其无法将所有记录储存在内存中随时调用时,建索引才会产生性能差别,可以理解为当我身上口袋装不下时,买个包才会比用手捧着作用明显;当某字段经常作为关键字被查询时,即SELECT WHERE 语句中,WHERE后面的变量经常定义的字段需要建立索引,可以提高查询效率,如果不用此关键字进行定位,也就无需建立索引了,因为建立索引不仅需要消耗内存,花费时间,而且修改数据速度也会变慢。
8.唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。
我的理解:唯一索引意味着不同行内的索引值不能重复必须唯一,简单索引则允许不同行存在重复索引,当我们建索引行的内容不存在重复可能时(比如QQ号,手机号)建唯一索引可以增加效率,而且建立了唯一索引之后,再插入新数据时系统会自动检测新数据是否重复,如果重复,则会拒绝插入此数据。
9.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?
我的理解:由于唯一索引的机制就是数据唯一性,所以为了避免数据重复,在插入前,系统会先判断是否存在,如果存在就拒绝插入,不存在就可以顺利插入。
10.CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?
我的理解:create_at一般在创建数据时赋值,update_at则是在修改数据时赋值,即前一个一般只有一个值且不会变,后一个则可能多次变化;关于外部调用接口还没接触,做完任务一再来回答
11.修真类型应该是直接存储Varchar,还是应该存储int?
我的理解:Int类型只能存储整数,而修真类型一般会以单词或是中文来表示,所以用VARCHAR比较好
12.varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?
我的理解:建立表格时,数据类型中便需要确定好VARCHAR类型的最大长度,由于其长度可随输入内容而变化,所以在系统中其存储空间是不固定的,(而CHAR类型由于长度固定的,如果输入的数据不到最大长度,则会以空格填满)但超过最大长度则会报错,一般长度低于255会用一个字节储存长度,大于255会用两个字节储存长度;TEXT和LONGTEXT的区别是可存储字符长度上,TEXT最大存储65535长度,而LONGTEXT则可以存储2^32-1长度的字节
步骤12
要求:下载Java 7,并配置环境变量,百度搜索一下JDK和JRE的区别,并将结论用自己的话写在日报中。
关键词:Java7 ,JDK,JRE
过程:之前就下载过Java9.0.4并且配置过环境变量,所以就不卸载了,JDK(JAVA DEVELOPMENT KITS,java开发工具包)是指java开发时会用的,包含了JRE(JAVA RUNTIME ENVIRONMENT,java运行环境),可以理解为JDK是摄像机,不仅可以拍还可以看,JRE就是播放器,只能看不能拍。
明天计划的事情:
明天准备进行任务的13——18步,好好学习下MAVEN的基础知识,听师兄的建议先把基础打牢一点,不要为了赶进度而做任务,而是为了学知识
今天剩下的时间就再回顾一遍SQL的相关知识,提前预习下后面的知识
遇到的问题:
1.因为之前的编码问题重装了mysql结果又是卡在最后一步,把系统里的残留文件删干净之后总算成功了,结果登陆又遇到问题,百度了好久,试了一下跳过密码总算成功了
2.利用sql语句对数据进行导出导入,试了半天都不行,就放弃了
收获:
通过查师兄的日报,我发现有位师兄和我的情况一样,也是中文输入错误,输出乱码,按照他的方法,输入set charset gbk;后,再筛选数据果然就不乱码了!喜极而泣啊为啥没早发现啊,事实证明,遇到问题去看师兄的日报是很有效的,这也督促我日报遇到问题尽量写详细点
通过对深度思考,对一些模糊的知识点加深了理解,可能有的点理解的不对,还望师兄指出来
总体而言,不在昨天那样的事上纠结之后心情也愉快了很多啊
编辑日报内容...
评论