龙空技术网

MySQL数据库 第1章:数据库入门

惊鸿若梦一书生 2243

前言:

当前同学们对“mysql除法”大约比较关切,小伙伴们都需要知道一些“mysql除法”的相关资讯。那么小编也在网摘上搜集了一些关于“mysql除法””的相关内容,希望同学们能喜欢,兄弟们快快来学习一下吧!

1.1 数据库基础

数据库(Database,DB)

1.1.1 数据库概述

数据库是按照数据结构来组织、存储和管理数据的仓库

这里需要理解三个概念:数据库、数据库管理系统、数据库应用程序

数据库:

提供存储空间来存储数据的一个容器

数据库管理系统(Database Management System,DBMS):

专门用来创建和管理数据库的一套软件,介于应用程序和操作系统之间,比如MySQL、Oracle、SQL Server、DB2、postgresql等

数据库应用程序:

数据库管理系统很多时候无法满足用户对数据库的管理需求,此时就需要使用数据库应用程序与数据库管理系统进行通信、访问和管理DBMS中存储的数据。常见的数据库应用程序有:SQLyog、Navicat、DbVisualizer等

他们之间的关系如下图所示:

1.1.2 数据库技术的发展

数据库技术经历了三个发展阶段:

人工管理阶段文件系统阶段数据库系统阶段1.1.3 三级模式和二级映像

三级模式:数据库管理系统从三个层次来管理数据,分别是外部层(External Level)、概念层(Conceptual Level)和内部层(Internal Level),这三个层次分别对应三种模式,分别是外模式(External Schema)、概念模式(Conceptual Schema)和内模式(Internal Schema)。

二级映像:外模式和概念模式之间,概念模式和内模式之间还存在映像,即二级映像。

他们之间关系如下所示:

外模式:面向应用程序,用于描述用户的数据视图(View)

内模式:又称为物理模式、存储模式,描述数据在磁盘中如何存储的

概念模式:又称为逻辑模式,描述数据的整体逻辑结构的。

为了更好理解,以Excel表格类比成数据库:

概念模式:类似与表格的列标题,描述了表格中都包含哪些信息。内模式:将Excel表格另存为文件时,可以选择保存的文件路径、保存类型(如xls,xlsx,csv等格式),这些与存储相关的描述信息相当于内模式。在数据库中内模式描述数据的物理结构和存储方式。外模式:外模式可以为不同的用户需求创建不同的视图(视图就是基本表中查询出的部分数据就是一个视图)

因此,一个数据库可以有多个外模式,但概念模式和内模式则只有一个。1.1.4 数据模型

数据库发展的过程中出现了3种数据模型:层次模型、网状模型、关系模型

建立在关系模型之上的数据库叫做关系型数据库,本文所讲mysql就是一个关系型数据库。

要理解关系模型就要先理解一些概念:数据建模、概念模型的术语、E-R图、关系模型、关系模型的完整性。

数据建模

数据建模是对现实世界中的各类数据的抽象组织,以确定数据库的管辖范围、数据的组织形式等。

数据建模大致分为3个阶段:

数据建模的过程如下:概念模型的术语

实体(Entity)是指客观存在并可相互区分的事物。

例如,学生、班级、课程都是实体。

属性(Attribute)是指实体所具有的某一特性,一个实体可由若干个属性来描述。

例如,学生实体的属性有学号、学生姓名和学生性别。

属性由两部分组成,分别是属性名和属性值。

例如,学号和学生姓名是属性名,而“1、张三”这些具体值是属性值。

联系(Relationship)是指实体与实体之间的联系,有一对一、一对多、多对多三种情况。

例如,每个学生都有一个学生证,学生和学生证之间是一对一的联系;一个班级有多个学生,班级和学生是一对多的联系;一个学生可以选修多门课程,一门课程又可以被多个学生选修,学生和课程之间就形成了多对多的联系。

实体型(Entity Type)实体类型,通过实体名(如学生)及其属性名集合(如“学号、学生姓名、学生性别”)来抽象描述同类实体。

