MySQL基础篇2

三、函数

3.1 字符串函数

在这里插入图片描述

3.2 数值函数

在这里插入图片描述

3.3 日期函数

在这里插入图片描述

3.4 流程函数

在这里插入图片描述

四、约束

在这里插入图片描述
在这里插入图片描述

五、多表查询

5.1 多表查询的概述

在这里插入图片描述
在这里插入图片描述

5.2 连接查询 - 内连接
  • 内连接查询语法:
    • 隐式内连接
      select 字段列表 from 表1,表2 where 条件....;
      
    • 显式内连接
      select 字段列表 from 表1 [ inner ] join 表2 on 连接条件....;
      
    • 内连接查询的是两张表交集的部分
5.3 连接查询 - 外连接
  • 外连接查询语法:

    • 左外连接
    select 字段列表 from 表1 left [outer] join 表2 on 条件...;
    

    相当于查询表1(左表)的所有数据 并且包含 表1 和 表2 交集部分的数据

    • 右外连接
    select 字段列表 from 表1 right [outer] join 表2 on 条件...;
    

    相当于查询表1(右表)的所有数据 并且包含 表1 和 表2 交集部分的数据

5.4 连接查询 - 自连接
  • 自连接查询语法:
    select 字段列表 from 表1 别名1,表2 别名2 where 条件...;
    

    自连接查询,既可以使用内连接的语法,也可以使用外连接的语法。
    在使用自链接时,所对应的表,一定要起别名,否则后续会引起报错。

5.5 连接查询 - 联合查询(union、union all)

在这里插入图片描述

5.6 子查询

在这里插入图片描述

  • 标量子查询:子查询的结果为一行一列(单个值),如数字、字符串、日期等。

    常用的操作符有:= != > >= < <=

  • 列子查询:子查询返回的结果为一列(可以是多行)
    在这里插入图片描述

  • 行子查询:子查询返回的结果是一行(可以是多列)

    常用的操作符有:=、!=、in、not in

  • 表子查询:子查询返回的结果是多行多列

    常用的操作符有:in

5.7 练习

在这里插入图片描述

所涉及到的表结构在文章最下方

5.8 总结

在这里插入图片描述

六、事务

6.1 事务简介

在这里插入图片描述

6.2 事务操作

在这里插入图片描述

在这里插入图片描述

6.3 事务四大特性(ACID

在这里插入图片描述

6.4 并发事务问题

在这里插入图片描述

6.5 事务隔离级别

在这里插入图片描述
bash select @@transaction_isolation; set session transaction isolation level read uncommitted ;

6.6 总结

在这里插入图片描述

CREATE TABLE `employee` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `gender` varchar(10) DEFAULT NULL,
  `age` int DEFAULT NULL,
  `dept_id` int DEFAULT NULL,
  `salary` decimal(10,2) DEFAULT NULL,
  `hire_date` date DEFAULT NULL,
  `position` varchar(50) DEFAULT NULL,
  `phone` varchar(20) DEFAULT NULL,
  `email` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `dept_id` (`dept_id`),
  CONSTRAINT `employee_ibfk_1` FOREIGN KEY (`dept_id`) REFERENCES `department` (`dept_id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

CREATE TABLE `department` (
  `dept_id` int NOT NULL AUTO_INCREMENT,
  `dept_name` varchar(50) NOT NULL,
  PRIMARY KEY (`dept_id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

CREATE TABLE `course` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(10) DEFAULT NULL COMMENT '课程名称',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

CREATE TABLE `salary_grade` (
  `grade` int DEFAULT NULL,
  `losal` int DEFAULT NULL,
  `hisal` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='薪资等级表'

CREATE TABLE `student` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(10) DEFAULT NULL,
  `no` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

CREATE TABLE `student_course` (
  `id` int NOT NULL AUTO_INCREMENT,
  `student_id` int DEFAULT NULL,
  `course_id` int DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `student_id` (`student_id`),
  KEY `course_id` (`course_id`),
  CONSTRAINT `student_course_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `student` (`id`),
  CONSTRAINT `student_course_ibfk_2` FOREIGN KEY (`course_id`) REFERENCES `course` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值