MySQL学习

MySQL学习

1.对于服务器的分类

在这里插入图片描述

2.关于MySQL

数据库,通常是一个或一组文件,保存了一些符合特定规格的数据,数据库对应的英语单词是DataBase,简称:DB,数据库软件称为数据库管理系统(DBMS),全称为DataBase Management System,如:Oracle、SQL Server、MySql、Sybase、informix、DB2、interbase、PostgreSql 。

MySQL不仅是最流行的开源数据库,而且是业界成长最快的数据库,每天有超过7万次的下载量,其应用范围从大型企业到专有的嵌入应用系统。

对于MySQL的使用可以是使用dos窗口命令来打开,并直接在dos窗口上直接对于MySQL数据库内部表的创建和数据的查询都可以直接进行相关的名利来执行,这些dos窗口的命令在讲义内容中有,但后续的学习中对于数据库结构上的变化(数据表的操作)是用的第三方软件Navicat for MySQL来进行创建新的表格或者改变表格结构,在这部分的学习中要重点掌握对表的查询语句,在后续学习中对于dao层(持久层)需要进行的操作便是SQL语句的描写

3.MySQL的安装

安装的路径和内容位于C:\Users\北城\Desktop\java讲义\MySQL讲义中,只需要按步骤来一步步执行就可以

4.SQL语言

QL(Structured Query Language,结构化查询语言)对数据库进行查询与操作的语言. SQL不是某个特定数据库专用商的语言,几乎所有的数据库管理系统都支持SQL
SQL语言包括4部分:
数据定义语言DDL, 包括CREATE,ALTER,DROP等语句
数据操作语言DML, 包括INSERT,UPDATE,DELETE等语句
数据查询语言DQL,包括SELECT语句
数据控制语言DCL, GRANT,REVOKE,COMMIT,ROLLBACK等语句

5.表约束

数据的完整性是指数据的准确性与一致性, 完整性检查就是检查数据的准确性与一致性. 在数据库中,提供了一套约束机制确保数据的完整性,这些约束包括:
主键约束,保证记录的唯一性
外键约束,约束的字段为表的外键,外键一般是其他表中是主键
非空约束,约束字段的值不为NULL
唯一约束,约束字段的值是唯一 的
默认值约束,用来设置字段的默认值

在约束中,比较需要注意的就是主键约束和外键约束这两种。

主键约束:主键,也称为主码, 要求主键列的数据必须是唯一的,并且不能为NULL. 通过主键约束可以唯一的标识一条记录. 也可以结合外键定义不同数据表之间的关系, 通过主键约束可以提高数据的查询速度. 主键与记录是一对一关系, 主键可以为单字段主键,也可以为多字段联合主键. 在实际开发中,经常单独创建一个自动增长列作为主键。

外键约束:外键用来在两个表之间建立关联,一个表的外键必须是另外一个表的主键, 外键约束主要作用是保证数据引用的完整性,也叫参考完整性, 定义外键后,不允许删除另外一个表的关联行。、

6.数据的插入、更新与删除

6.1 插入数据

向数据库表中插入新的数据,可以插入完整的记录, 也可以插入一部分, 插入多条记录,插入另外一个查询结果
使用的SQL语句格式为:INSERT INTO 表名(字段列表) VALUES(值列表);
(在mysql的语句中,不严格区分大小写)

6.2 更新数据

使用UPDATE 语句更新表中的记录
使用格式:UPDATE 表名 SET 字段名 = 值 WHERE 条件

6.3 删除数据

使用DELETE 语句删除表中的记录
使用格式:DELETE FROM 表名 where 条件

7. 数据的查询

7.1 查询命令的本质

查询命令实际上都是在内存中生成一个临时表在每一个查询命令在执行的时候,实际上操作的都是上一个查询命令生成的临时表
在当前查询命令执行完毕后,MySql服务器自动将上一个查询命令生成的临时表从内存中销毁;导致用户最终看到的临时表只是查询语句中,最后一个查询生成的临时表

7.2七个查询指令![具体的查询指令和相应作用

具体的指令和对应作用

7.3 where 命令

在这里插入图片描述

7.4 group by 命令

在这里插入图片描述
分组函数:用于对临时表指定字段下【所有内容】进行统计的函数:max、min、sum、avg、count
count函数是返回指定字段下内容不等于null的数据个数
count(*)是统计临时表下所有数据行个数,不考虑数据行是否存在null

7.5 order by 命令

order by中asc(升序) desc(降序)来表示升序和降序 后面可以跟字段名,也可以跟select生成的临时表中的字段名排在第几列 例如order by 4 desc,按第四列字段名进行排序

7.6 having 命令

在这里插入图片描述

7.7 limit 命令

在这里插入图片描述

8.多表查询

多表查询:将多张表合并到同一个临时表,然后使用六个查询命令根据需要进行定位分组排序等操作,最终为客户提供需要的数据的一个过程
当前所接触到的对应的多表查询中(初学阶段)应用不是很多,但后续的项目中,对于数据库的操作绝大多数应当都是多表查询,并进行相关的联合查询操作,同时进行多表来联合查询的,在多表联查的过程中还会出现数据统计量翻倍和出现脏数据的问题,好像是叫一种数学学科上的现象,需要注意。

8.1 连接方式

多个表之间有多种连接方式,包括内连接和外连接,外连接又可以分为左、右外连接
外连接过滤方案就是指的左右连接,加上left right 以哪个表来为主,即便没有内连接成功,也依然后将数据拿出来作为一行合法数据存入临时表,来选择出来

8.2 join 命令

在这里插入图片描述
join命令生成的临时表必然存在脏数据,这些脏数据会对后续的操作带来很大的影响,从而必须要将合法数据行与脏数据行进行剥离,这个行为称之为连接查询过滤方案
在这里插入图片描述

8.3 子查询

在这里插入图片描述
子查询就是在where的条件里面写的是另外一个查询,相当于以另外一个查询作为该当前查询的条件

9. 事务

在这里插入图片描述
事务可以保证多个操作原子性,要么全成功,要么全失败。对于数据库来说事务保证批量的DML要么全成功,要么全失败。
在事务部分还提及到了自动提交模式和事务的隔离级别这些相关的知识点,但研究的不是很深,需要后序在完成学习然后继续加以整理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值