实体集(Entity Set)是指同一类型的实体集合,如全校学生就是一个实体集。E-R图

E-R图也称为实体-联系图(Entity Relationship Diagram)。

E-R图是一种用图形表示的实体联系模型,E-R图提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。

E-R图通用的表示方式如下。

实体:用矩形框表示,将实体名写在框内。

属性:用椭圆框表示,将属性名写在框内,用连线将实体与属性连接。

联系:用菱形框表示,将联系名写在框内,用连线将相关的实体连接,并在连线旁标注联系类型(一对一“1:1”、一对多“1:n”、多对多“n:m”)。

图1 学生与班级的ER图

图2 学生与课程的ER图

关系模型

关系(Relation)用于反映元素之间的联系和性质。从用户角度来看,关系模型的数据结构是二维表,即通过二维表来组织数据。

一个关系对应一张二维表,表中的数据包括实体本身的数据和实体间的联系。

属性(Attribute):二维表中的列称为属性,每个属性都有一个属性名。

元组(Tuple):二维表中的每一行数据称为一个元组。

域(Domain):域是指属性的取值范围,例如,性别属性的域为男、女。关系模型的完整性

关系模型的完整性:为了保证数据库中数据的正确性和相容性,需要对关系模型进行完整性约束。完整性通常包括实体完整性、参照完整性和用户自定义完整性

实体完整性:要求关系中的主键不能重复,且不能取空值。空值是指不知道、不存在或无意义的值。

参照完整性:要求关系中的外键要么取空值,要么取被参照关系中的某个元组的主键值。

用户自定义完整性:是用户针对具体的应用环境定义的完整性约束条件,由DBMS检查用户自定义的完整性,比如用户名不允许重复等。1.1.5 关系运算

关系模型可以使用关系代数(Relational Algebra)来进行关系运算。

关系代数是一种抽象的查询语言,是研究关系模型的数学工具。

关系代数运算符主要包括并、差、交、笛卡尔积、选择、投影、连接和除

关系代数运算符

并(Union)、差(Difference)、交(Intersection)

并、差、交运算要求参与运算的两个关系具有相同数量的属性。运算结果是一个具有相同数量属性的新关系。

设有关系R和关系S

R∪S表示合并两个关系中的元组,数学描述:R∪S={t | t∈R ∨ t∈S}

R-S表示找出属于R但不属于S的元组,数学描述:R-S={t | t∈R ∧ t∉S }

R∩S表示找出既属于R又属于S的元组,数学描述:R∩S={t | t∈R ∧ t∈S}

∨表示逻辑运算符或,∧表示逻辑运算符与

笛卡尔积(Cartesian Product)设关系R有n个属性,关系S有m个属性

R和S的笛卡尔积:元组的前n个属性来自R,后m个属性来自S。

结果属性个数=n+m,结果元组的总个数=R和S中的元组的乘积。

数学描述:假设R(<1,2,…,>)、S(<1,2,…,>), ∧表示逻辑运算符与

R×S={<1,2,…,, 1,2,…,> │<1,2,…,>∈R ∧<1,2,…,>∈S}

选择(Selection)、投影(Projection)

选择是在一个关系中将满足条件的元组找出来,即水平方向筛选。

投影是在一个关系中去掉不需要的属性,保留需要的属性,即垂直方向筛选。

选择(σ)的数学描述:σcon R = { t | t∈R ∧ con(t)=true}

投影(π)的数学描述:π1,2,…, R={<t[1], t[2],…, t[]> | t∈R}

选择操作: σ学号=1(R) ,表示在关系R中查找学号为1的学生。

投影操作:π 学号,学生姓名(R) ,表示在关系R中查找学号和学生姓名。

连接(Join)

连接是在两个关系的笛卡尔积中选取属性间满足一定条件的元组。

笛卡尔积运算结果可能会有很多没有意义的元组,相比之下连接运算更为实用。

