文摘序言:
一,MYsql数据库基本概述---数据模型
二,mysql数据库-DDL(数据库操作,图形化工具,表结构设计,常见的三种数据类型等知识)
三,mysql数据库-DML(添加,修改,删除,数据语法)
四,mysql数据库-DQL(基本查询,条件查询,聚合函数,分组查询,排序查询,分页查询)
五,mysql数据库-多表设计(一对一,一对多,多对多,多表查询-概述,内连接,外连接,子查询)
六,mysql数据库-事务(事务介绍与操作,四大特性)
七,mysql数据库-索引(索引介绍,结构,操作语法)
mysql数据库所涉及的知识颇多且繁杂,希望各位看官沉下心去看特别是正在学习的也或者是对于mysql数据库的知识已经忘完了,可以光临老狗本章来汲取汲取关于mysql数据库方面的知识。
话不多说!老样子各位看官,速速跟随老狗上车!!!
一,MYsql数据库概述-数据模型:
a.MYSQL1.Mysql数据库:DataBase(“DB”),是存储和管理数据的仓库。
数据库管理系统:Database Managerment System 操纵和管理数据库的大型软件。
Sql: Structured Query language 操作关系型数据库,他定义了一套操作关系型数据库的统一标准。
b.Mysql数据模型-非关系型数据库(RDBMS):建立在数据模型的基础上,由多张表相互连接的二维表组成的数据库。
特点:a.使用表结构存储数据,格式统一,以便于维护。
b.使用sql语言来编程操作,标准统一,使用方便,便于复杂查询。
c.Mysql通用语法:
- sql语句可以单行或多行书写,以分号结尾。 show databases;
- sql语句可以使用空格/缩进来增强语句的可读性。 Show dtabases;
- mysql数据库的sql语句不分大小写。 SHOW DATABASES;
注释:
- 单行注释:--注释内容或#注释内容(mysql特有)。 --show databases;
- 多行注释:/*注释内容*/ /*show database;*/
d.Sql语句分为四大类:a.DDL(Data definition Language) 数据定义语言,用来定义数据库对象(数据库,表,字段名)。
b.DML(Data Manipulation language) 数据操作语言,用来对数据库表里数据进行增删改.
c.DQL(Data Query Language)数据查询语言,用来查询数据库表的记录。
d.DCL(Data Control Languagey)数据控制语言,用来控制数据库用户,数据库的访问权限。
二,mysql数据库-DDL(数据库操作,图形化工具,表结构设计,常见的三种数据类型等知识)
MYSQL-DDL数据库操作:操作命令:查询show databases/使用use数据库名
创建数据库:creat databases/删除数据库:drop databases【if exists】+数据库名
MYSQL-DDL图形化工具:使用cmd黑窗口来操作mqsql语句较繁琐且有些语句记不住还无历史记录。这个时候需要图形化工具来操作,navicat数据库操作软件,官网网址:https://www.jetbrains.com/zh-cn/datagrip/
MYSQL-DDL数据库操作(创建,查询,修改,删除):表操作
基本语法create 表名(
字段1 字段类型【约束】【comment字段1注释】,……..
字段n字段类型 【约束】【comment字段n注释】
)【comment表注释】;
约束概念:约束是作用域表中字段上的规则,用于限制在表中的数据。
目的:保证数据库中数据的正确性,有效性和完整性。
约束: 描述 关键字
非空约束 限制字段值不能为null not null
唯一主键 保证字段的所有数据都是唯一 不重复的 unique
主键约束 主键是一行数据的唯一标识,要求非空且唯一 primary key(auto_increment自增)
默认约束 保存数据时,如果未指定该字段值,则采用默认值 default
外键约束 让两张表的数据建立连接,保证数据的一致性和完整性 foreign key
Mysql常见的三种 数据类型:数值类型,字符串类型,日期时间类型

