MySQL数据库--基础篇(学习笔记)

一,MySQL概述

MySQL官网:

https://dev.mysql.com/download/mysql/

数据库的启动和停止方式:

启动:net start mysql80

停止:net stop mysql80

MySQL客户端连接

关系型数据库

DBMS:数据库管理系统

在一个是数据库服务器中可以创建多个数据库,在一个数据库中可以创建多张表

二,基础--SQL

SQL语句不区分大小写

通用语法

分类

DDL(数据定义)

数据库的操作

表结构的操作

数值类型

字符串类型

日期类型

表的修改操作

添加字段

修改数据类型

修改字段名和字段类型

删除字段

删除表

仅删除表的数据

DML(数据操作)

添加数据

修改数据

删除数据

DQL(数据查询)

基本查询

条件查询

聚合查询

注意:null不参与任何聚合函数的运算.

分组查询

代码例子:

排序查询

语法:

排序方式:

注意:多字段排序时,只有当第一个字段相同,才会根据第二个字段排序

分页查询

DQL语句的执行顺序

DCL(数据控制)

用户管理

权限控制

常用的权限:

1,查询目前有的权限:

2,授予目标用户权限:

3,撤销目标用户权限:

注意:

1,多个权限之间使用逗号分隔;

2,授权时,数据库名和表名可以使用 * 进行通配,代表所有。

三,基础--函数

字符串函数

书写格式:

数值函数

日期函数

以上函数默认是返回当前系统的日期和时间

as的作用是将为计算后的天数附上一个变量名;

流程控制函数

相关代码实现:

四,基础--约束

概述

约束的相关演示

相应代码:

外键约束

建立外界关联

外键的删除与更新行为

语法:(使用CASCADE时)

五,基础--多表查询

多表关系介绍

一对多:

多对多:

相应案例(学生表,课程表和中间表)

中间表的创建:

一对一:

相关代码:

 多表查询概述

概述

想要消除笛卡尔积,可以运用以下代码:(用where来限定条件

多表查询的分类:

内连接
隐式内连接

语法:

代码:

显式内连接

语法:

代码:

在显式查询中inner可以省略

外连接
左外连接

语法:

相关代码:

在这串代码中 outer 可以省略

右外连接

语法:

相关代码:

当然,只将两表的书写顺序调换也能实现左右外连接转换的效果,如以下代码:

其效果与上一条代码的效果相同。

自连接

语法

相关代码:

建议:将a和b看作是两张表

联合查询

相关代码:

注意:两次查询的查询字段必须一样。

错误示范如下:

查询字段不同会导致两次查询后的表的列数字段类型不一样,无法合并。

另外,合并方式有unionunion all两种,其中union会对合并数据去重union all不会

子查询

标量子查询

上述代码可以写成:

例子2:

可以写成:

列子查询

例子:

in

all

and和some

行子查询

相关代码例子:

表子查询

相关代码:

六,基础--事务

事务简介

事务操作

示例:

如果这套程序中间出现错误或异常(如在2与3之间加上一段无法编译的代码然后运行),可能导致’张三‘扣钱’李四‘不加钱的情况

解决方法一:

为了避免这种情况,可以运行下面第二条代码将事物的提交方式改成手动提交。(若想改回自动提交则可以将autocommit的值改成1

设置为手动提交后,执行任何DML语句时,都只会临时修改表中数据,不会上传到数据库中。

当程序运行成功时,我们运行commit,将数据提交到数据库,当程序运行报错时,我们运行rollback,将数据回滚

解决方法二:

将开启事务的代码放在事务代码的头部,这样程序会默认提交方式为手动提交

将开启事务代码和事务代码一起运行,如果报错则手动执行回滚代码,无则手动执行提交代码。

事务四大特性

并发事务问题

事务隔离级别

用于解决并发事务所引起的问题

从上到下,隔离级别逐渐升高,级别越高数据保护能力越强但性能越差

查看和设置隔离级别:

注意:使用session时,设置结果只对当前客户端有效,使用global时,对所有客户端都有效。

相关代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值