多表查询是从多张表中一次性的查询出我们想要的数据
事务
概述
数据库的事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令。
事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败。
事务是一个不可分割的工作逻辑单元。
这些概念不好理解,接下来举例说明,如下图有一张表

约束

上面表中可以看到表中数据存在一些问题:
-
id 列一般是用标示数据的唯一性的,而上述表中的 id 为 1 的有三条数据,并且
马花疼没有 id 进行标示 -
柳白这条数据的 age 列的数据是 3000,而人也不可能活到 3000 岁 -
马运这条数据的 math 数学成绩是-5,而数学学得再不好也不可能出现负分 -
柳青这条数据的 english 列(英文成绩)值为 null,而成绩即使没考也得是 0 分
DDL:操作数据库
我们先来学习 DDL 来操作数据库。而操作数据库主要就是对数据库的增删查操作。
查询
查询所有的数据库
SHOW DATABASES;
DDL:操作表
操作表也就是对表进行增(Create)删(Retrieve)改(Update)查(Delete)。
查询表
- 查询当前数据库下所有表名称
我们创建的数据库中没有任何表,因此我们进入 mysql 自带的 mysql 数据库,执行上述语句查看

数据库设计
数据库设计简介
-
软件的研发步骤

image-20220910095431929 -
数据库设计概念
- 数据库设计就是根据业务系统的具体需求,结合我们所选用的 DBMS,为这个业务系统构造出最优的数据存储模型。
- 建立数据库中的表结构以及表与表之间的关联关系的过程。
- 有哪些表?表里有哪些字段?表和表之间有什么关系?
-
数据库设计的步骤
-
需求分析(数据是什么? 数据具有哪些属性? 数据与属性的特点是什么)
-
逻辑分析(通过 ER 图对数据库进行逻辑建模,不需要考虑我们所选用的数据库管理系统)
如下图就是 ER(Entity/Relation)图:

image-20220910095440504 -
物理设计(根据数据库自身的特点把逻辑设计转换为物理设计)
-
维护设计(1.对新的需求进行建表;2.表优化)
-
-
表关系
-
一对一
- 如:用户 和 用户详情
- 一对一关系多用于表拆分,将一个实体中经常使用的字段放一张表,不经常使用的字段放另一张表,用于提升查询性能

image-20220910095444549 上图左边是用户的详细信息,而我们真正在展示用户信息时最长用的则是上图右边红框所示,所以我们会将详细信息查分成两周那个表。
-
一对多
-
如:部门 和 员工
-
一个部门对应多个员工,一个员工对应一个部门。如下图:

image-20220910095448786
-
-
多对多
-
如:商品 和 订单
-
一个商品对应多个订单,一个订单包含多个商品。如下图:

image-20220910095451925
-
-
DML 主要是对数据进行增(insert)删(delete)改(update)操作。
添加数据
给指定列添加数据
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);
数据库相关概念
今日目标:
- 完成 MySQL 的安装及登陆基本操作
- 能通过 SQL 对数据库进行 CRUD
- 能通过 SQL 对表进行 CRUD
- 能通过 SQL 对数据进行 CRUD
以前我们做系统,数据持久化的存储采用的是文件存储。存储到文件中可以达到系统关闭数据不会丢失的效果,当然文件存储也有它的弊端。
假设在文件中存储以下的数据:
姓名 年龄 性别 住址
张三 23 男 北京西三旗
李四 24 女 北京西二旗
王五 25 男 西安软件新城
MySQL 安装
MySQL 安装
安装环境:Win10 64 位 > 软件版本:MySQL 5.7.24 解压版
下载
SQL 概述
了解了数据模型后,接下来我们就学习 SQL 语句,通过 SQL 语句对数据库、表、数据进行增删改查操作。
SQL 简介
- 英文:Structured Query Language,简称 SQL
- 结构化查询语言,一门操作关系型数据库的编程语言
- 定义操作所有关系型数据库的统一标准
- 对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”
通用语法
-
SQL 语句可以单行或多行书写,以分号结尾。

image-20220910090836346 如上,以分号结尾才是一个完整的 sql 语句。
-
MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
同样的一条 sql 语句写成下图的样子,一样可以运行处结果。

image-20220910090831935 -
注释
-
单行注释: -- 注释内容 或 #注释内容(MySQL 特有)

image-20220910090829243
GFDWQ 111111111111111111111注意:使用-- 添加单行注释时,--后面一定要加空格,而#没有要求。
-
多行注释: /* 注释 */
-