常用的连接方式有等值连接(Equi-Join)和自然连接(Natural Join)。

数学描述: (⋈S)¦θ=σ_(R[A]θS[B]) (R×S)

AθB是R⋈S连接的条件,θ∈{>、≥、<、≤、≠}

设有关系R和关系S,使用A和B分别表示R和S中数目相等且可比的属性组。

等值连接:是在R和S的笛卡尔积中选取A、B属性值相等的元组。

自然连接:是一种特殊的等值连接,要求R和S必须有相同的属性组,进行等值连接后再去除重复的属性组。

除(Division)

如果把笛卡尔积看作乘法运算,则除法是笛卡尔积的逆运算。

设有关系R和关系S,除运算需满足S的属性集是R属性集的真子集。

R÷S的结果是R属性集减去S属性集的结果。

例如,R(A,B,C,D)÷S(C,D)的结果由A和B两个属性构成。

数学描述:R÷S={t┤|t∈π_(−S) (R) ∧∀u∈S(tu∈R) }

R是学生选课表。

R÷S1表示查询学号为2的学生所选的课程。

R÷S2表示查询学号为2和3的学生共同选择的课程。

R÷S2的运算过程

R÷S2的具体运算步骤:

① 通过πR-S(R)取出R和S中只有R拥有的课程号属性,并对元组去重。

② 通过πR-S(R)×S计算笛卡尔积。

③ 通过(πR-S(R)×S)-R计算差集,设结果为A。

④ 通过πA-S(A)取出A中的课程号属性,设结果为B。

⑤ 通过πR-S(R) -B计算差集,得到的结果就是R÷S。

1.1.6 SQL语言

SQL:Structured Query Language,结构化查询语言。

SQL是一种数据库查询语言和程序设计语言。

SQL主要用于管理数据库中的数据。

举例:存取数据、查询数据、更新数据等。

SQL是由4部分组成的:

1. 数据定义语言(Data Definition Language,DDL)主要用于定义数据库、表等。例如,CREATE语句、ALTER语句、DROP语句等。

2. 数据操作语言(Data Manipulation Language,DML)

主要用于对数据库进行添加、修改和删除操作。

例如,INSERT语句、UPDATE语句、DELETE语句。

3. 数据查询语言(Data Query Language,DQL)主要用于查询数据。

例如,使用SELECT语句可以查询数据库中的一条数据或多条数据。

4. 数据控制语言(Data Control Language,DCL)主要用于控制用户的访问权限。

例如,GRANT语句、REVOKE语句、COMMIT语句、ROLLBACK语句。

SQL与三级模式:

外模式对应视图或部分基本表,概念模式对应基本表,内模式对应存储文件。

1.1.7 常见数据库产品

Oracle数据库管理系统

Oracle(甲骨文)公司开发。

在数据库领域一直处于领先地位,市场占有率高。

适用场景:适用于各类大、中、小、微机环境。

特性:良好的兼容性、可移植性、可伸缩性,性能高、安全性强。

与MySQL相比,Oracle虽然功能更加强大,但是软件的价格也比较高。

SQL Server数据库管理系统

Microsoft(微软)公司推出的关系型数据库管理系统。

适用场景:已广泛应用于电子商务、银行、保险、电力等行业。

特性:易操作、界面良好等特点深受广大用户喜爱,早期版本只能在Windows平台上运行,而新版本的SQL Server 2017已经支持Windows和Linux平台。

DB2数据库管理系统

IBM公司研制的关系型数据库管理系统。

适用平台:主要应用于UNIX、z/OS、Windows Server等平台。

特性:具有较好的可伸缩性,可支持从大型计算机到单用户环境,提供了高层次的数据利用性、完整性、安全性和可恢复性,从小规模到大规模应用程序的执行能力,适合于海量数据的存储,但DB2的操作比较复杂。

MySQL数据库管理系统

瑞典MySQL AB公司(先后被Sun和Oracle公司收购)开发。

