发表于: 2018-03-09 23:33:12

1 517


今日完成

1.参考修真院线下报名贴(学习资料-线下报名-北京报名)中报名的格式,整理出业务模型

参考师兄的日报,发现之前做错了,现在重新理解业务模型,业务模型是建立软件系统时所依据的现实世界模型或者问题域模型,是现实世界或者问题域中规律的真实体现和反映。

2.下载并安装及配置Mysql 5.5

3.下载navicat,或者是Hedisql,连接Mysql,别问我navicat收费怎么办。

   学习navicat查询数据表:

   1、查询数据内容,可以双击打开数据库表,“ctr+f”搜索数据。

   2、如果查询数据表名,在右侧中部(工具栏下面)有一个搜索小图标,输入表名即可。

   3SQL语句查询,选中工具栏中的“查询”图标,点击下面的“新建查询”,打开查询窗口,在查询窗口中输入需要执行的SQL查询语句,格式跟SQL查询一样,点击执行,就会得到字段。


4.创建出来报名贴的业务表,并将表结构粘贴到日报中,对比之前师兄的表结构设计,看看有什么差别

创建报名表

sql语句格式是:

Create table table_name (id int(10) not null auto_increment,name varchar(50) not null,qq varchar(50) not null,type varchar(50) not null,primary key(id));


5.使用navicat设计mysql数据库,数据库的每一个表中都要有三个基本的字段,ID(自增Long),create_at,update_at(所有的时间都用Long)

    之前听师兄说Long类型就是bigint

6.从报名贴中找一条最近报名的师弟,用Mysql插入这条数据,并能够根据姓名查出来这条记录

用MySQL插入数据格式:

7.分别用NavciatSql语句去将本条数据记录的报名宣言改成老大最帅

navicat:直接在宣言部分更改数据,然后保存

sql语句:


8.将表导出成Sql文件,并使用navciatSql分别尝试删除此条数据,并用之前备份的Sql恢复。

navicat中右键点击表,选择转储sql文件即可。删除:右键点击删除表

sql删除表:



9.给姓名建索引,思考一下还应该给哪些数据建索引

QQ,修真类型,毕业院校,学号可以建立索引

10.插入10条数据,查看有索引和无索引的情况下,Sql语句执行的效率

有索引:

无索引:


无索引时,sql语句的执行效率较快。


11.查看深度思考中Mysql相关的一些问题,将自己思考的结果写在日报中,并查阅之前师兄的日报,看看是否有合自己思路接近或者是完全不一致的地方。

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

1. 因为DATE有固定的格式,不同的地区有不同的时间表示方法,而且外国有夏令时与冬令时之分,非常麻烦

2. 使用BigInt也能较为清晰的表示时间

3. 大多数时候我们并不关心某一个时间点,而是发生一个动作后,需要的时间,BigInt非常方便做减法而不用转化

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

坏处:

(1)不存在连续性

(2)数据重复了,自增不会处理和提示

(3)在面对对象时,不能保证完整性

(4)分库的时候ID就不唯一了

 

什么场景下不适用自增ID

(1)自增id的作用是唯一地标识表中的某一条记录,如果有其他能唯一标识该行数据的列,就不用设置自增id了。

(2)在做分布式数据库的时候,要求同步自增id就会出现严重的问题。

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

什么是DB的索引

索引是对数据库表中一个或多个列的值进行排序的结构。

一个索引是存储的表中一个特定列的值数据结构。索引是在表的列上创建。所以,索引包含一个表中列的值,并且这些值存储在一个数据结构中。请记住记住这一点:索引是一种数据结构 。

多大的数据量下建索引会有性能的差别

十万级别?

什么样的情况下该对字段建索引

主键,外键,where中的字段,order by ,group by

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

唯一索引和普通索引的区别是什么

  1. 普通索引

最基本的索引类型,没有唯一性之类的限制。普通索引可以通过以下几种方式创建:

创建索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表);

修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);

创建表的时候指定索引,例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );


  1. 唯一索引(UNIQUE索引)

唯一索引是不允许其中任何两行具有相同索引值的索引。

当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在 employee 表中职员的姓 (lname) 上创建了唯一索引,则任何两个员工都不能同姓。对某个列建立UNIQUE索引后,插入新纪录时,数据库管理系统会自动检查新纪录在该列上是否取了重复值,在CREATE TABLE 命令中的UNIQE约束将隐式创建UNIQUE索引。


创建唯一索引的几种方式:

创建索引,例如CREATE UNIQUE INDEX <索引的名字> ON tablename (列的列表);

修改表,例如ALTER TABLE tablename ADD UNIQUE [索引的名字] (列的列表); ;

创建表的时候指定索引,例如CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (列的列表) );

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

不需要,若插入的数据与已有的数据重复,MySQL会报错使得插入失败。

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

不需要,若插入的数据与已有的数据重复,MySQL会报错使得插入失败。

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

 CreateAT在数据创建的时候赋值,UpdateAt在每次更新数据的时候赋值;

是否应该开放给外部调用的接口?

不应该开放,这两项分别是数据创建和修改时录入数据库的时间,不需要进行修改

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

由于修真类型只有有限的几种,可以用特定的数字代表某个类型,因此可以用int以节省空间。

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

MySQL数据库实现分页比较简单,提供了 LIMIT函数。一般只需要直接写到sql语句后面就行了。

LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数。例如:

select * from table WHERE … LIMIT 10; #返回前10

select * from table WHERE … LIMIT 0,10; #返回前10

select * from table WHERE … LIMIT 10,20; #返回第11-30行数据

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

select * 语句会取出表中的所有字段,当数据量大的时候,这样会造成资源的浪费。


12.下载Java 7,并配置环境变量,百度搜索一下JDKJRE的区别,并将结论用自己的话写在日报中。

JDK:开发环境和运行环境

JRE:运行环境

13.下载Maven3,并配置好环境变量。

14.下载Eclipse或者是IDEA,配置好MavenIDEA不用配置MavenEclipse也分自带或者外部,推荐使用外部Maven

下载的IDEA

15.创建一个新的maven项目

16.src/main/java下随便创建一个java文件,clean,install.查看本地的.m2下是否成功看到有Jar包。

把命令行切换到Maven项目的根目录,然后执行命令行命令:mvn clean install

明日计划

重新复习步骤17


遇到的问题

1,自增ID,为什么删了一条数据后,id不能连续

2,批量添加数据的方法


收获

1重新复习了任务一

2入学流程


返回列表 返回列表
评论

    分享到