MySQL入门 | 一
一.软件安装及服务器设置
详见以下链接:
https://www.jianshu.com/p/dd65cab11e8a
二.下载并安装使用图形界面软件 Navicat for SQL
自行搜索破解版…
三.数据库基础知识
1.数据库定义
数据库是 一个保存 有组织的数据 的容器(通常是一个文件或一组文件).
也就是数据库是一个文件柜.
注意:数据库软件不是数据库.数据库软件 是 数据库管理系统(DBMS).数据库是通过 DBMS 创建和操纵的.
2.关系型数据库
关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
所谓关系模型就是“一对一、一对多、多对多”等关系模型,关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
3.二维表
在关系模型中,数据结构表示为一个二维表,一个关系就是一个二维表(但不是任意一个二维表都能表示一个关系),二维表名就是关系名。表中的第一行通常称为属性名,表中的每一个元组和属性都是不可再分的,且元组的次序是无关紧要的。
二维表在生活中的应用广泛,例如成绩单、工资表、人员花名册、价格表、物料清单等
excel就是一个二维表
4.行
行(row)
表中的一个记录。
表中的数据是按行储存的.每一行就是一条数据.
5.列
列(column)
表中的一个字段。所有表都是由一个或多个列组成的。
如图:
一列中存储着相同类的信息, 并且使用相同的数据类型,比如上图的这一列就是 存储了国家名字的信息, 用都的是文本类型数据.
6.主键
主键(primary key)
一列(或一组列),其值能够唯一标识表中每一行
这个ID列就是这张图表的主键.我们推荐每一张表都定义主键.
作为主键需要满足以下条件:
1.任意两行都不具有相同的主键值
2.每一行都必须具有一个主键值切不为NULL值(空值).
3.主键列中的值不允许修改或更新
4.主键值不能重用(如果某行从表中删除,他的主键不能赋给以后的新行).
需要注意的是,可以使用多个列一起作为主键,但所有列值得组合必须是唯一的(单个列的值可以不唯一)
7.外键
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。
外键用来关联两个表, 如上图
A表(下)的 外键 (非主键)是 B表(上)的 主键
四.MySQL数据库管理系统
以下操作基于 Navicat for SQL
1.新建一个数据库
在我们打开Navicat for SQL 并连接上用户后
在左边列 点击用户名 将其激活为蓝色(即恰人陈), 之后在空白处 右键,点击新建数据库(这次我们新建一个叫初学sql的数据库).
注意:在创建的时候如果没有自己选者字符集,系统就会默认安装时候的字符集(utf8),现在字符集一般都是选者utf8.
2.新建数据表数据表
新建完成数据库后
名就是我们要输入的列名(也就是表头),代表每个数据的特征(属性),然后我们需要为每一列定义它的数据类型.这里 文本数字我们采用varchar, 下面的是整数型数字int.
最后我们要定义主键,并且主键列不允许有空值,所以取消掉√.
这样就生成了一张空白的表.
3.视图
视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索
数据的查询。
优点
一,视图着重于特定数据。
视图可以让用户或者程序开发人员只看到他们所需要的数据,而不需要把表中的所有信息与字段暴露出来,这样增强了数据的安全性。
二,简化数据的操作,易维护。
我们可以将经常用到的多表联合查询出来的数据,或特定的结果集定义为视图,这样就起到了模块化数据的作用。我们在使用这些数据时直接查询该视图就可以,而不用到处写长长的SQL语句,这样也起到易维护的作用。
三,视图可以限定查询数据。
比如:对于不同的用户,我们只提供部分数据给他。这样,我们就可以在视图中限定结果集,然后返回该视图给他。这样,无论用户怎么对视图定义查询条件,他也不能查询出我们不想提供给他的数据。
缺点
虽然视图可以给我们带来种种便利,但不意味着我们就可以滥用它。因为视图其实就是一段SQL语句,所以它的结果都是每次调用时动态生成的。如果不合理的定义视图,必然带来性能上的损耗。
下面是我们在创建视图应该要注意的几点:
一,操作视图会比直接操作基础表要慢,所以我们尽量避免在大型表上创建视图。
二,尽量不要创建嵌套视图,就是在视图中使用视图。 这样在查询时,会多次重复访问基础表,带来性能损耗。
三,尽量在视图只返回所需的信息,尽量不要在视图使用不需要访问的表。
四,在大型表或者复杂定义的视图,可以使用存储过程代替。
五,频繁使用的视图,可以使用索引视图来代替。 [2]
4.存储过程
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。
普通模式下获取数据,用户需要输入SQL命令与数据库进行交互,而存储过程是编写好的SQL命令,存储在数据库中,用户操作的时候只需要调用存储过程,而不用重新输入冗余繁杂的SQL命令。因此:
1.存储过程可以重复使用,大大减小开发人员的负担;
2.对于网络上的服务器,可以大大减小网络流量,因为只需要传递存储过程的名称即可;
3,可以防止对表的直接访问,只需要赋予用户存储过程的访问权限。