DDL(表操作)查询: a. 查询当前数据表:show tables.
b.查询表结构:desc 表名;
c.查询建表语句:show create table 表名;
修改:a.添加字段:alter table表名 add 字段名 类型(长度)【comment 注释】【约束】;
b.修改字段类型:alter table 表名 modify 字段名 新数据类型(长度);
c.修改字段名和字段类型:alter table 表名change 旧字段名 新字段名 类型(长度)【comment注释】【约束】;
d.删除字段:alter table表名 drop column字段名;
e.修改表名:rename table 表名 to 新表明。
三,mysql数据库-DML(添加,修改,删除,数据语法)
数据库DML-添加数据(INSERT)(“Data Manipulation language”数据操作语言):用来对数据库中表的数据记录进行增,删,改操作。
Insert语法:a.指定字段添加数据:insert into表名(字段名1,字段名2)values(值1,值2) ; b.全部字段添加数据:insert into表名values(值1,值2………);
c.批量添加数据(指定字段):insert into表名(字段名1,字段名2)values(值1,值2),(值1,值2);
d.批量添加数据(全部字段):insert into表名values (值1,值2……..),(值1,值2);
注意事项:1.插入数据时,指定的字段顺序需要与值的顺序是一一对应的。
2.字符串和日期类型数据应该包含在引导中。
3.插入的数据大小,应该在字段的规定范围内。
数据库DML-修改数据(UODATE):update语法:修改数据;update 表名 set 字段1=值1,字段2=值2,…………(where条件);
数据库DML-删除数据(DELETE):delete语法:delete from 表名[where条件]。
四,mysql数据库-DQL(基本查询,条件查询,聚合函数,分组查询,排序查询,分页查询)
DQL(Data Query language)(数据查询语言):用来查询数据库表中的记录。
关键字:SELECT 字段列表
From 表名列表
Where 条件列表
Group by 分组字段列表
Hanving 分组后条件列表
Order by 排序字段列表
Limit 分页参数
条件查询:select 字段列表 from 表名 where条件列表
- 比较运算符和功能。
比较运算符 功能
> 大于
>= 大于等于
< 小于
<= 小于等于
<> 或 != 不等于
Between……and…… 在某个范围之内(含最小,最大值)
In(……) 在in之后列表中的值,多选一
Like 占位符 模拟匹配(_匹配单个字符,%匹配任意字符)
Is null 是null
- 逻辑运算符和功能。
逻辑运算符 功能
And 或 && 并且(多个条件同时成立)
or 或 || 或者(多个条件任意一个成立)
not 或 ! 非,不是
DQL---聚合函数
聚合函数:将一列数据作为一个整体,进行纵向计算。
语法:select 聚合函数(字段列表)from 表名。
函数 功能
Count 统计数量(三种统计方式count(字段),count(常量),count,(*))
Max 最大值
Min 最小值
Avg 平均数
Sum 求和
函数:if(表达式,tvalue,fvalue):当表达式为true时,取值tvalue;当表达式为false时,取值fvalue.
Case:xanse ,expr,when vatlue then[when value2 then then value2…][else result]end
DQL---分组查询语法:
分组查询:select 字段列表 from表名列表[where条件] group by 分组字段名[hanving分组后过滤条件]。
DQL---排序查询语法:
排序查询:select字段列表 from表明列表[where条件列表][group by分组字段]order by字段1,字段2,排序方式1,排序方式2…..;
注意:a.ASC 升序。
- desc降序。
DQL---分页查询语法:
分页查询:select 字段列表 from表名列表 limit起始索引,查询记录数。
五,mysql数据库-多表设计(一对一,一对多,多对多,多表查询-概述,内连接,外连接,子查询)
- 需求:根据 页面原型 及 需求文档,完成部门及员工模块的表结构设计。
- 多表问题分析---现象:部门数据可以直接删除,然而还有部分员工归属与该部门下,此时就出现了数据的不完整,不一致问题。
外键语法:--创建表时指定
---Creat table表名{
字段名 数据类型,
………
[constraint] [外键名称] foreign Key(外键字段名) references 主表(字段名)
};
---建完表后,添加外键。
alter table 表名 add constraint 外键名称 foreign Key(外键字段名) references 主表(字段名)。
外键约束(物理外键)概念:使用foreign Key 定义外键关联另外一张表。
缺点:a.影响增,删,改的效率(需要检查外键关系)。
b.仅用于单节点数据库,不适用与分布式,集群场景。
c.容易引发数据库的死锁问题,消耗性能。
注意!!!:在现在的项目中物理外键已经用的很少了,但在大型项目中是命令禁止的。
MYSQL---多表设计---一对一:
案列:用户与身份证信息的关系。
关系:一对一关系,多用于单表拆分,将一张表的基础字段放在一张表中,其它字段放在另一张表中,以提升操作效率。
实现:在任意一方加入外键,关联另一方的主键设置为外键唯一的(UNIQUE)
MYSQL---多表设计---多对多
案列:学生与课程的关系
关系:一个学生可以选修多门课程,一门课程也可以供多个学生选择。
实现:建立三张表中间表,中间表至少包含两个外键,分别关联两方主键。
Mysql---多表查询概述:
多表查询:指从多张表中查询数据。
笛卡尔积:笛卡尔乘积是指在数学中,两个集合(A集合 和 B集合)的所有组合情况。(在多表查询时,需要消除无效的笛卡尔积)
分类---连接查询:内连接:相当于A,B交集部分的数据。
内连接语法:select 字段列表 from 表1,表2 where条件列表………;
显示内连接:select 字段列表 from 表1[inner]join表2 on连接条件……;
外连接:左外连接:查询左表所有数据(包括两张交集部分数据)
右外连接:查询右表所有数据(包括两张交集部分数据)
外连接语法---左外连接:select 字段列表 from 表1 left [outer] join表2 on 连接条件 右外连接:select 字段列表 from 表1 right[outer]join表2 on 连接条件。
子查询:SQL语句中嵌套select语句,称为嵌套查询,又称子查询。
形式:select * from t1 where column1=(select column1 from t2 …);
子查询外部的语句可以使insert/update/delete/select的任何一个,最常见的是select。
标量子查询:子查询返回的结果为单个值。(返回结果可以是数字,字符,日期等最简单的形式)常用操作符:=,<>,>,>=,< <=.
列子查询:子查询返回的结果为一列(可以是多行)。
常用的操作符:in,not in等。
行子查询:子查询返回的结果为一行(可以是多列)。
常用的操作符:=,<>,in,not in
表子查询:子查询返回的结果为多行多列,常作为临时表。
常用的操作符:in。
六,mysql数据库-事务(事务介绍与操作,四大特性)
事务---四大特性:原子性,一致性,隔离性,持久性
原子性(Atomcity):事务是不可分割的最小单元,要么全部成功,要么全部失败。
一致性(Consistency):事务完成时,必须使所有数据都保持一致状态。
隔离性(Lsolation):数据库系统提供的隔离机制,保证事务在不收外部并发操作影响下的独立环境下运行。
持久性(Durability):事务一旦提交或回滚,他对数据库中的数据改变就是永久的
七,mysql数据库-索引(索引介绍,结构,操作语法)
MYSQL---索引(index):是帮助数据库高效获取数据的数据结构。
优点:a.提高数据查询效率,降低io成本。
b.通过索引对列对数对数据排序,降低数据排序的成本,降低 CPU消化。
缺点:a.索引会占用存储空间。
b.索引大大提高了查询效率,同时却也降低了insert,update,delete的效率。
MYSQL数据库支持的索引结构有很多比如:Hash索引,B+Tree索引,Full-Text索引等。基本默认B+Tree结构组织的索引。
(二叉搜索树,红黑树)
B+Tree(多路平衡搜索树)如下图:

MYSQL---索引操作语法:a.创建索引:creat[unique]index索引名on表名(字段名,….);
b.查看索引:show index from表名;
c.删除索引:drop index 索引名 on 表名;
注意事项:a.主键字段,在建表时,会自动创建主键索引。
b.添加唯一约束建时,数据库实际上会添加唯一索引。
以上是mysql数据整体的知识已经结束了,各位看官如有不懂有疑问可以欢迎随时提出来在评论区发标出来我们一块探讨!!!尊重各位大佬光临对于本片mysql数据库文章哪有不对的少标注的知识点一定要给老狗指出来,让我虚心求教请教。
尊重原创,尊重知识,敬畏和学习知识!!!!
1226

被折叠的 条评论
为什么被折叠?



