发表于: 2019-01-10 15:09:42

2 519


一 前言 

学习,需要了解知识之间的贯通,并且建立结构化的模型,之后利用这些模型来更好的帮助你建立信息的高速公路。

包括艾隆马斯克的第一性原理,也就是这个意思,因此我们这里要快速的利用这种高速学习的方法来掌握知识,实现在过年之前找到工作的愿望。

二   今日学习内容

task1 主要是mysql和mybatis的相关处理,不要求所有任务都完成,但是大概的逻辑必须实现。

2.1  安装Mysql

该部分内容考核的是对于基本软件的安装,6.0之后的mysql是收费的,因此我们这里还是安装5.5版本的。

1下载并安装及配置Mysql 5.5

安装说明和文件以上传百度网盘

链接:https://pan.baidu.com/s/1ZN5ss1QJXy7Z5Cd32QXmbw 

提取码:m1kx 

2下载navicat,或者是Hedisql

这里我使用的是navicat,安装很简单,使用:

https://blog.csdn.net/wypersist/article/details/79834490这篇文章处理就很简单了。


2.2 报表结构设计

这部分的目的,是使用navicat进行表的设计以及进行表内容的增删改查。


1  创建数据库

格式:

* create database 数据库名;

* create database 数据库名 character set 字符集;

#创建数据库 数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8

#创建数据库 并指定数据库中数据的编码


eg.   create database Student_Information

2 设计表的结构

表的结构如下

1.编号(id int(100)) 2.姓名(username varchar(255)) 3.班级 (class varchar(255))

4.出生年月( birthday varchar(255)) 5.籍贯 (city varchar(255)) 6. (qq int(100) ) 7.邮箱 (email varchar(255)) 8.电话( phone int(255))

2.1 约束

* A: 约束的作用:

create table 表名(

   列名 类型(长度) 约束,

   列名 类型(长度) 约束

);

限制每一列能写什么数据,不能写什么数据。

* B: 哪些约束:

   主键约束

   非空约束

   唯一约束

   外键约束

2.2   主键约束

* A: 主键是用于标识当前记录的字段。它的特点是非空,唯一。

在开发中一般情况下主键是不具备任何含义,只是用于标识当前记录。

* B: 格式:

1.在创建表时创建主键,在字段后面加上  primary key.

create table tablename(

id int primary key,

.......

)

2. 在创建表时创建主键,在表创建的最后来指定主键

create table tablename(

id int,

.......,

primary key(id)

)


3.增加主键:在我们使用mysql的时候,有时会遇到须要更改或者删除mysql的主键

第一步我们需要删除表的主键

alter table student drop primary key;

第二步我们需要增加表的主键

alter table student add primary key(id);

注:在增加主键之前,必须先把反复的id删除掉。

4.主键自动增长:一般主键是自增长的字段,不需要指定。

实现添加自增长语句,主键字段后加auto_increment(只适用MySQL)




eg:

#使用数据库

use student_information;

#创建表

--以上没有自增主键

create table student(

id int(100),

username varchar(255),

class varchar(255),

birthday varchar(255),

city varchar(255),

qq int(100),

email varchar(255),

phone int(255)

);

自增主键

create table student(

id int(100) primary key auto_increment ,

username varchar(255),

class varchar(255),

birthday varchar(255),

city varchar(255),

qq int(100),

email varchar(255),

phone int(255)

);



至此数据结构和表设计完成


3  在表中插入一条数据

#查看表的结构

#desc student;

#查看表中的数据

select * from student;

#向表中插入数据

--以上内容是没有设置主键自增的

insert into student values(1,'胡八一','IT修真院','1990-02','北京','13211312','dongdong@qq.com','121221213')

#查看表中的数据

select * from student;

以下自增主键

insert into student(username,class,birthday,city,qq,email,phone) values('胡八一','IT修真院','1990-02','北京','13211312','dongdong@qq.com','121221213')


至此表中数据插入完成。


4  将本条数据记录的姓名改成老大

考察的表记录的修改,使用的是update关键字

任务目标,将满足条件的记录指定列修改为指定值

语法:

update 表名 set 字段名=值,字段名=值;

update 表名 set 字段名=值,字段名=值 where 条件;

* B: 注意:

列名的类型与修改的值要一致.

修改值得时候不能超过最大长度.

值如果是字符串或者日期需要加’’.

C:一些简单的案例

#1,将指定的sname字段中的值 修改成 日用品

UPDATE sort SET sname='日用品';

#2, 将sid为s002的记录中的sname改成 日用品

UPDATE sort SET sname='日用品' WHERE sid='s002';

UPDATE sort SET sname='日用品' WHERE sid='s003';

本题解答:

#将所有的名字都改为老大

update student set username = '老大' 

#将胡八一的名字都改为摸金校尉

update student set username = '摸金校尉' where username = '胡八一' 

至此,我们基本完成了表的增删改查功能。



5   索引

5.1 索引概念

MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。

可以得到索引的本质:索引是数据结构。

如果不太容易理解,我们可以理解,索引是字典

如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。

如果没有索引,那么你可能需要a----z,如果我想找到Java开头的单词呢?或者Oracle开头的单词呢?


所以说,你可以理解索引是:“排好序的快速查找数据结构”。

数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,

这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。


5.2  索引的存储方式

一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上

我们平常所说的索引,如果没有特别指明,都是指B树(多路搜索树,并不一定是二叉的)结构组织的索引

注意:

B树(Balance Tree多路平衡查找树)


5.3  索引的优势和劣势

优势:

提升了数据查询的效率,降低数据排序的成本,降低了CPU的消耗

劣势:

1索引列占用空间

2 降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。

因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件每次更新添加了索引列的字段,

都会调整因为更新所带来的键值变化后的索引信息

3 索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句


5.4 索引分类

  • 普通索引:仅加速查询。
  • 唯一索引:加速查询 + 列值唯一(可以有null)。
  • 主键索引:加速查询 + 列值唯一 + 表中只有一个(不可以有null)。 
  • 组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并。
  • 全文索引:对文本的内容进行分词,进行搜索 。

5.5 哪些情况需要建立索引

  • 主键,唯一索引;
  • 经常用作查询条件的字段需要创建索引;
  • 经常需要排序、分组和统计的字段需要建立索引;
  • 查询中与其他表关联的字段,外键关系建立索引。

5.6 索引总结

(1)创建索引后,查询数据变快,但更新数据变慢。
(2)性能下降的原因很可能是索引失效导致。
(3)索引创建的原则,经常查询的字段适合创建索引,频繁需要更新的数据不适合创建索引。
(4)索引字段频繁更新,或者表数据物理删除容易造成索引失效。
(5)擅用 explain 分析sql语句。
(6)除了优化sql语句外,还可以优化表的设计。如尽量做成单表查询,减少表之间的关联。设计归档表等。

5.7 索引实战

创建索引的两种方法:

CREATE  [UNIQUE ] INDEX indexName ON mytable(columnname(length)); 

ALTER TABLE 表名 ADD  [UNIQUE ]  INDEX [indexName] ON (columnname(length)) 


---索引是个很大的项目,但是我们这里并不需要对理论理解的那么透彻,实用即可。。。。


另外,不逼迫1下自己你是绝对不知道自己有多么出色的,我今天竟然能搞这么多东西,也是吃了个惊,等下出去跑步,晚上再学习俩小时。

把索引这里补完。







返回列表 返回列表
评论

    分享到