发表于: 2018-01-26 16:25:08
1 791
任务一 第二天
姓名:王连喜
QQ:381144235
修真类型: JAVA工程师
预计入学时间:2017年1月6日
毕业院校:保定学院
线上(jnshu.com)学号:JAVA-2871
日报链接:
立愿: 陷阵之志
辅导师兄:雍金卫
从何处了解到的修真院:知乎
插入代码:
INSERT INTO enroll VALUES(NULL,'王连喜','381144235','JAVA工程师',
'2017-1-6','保定学院','JAVA-2871','http://www.jnshu.com/daily/45199?dailyType=others&total=37&page=1&cid=661&sort=0&orderBy=3',
'陷阵之志','雍金卫','知乎',null,null);
查询代码:
SELECT * FROM enroll WHERE ename = '王连喜';
查询结果:


修改代码:
UPDATE enroll set hope="老大最帅" WHERE id=1;
修改结果:


导出sql文件:


删除代码:
DELETE FROM enroll WHERE id =1;
恢复备份:


建立索引:
CREATE INDEX nameindex ON enroll(ename);
深度思考中有关数据库的问题:
5.为什么DB的设计中要使用Long来替换掉Date类型?
讨论DB中的两个类型:
①:bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。
②:DATE 用于表示 年月日,取值范围:1000-01-01~9999-12-31。
因为DATE有固定的格式,不同的地区有不同的时间表示方法,而且外国有夏令时与冬令时之分,非常麻烦
大多数时候我们并不关心某一个时间点,而是发生一个动作后,需要的时间,BigInt非常方便做减法而不用转化
6.自增ID有什么坏处?什么样的场景下不使用自增ID?
缺点:在做分布式数据库时,要求数据同步时,这种自增ID就会出现严重的问题,因为你无法用该ID来唯一标识记录。同时在数据库做移植时,也会出现各种问题,总之,对此自增ID有依赖的情况,都有可能出现问题。一般分布式的不会用id自增
7.什么是DB的索引,多大的数据量下建索引会有性能的差别,什么样的情况下该对字段建索引?
索引是对数据库表中一列或多列的值进行排序的一种结构,只有当经常查询索引列中的数据时,才需要在表上创建索引。加上合理的索引后查询速度会大大加快。
8.唯一索引和普通索引的区别是什么,什么时候需要建唯一索引。
针对唯一索引:唯一索引扫描取回一行数据即可返回,快速的查询你想要的额结果(需要查询的数据不多时候,并且是唯一的标识或者是唯一的约束)
针对普通索引:普通索引要确认是否已取回所有数据,至少要多读取一行(普通索引要确保将所有的数据都要读取,这个针对多的大量的数据需要被查询的时候)
9.如果对学员QQ号做了一个唯一索引,在插入数据的时候,是否需要先判断这个QQ号已经存在了?
不需要,因为QQ加上了唯一索引后就会检查是否有重复,如果有的话会就不会插入。
10.CreateAt和UpdateAt的意义分别是创建时间和修改时间,这两个时间应该在什么情况下赋值?是否应该开放给外部调用的接口?
CreateAt是在表创建的时候被赋予值,用来记录这条数据创建的时间,不应该提供给外部调用的接口,防止恶意修改
UpdateAt在每次更新体检数据的时候 被赋予值 用来记录这条数据被修改时的时间,不应该提供给外部调用的接口,防止恶意修改
11.修真类型应该是直接存储Varchar,还是应该存储int?
应该使用varchar类型
12.varchar类型的长度怎么确定?有什么样的原则,和Text和LongText的区别是什么?
varchar 类型的长度根据对应的字段的需求来确定
varchar--->类型把它(定义时规定上限)视为最大值并且只使用了存储字符串实际上需要的字节数(增加一个额外的字节记录长度)。因而较短值被插入道varchar中不会用空格填补,但在较长时仍被截断。所占空间为字符串实际长度加1,最长为65535个字节
Text------>TEXT相对于varchar能接收的字符串更长,也就是说多于varchar的255个字符
LongText-->longtext也是变长字符存储,只保存字符数据,最长为4294967295字节,比较适合存储大内容
选取长度的原则:
1、对于一般性录入字段,如:编号,轴号,车号,不要为了一时的"绝对"而设置确定的长度,最好统一成较优的长度,如32位!如:车号最早是6位,没多久就改成了7位! 轴号开始为8位,但实际上有15位的轴号!轴承编号由10改为了20位
2、对于类似名称的字段: 如单位名称, 数据字典项目的名称等,最好再大一些,设成60位!
3、对于备注类型的字段,一般内容在30个汉字左右,所以推荐设置为100
4、对于长文本的字段,一般内容在200个汉字左右,推荐设置为1000
5、对保存SQL语句的字段(特殊情况,如配置传输条件等),至少要设置为2000,最大是4000 等等
13.怎么进行分页数据的查询,如何判断是否有下一页?
第一种:前端分页,一次性返回所有数据,然后在前端进行处理渲染,好处,只需要请求一次服务器即可,较少前后端交互,适用场景一般数据量较少,并且会经常看第二页第三页这样的数据
第二种:后端分页,一次只返回每次请求的条数,前段所需要传的参数的页码(index)和页容量(size),后端进行判断处理(主要是各种兼容,比如,如果前段不传index和size怎么处理,或者传的index过大,查不到数据怎么处理,这个就见仁见智了),返回数据格式为总条数(total),和当前的数据(data),前端去展示,好处,每次只返回少量的数据,比如10条,处理比较快,这种每次点击分页都会向后端发送一次请求,适用于有大量数据的场景,防止一次性返回过多数据导致页面卡死
在最开始的时候获取数据的条数(最后一个ID值),当获取的数据已经到达最大值的时候,就是到达了最后一页。
14.为什么不可以用Select * from table?
首先不建议采取大小写混用,容易出现错误。
其次查询整张表的数据是没有针对性的查询,获取整张表的数据速度很慢,浪费资源。
今日总结:有关数据库基础的部分就暂时结束了,明天开始学习java部分,之前已经学习过javaSE,在这个基础上学习EE的内容应该不会太难,在接下来的任务中有关框架的使用可能会遇到阻碍,首先请教一下师兄:
1.maven具体有什么用?在实际项目中一般使用哪种版本控制软件?
2.Junit和Spring是什么,有什么用途?
评论