认识Mysql

7

一、数据库的好处

1、可以持久化数据到本地
2、结构化查询

二、数据库的常见概念 ★

1、DB:数据库,存储数据的容器
2、DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB
3、SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据库软件通用的语言

三、数据库存储数据的特点

1、数据存放到表中,然后表再放到库中
2、一个库中可以有多张表,每张表具有唯一的表名用来标识自己
3、表中有一个或多个列,列又称为“字段”,相当于java中“属性”
4、表中的每一行数据,相当于java中“对象”

四、常见的数据库管理系统

五、MySQL介绍

MySQL服务的启动和停止

方式一:通过命令行

  • net start 服务名
  • net stop 服务名

方式二:计算机——右击——管理——服务

MySQL服务端的登录和退出

登录:mysql 【-h 主机名 -P 端口号】 -u 用户名 -p密码

退出:exit或ctrl+C

基本语法

MySQL常见命令介绍

查看mysql中有哪些个数据库
show databases;

查询数据表
show tables from 数据库名;;

查询当前所在数据库
select database();

新建一个数据库
create database 数据库名;

选择一个数据库
use 数据库名称;
新建一个数据表
create table test(
      ......
);

查看表的结构
desc 表名;

查看表中的所有记录
select * from 表名;

向表中插入记录
insert into 表名(列名列表) values(列对应的值的列表);
注意:插入varchar或date型的数据要用单引号引起来

修改记录
update 表名 set 列1 = 列1的值, 列2 = 列2的值 where ..

删除记录
delete from 表名 where ...

删除数据表
drop table 表名;

获取mysql版本
select version();

查看MySQL中所有数据库

show databases;

SQL语言的分类

概念:SQL结构化查询语言。用于存取数据,更新,查询和管理关系数据库系统的结构化查询语言。

经验:通常执行堆数据库的“增删查改”,CRUD。

  • DQL(Data Query Language):数据查询语言,用于检索数据库中的数据,主要是SELECT语句;
  • DML(Data Manipulation Language):数据操纵语言,用于改变数据库中的数据,主要包括INSERT、UPDATE和DELETE语句;
  • DDL(Data Definition Language):数据定义语言,用于库和表的创建、修改、删除。主要包括CREATE、DROP、ALTER语句;
  • DCL(Data Control Language):数据控制语言,用于定义用户的访问权限和安全级别。主要包括GRANT和REVOKE语句;
  • TCL(Transaction Control Language):事务控制语言,用于维护数据的一致性,包括COMMIT、ROLLBACK和SAVEPOINT语句。

六、两类数据模型

  • 第一类:概念模型(信息模型),以用户的观点对数据进行建模,创建数据库。
  • 第二类:
    • 逻辑模型(包含多种),以计算机系统的观点对数据建模,用于数据库管理系统的实现。
    • 物理模型:对数据的最底层的抽象。

数据模型 = 数据结构+数据操作+数据的完整性约束条件

七、数据库系统的三级模式与二级映像

由外模式、模式和内模式构成:

  • 外模式:是数据库用户能够看到的局部数据的逻辑结构和特征的描述,与具体的应用有关。一个数据库可以有多个外模式。
  • 模式:是数据库全部数据的逻辑结构和特征的描述,一个数据库只有一个模式。
  • 内模式:一个数据库只有一个内模式,是数据物理结构和存储方式的描述。

二级映像:

  • 外模式\模式映像:当模式改变时,调整外模式与模式的映像,可以使外模式不改变。从而使应用程序不用修改,保证了数据和程序的逻辑独立性。
  • 模式与内模式映像:当数据库的存储结构改变时,调整模式与内模式的映像,可以使外模式不改变,从而使应用程序不用修改,保证了数据和程序的物理独立性。

八、关系型数据库

即支持关系模型的的数据库系统。有上可知模型都是由三个部分组成 数据的结构、数据的操作和关系完整性约束。

关系模型的数据结构

用户看来就是一张扁平的二维表。

关系模型的数据操作

  • 笛卡尔积:两个表的乘机(第一个表每行乘以第二个表的每一列)
  • 选择:从行的角度
  • 投影:从列的角度、取消重复的行。
  • 连接:从两个关系的笛卡尔积中选取属性见满足一定条件的元组
    • 等值连接:两个表的笛卡尔积中选取表1的某个属性值与表2的某个属性值相等的行。
    • 非等值连接:两个表的笛卡尔积中选取表1的某个属性值与表2的某个属性值不相等的行。
    • 自然连接:一种特殊的等值连接,要求比较的两个属性名称相同,并把结果中重复的属性列去除。
    • 外连接:在自然连接中由于两个属性在值不同会去除改行,如果我们要保留并且将没有值的属性填上NULL,就是外连接。
      • 左外连接:以左表为主表,只保留左表的关系。
      • 右外连接:以右表为主表,只保留右表的关系。
  • 除运算:表R除以表S结果为表T,则T中包含所有在R但不再S中的属性及其值,见下面例题
[collapse id="uuid-timestamp-1611841281131" btn_type="btn-primary" btn_label="R➗S题解"]

如何计算R➗S呢,首先我们引进“象集“的概念,具体意义看下面的陈述

关系R和关系S拥有共同的属性B,C,R➗S得到的属性值就是关系R包含而关系S不包含的属性的,即A 属性

在R关系中A属性的值可以取{a1,a2,a3,a4}

a1对应的象集为{(b1,c2),(b2,c1),(b2.c3)}

a2 对应的象集为{(b3,c7),(b2,c3)}

a3对应的象集为{(b4,c6)}

a4 值对应的象集为{(b6,c6)}

关系S在B, ,C上的投影为{(b1,c2),(b2,c1),(b2,c3)}

只有a1 的值对应象集包含关系S的投影集,所以只有a1包含在A属性中

所以R➗S为  a1

[/collapse]

关系模型的三类完整性约束

  • 实体完整性:主码的属性值不能取空。
  • 参照完整性:举例 学生表中专业号是学生表的外码,与专业表的主码专业号对应,则学生表的专业号上的值必须:
    • 取空值
    • 等于某个专业表主码(专业号)值
  • 用户定义的完整性:针对某一具体关系数据库的约束条件。反映具体应用的数据所要满足的要求。

实体与参照完整性是关系模型必须要满足的,由关系系统自动支持。

九、数据库设计三范式

  • 表中的所有字段都是不能再分的
  • 标准的二维表,表中必须存在业务主键,并且非主键依赖于全部业务主键。
    • 在第一条的基础上。
    • 业务主键:可以唯一标识出每一行数据的列或是列的组合。
  • 表中的非主键列之间不能相互依赖,即表中不能套表。
[tip type="worning" ]

不断完善补充。

[/tip]