适用平台:支持在UNIX、Linux、Mac OS和Windows等平台上使用。

特性:体积小、速度快,使用更加方便、快捷,并且开放源代码,开发人员可根据需求自由进行修改。

采用社区版和商业版的双授权政策,兼顾免费和付费场景,软件使用成本低。

在Web开发领域,MySQL占据着举足轻重的地位。

非关系型数据库(Not Only SQL,NoSQL)的出现则弥补了关系型数据库的不足。

特点:在于数据模型比较简单,灵活性强,性能非常高。

常见的非关系型数据库:有Redis、MongoDB。

Redis是一个高性能的非关系型数据库产品。

采用key-value的方式存储数据。

适合用于内容缓存和处理大量数据的高负载访问,查询速度非常快,支持持久化操作、主从同步等。

Redis支持的数据类型包括string、hash(字典)、list(双向链表)、set和zset(有序集合)。

MongoDB是一个介于关系型数据库和非关系型

数据库之间的产品。

数据结构非常松散,类似JSON的BSON格式,

可以存储比较复杂的数据类型。

特点是开源、高性能、易部署、易使用、查询

语言强大,支持对数据建立索引,储数据非常方便。

适用于大数据量、高并发、弱事务的互联网应用。

MongoDB完全可满足Web 2.0和移动互联网的数据存储需求。

1.2 MySQL安装1.2.1 获取MySQL

官网地址:

MySQL产品:企业版(Enterprise)和社区版(Community)。

社区版是通过GPL协议授权的开源软件,可以免费使用。

企业版是需要收费的商业软件。

MySQL版本:5.5、5.6、5.7和8.0(最新版本)。

打包版本:MSI(安装版)和ZIP(压缩包)两种打包的版本。

我们选择5.7的ZIP版本

下载地址:

1.2.2 安装MySQL安装MySQL

Step1:解压mysql-5.7.22-win32.zip到C:\mysql5.7目录。

Step2:安装MySQL,即将MySQL安装为Windows系统的服务。

注:如何在命令模式下切换到MySQL的bin目录?1.2.3 配置MySQL创建MySQL配置文件配置MySQL

1.创建数据库文件目录C:\mysql5.7\data

2.初始化数据库:

mysqld --initialize-insecure

--initialize:表示初始化数据库,

-insecure:表示忽略安全性,默认用户root的密码为空。

省略-insecure时,MySQL将自动为默认用户“root”生成一个随机的复杂密码。

1.2.4 管理MySQL服务

MySQL安装完成后,需要启动服务进程,否则客户端无法连接数据库。

1.2.5 用户登录与设置密码

登录命令:

mysql -u root

mysql表示MySQL提供的命令行客户端工具mysql.exe,用于访问数据库。

-u root表示以root用户的身份登录,-u和root之间的空格可以省略。

登录成功后显示如下界面:

注意:退出用户的登录:直接使用exit或quit命令

设置密码:为了保护数据库的安全,需要为登录MySQL服务器的用户设置密码。

设置密码语句:

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

取消密码语句:

ALTER USER 'root'@'localhost' IDENTIFIED BY '';

设置密码后登录

显示密码:

mysql -uroot -p123456

隐藏密码:

mysql -uroot –p,按回车键,会提示输入密码。

1.2.6 MySQL客户端的相关命令1.3 常用图形化工具

MySQL命令行的操作不够直观,而且容易出错,为了更加方便的操作MySQL,可以使用一些图形化工具,比如:SQLyog和Navicat

1.3.1 SQLyog

Navicat是一种图形化数据库管理工具,主要用于管理MySQL数据库。有社区版可以免费使用。

下载链接:

1.3.2 Navicat

Navicat是一种图形化数据库管理工具,支持的数据库有:MySQL、MariaDB、SQL Server、SQLite、Oracle、PostgreSQL等。

下载链接:

1.4 总结

本章主要讲了数据库的基础只是、MySQL的安装与配置。

标签: #mysql除法