这个系列是当时参加Datawhale MySQL 第五期的笔记
一、安装
(一)关于MySQL安装
环境:windows7 64bit
MySQL:5.7
第一步:点击链接下载安装包 http://dev.mysql.com/downloads/windows/installer/
现在是8.0.15版本,对应下载16.4M安装包即可
第二步: 打开下载好的安装包
1.点击“Install MySQL Products”进入安装界面
勾选“I accept the license terms”,点击 Next
2.选择”Developer Default”, 点击 Next
3.点击“Execute”, 点击后会自动下载一些程序, 耐心等待安装完成,安装完成后点击 Next(可能出现部分程序下载失败的情况, 但是一定要保证前两个 MySQL Server 和 MySQL Workbench 下载完成。)
4.如图点击 Next
5.Config Type 一定要选择”Server Machine”, 然后点击 Next
6.设置密码(一定要记住密码呀), 点击 Next
7.如图点击 Next
8.点击”Execute”后等待
完成后点击”Finish”
9.点击 Next
10.输入之前设置的密码, 点击”Check”, 然后点击 Next
11.点击”Execute”, 完成后点击 Finish
12.两个都勾选后点击”Finish
13.安装完成, 打开软件(或自动弹出)如下界面, 点击红框输入密码(安装时设置的)即可使用
按照以上过程,我成功安装了MySQL 8.0
(二)Navicat for mysql 安装
第一步:登陆https://www.navicat.com.cn/download/navicat-premium 选择适合版本,进行安装
以上是14天试用包,如需破解版,请参看Navicat for mysql 安装破解教程
第二步:打开软件,依次点击“文件”—“新建链接”—“MySQL”
第三步:填写连接名—填写密码—测试连接
测试成功
效果如下,看着真是清清爽爽~
二、数据库基础知识
(一)数据库定义
从SQL视角看,数据库是一个以某种有组织的方式存储的数据集合。我们可以将其想象成一个文件柜,用来保存有组织的数据。
(二)关系型数据库
关系型数据库指:这个数据库内会有不同的表格,通过不同表格的连接大致关系的描述,能够直观地告诉我们这个数据库里面的各种表格是如何连接起来的,它们互相之间的关系是什么,表格里有哪些大致的信息。
关系型数据库涉及到一些重要概念:
1.Schema 模式
描述表具有的信息:数据在表中如何存储,包含存储什么样的数据,数据如何分解,各部分信息如何命名等。模式可以用来描述数据库中特定的表,也可以用来描述整个数据库(和其中表的关系)。
2.Table 表格
类似仓库里不同的项目。表是一种结构化的文件,可用来存储某种特定类型的数据。表可以保存顾客清单、 产品目录,或者其他信息清单。
需要注意的是:存储在表中的数据是同一种类型的数据或清单。不能出现将顾客的清单与订单的清单存储在同一个数据库表的情况。数据库中的每个表都有一个名字来标识自己。 这个名字需要是唯一的,即数据库中没有其他表具有相同的名字。
3.Primary Key 主键 & Foreign Key外键 数据里涵盖的数据关键信息
Primary Key 主关键信息 :类似于身份证号码,是每一行内容的唯一标示。
Foreign Key 表与表之间的某种约定关系:通过 Foreign Key 可以把两个表连接起来。
4.EER Diagram 实体联系表
整个表的连接和线条构成 EER Diagram,告诉你在这个数据库下面不同的表格是如何连接起来的。
5.小三角
表示这些表格是以什么样的关系连接起来的,是一个对多个还是多个对一个还是一对一的联系。
在关系数据库中,通过 Primary Key ,Foreign Key 以及这些表示方向的小箭头告诉我们在该数据库下面不同的表格是如何连接起来的。
(三)一维表和二维表
1.一维表
一维表是每一个字段都是独立参数,如姓名、科目、分数,即列和列之间不能在归为1类概念
优点:一维表最适合透视、数据分析的数据存储结构
2.二维表
二维表是字段非独立字段,如数学、英语、语文是属于科目维度,不是独立字段,即有同类概念/属性/参数(可归类为一类)
优点:二维表用于展示数据更直观
(四)行与列
1.列
表由列组成。列存储表中某部分的信息。所有表都是由一个或多个列组成的。我们可以将数据库表想象为一个网格,就像个Excel表格。表格中每一列存储着某种特定的信息。例如,在顾客表中,一列存储顾客编号,另一列存储顾客姓名,而地址、城市、州以及邮政编码全都存储在各自的列中。
数据库中每个列都有相应的数据类型。它定义了列可以存储哪些数据种类。有如下好处:
(1)限定了可存储在列中的数据种类(例如,防止在数值字段中录入字符值)。
(2)帮助正确地分类数据
(3)优化磁盘使用
因此,在创建表时必须特别关注所用的数据类型。
2.行
表中的数据是按行存储的,所保存的每个记录存储在自己的行内。比如, 顾客表可以每行存储一个顾客。表中的行编号为记录的编号。
(五)主键与外键
1.主键
表中每一行都应该有一列(或几列)可以唯一标识自己。
比如:
学生表(学号,姓名,性别,班级)
其中每个学生的学号是唯一的,学号就是一个主键
课程表(课程编号,课程名,学分)
其中课程编号是唯一的,课程编号就是一个主键
成绩表(学号,课程号,成绩)
成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键
唯一标识表中每行的这个列(或这几列)称为主键。主键用来表示一个特定的行。
表中的任何列都可以作为主键,只要它满足以下条件:
2.外键
外键是表中的一列,其值必须列在另一表的主键中。
比如:成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键
3.区别
三、MySQL数据库管理系统
SQL:structured query language 结构化查询语言,MySQL 是最流行的关系型数据库管理系统。
(一)数据库
数据库是一些关联表的集合。
(二)数据表
表是关系型数据库的基本存储结构。
(三)视图
视图可以看作定义在SQL Server上的虚拟表,是另一种查看数据的入口。
常规视图本身并不存储实际的数据,而仅仅是由SELECT语句组成的查询定义的虚拟表。
从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图。例如查询,插入,修改,删除操作等,但插入、修改、删除等的操作其实对于原始数据表的操作。
(四)存储过程
SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
参考资料:
1.《SQL必知必会》(第4版)
2.SQL讲义第一讲