最近参加了一个打卡学习群,补习一下MySQL的知识。打卡要求便是输出博客。
软件安装及环境配置
MySQL的安装与配置我便不在这里赘述了。因为我使用的是Mac系统,因此图形化工具使用的是navicat premium。百度上面有如何破解的,如果你也需要可以自己去百度一下。
数据库的基本概念
什么是数据库
- 定义:数据库就是按照一定数据结构存储数据的仓库。
- 解释:其实我们可以理解为就是存储数据的地方。放在计算机中来说的话,就是存取数据的软件
关系型数据库
- 定义:建立在关系型模型基础上的数据库
- 解释:具体什么叫关系型数据库我觉得我们没有必要深究,我觉得我们可以简单的下个定义,就是使用关系表的数据库。
二维表
二维表其实就是关系表,二维表是由行和列组成的。
行
行就是元组,是一组相关的数据,里面包含描述一件事务的若干个键。例如:
| num | Name | Age | sex |
|---|---|---|---|
| 1 | godfrey | 18 | female |
| 2 | nero | 20 | female |
其中num为1的就是为一行数据
列
列就是相同键类型的数据集合,例如上表中的num、name、age、sex都给自为一列
主键
- 什么是主键:一个表中能表示元组唯一性的列,一个表中只能有一列
- 解释:就是说这个列的值不能有重复。
MySQL
MySQL与数据库的关系
可以说MySQL是数据库的一个实例,遵循数据库的设计原则。同时因为MySQL是关系型数据库,所以MySQL也可以说是关系表的集合。
数据表
数据表就是存放数据的地方,在MySQL中数据表就是关系表。
视图
视图就是结果集,就是我们使用查询语句返回的表。
视图的特性
- 视图是虚表,是由若干个基础表组成的
- 视图支持增删改查,但是有限制条件
视图的作用
视图主要是用来控制权限,我们可以参考如下使用场景,我们现在有一个成绩单要公布出来,但是想要实现匿名制,也就是说每个人都可去查询最高分、最低分、每个分段有多少人等等信息,这是我们可以使用视图,事先查询好一个隐藏姓名的成绩视图,然后以供其他人在这个表的基础上查询
视图的基础语法
VIEW `view_user_course` AS (
SELECT
`uc`.`id` AS `id`,
`u`.`name` AS `username`,
`c`.`name` AS `coursename`
FROM Student Where age >10;
);
查询语句的结果就会返回给‘view_user_course’视图,我们之后需要查询什么可以直接在视图上面查询。
SELECT
id,
username,
age
FROM
view_user_course
WHERE
username = '小张'
存储过程
存储过程通俗的来说就是编程中的函数或者方法,有输入输出,有if、while等控制语句、还可以声明变量。就像是一个函数。而且存储过程有一个很重要的有点是,只有第一次会编译执行,之后便是直接被调用执行,速度会相较于查询语句更快,因为查询语句是每次都要编译再执行。