mysql触发器实现+备份_MySQL之触发器,事务,存储,备份

上节回顾

查询语句

select distinct * | 字段 from tabe

where逻辑运算符 成员运算符 比较运算符 like between exists

group by分组 为了统计 个数count max min avg sum

having分组后进行过滤

order by 用于排序,默认升序asc desc

limit第一个指定起始位置 第二个每一页的个数

子查询

子查询作为外层查询的条件

同一个需求 可以用子查询也可以用内连接

连表查询

笛卡尔积,

重复数据 显示指定字段

混乱 限制条件 (where 从表的外键 = 主表的主键)

内连接

本质上就是笛卡尔积查询.

仅显示匹配成功的记录

外连接

没有匹配也会显示

左外连接 左边要全部显示

右外连接 右边要全部显示

全外连接查询 无论是否匹配两边的记录都要全部显示 可以通过union 将左右合并 去除重复

union all 合并 但是不去除重复

必须保证字段个数相同才能合并

高级部分

1.视图

什么是视图,

本质上是一个虚拟的表,即看得见但是不实际存在

为什么需要虚拟表????

使用场景

场景1:

我们希望某些查询语句只能查看到某个表中的一部分记录 ,就可以使用视图

场景2:

简化sql语句的编写

使用方法:

语法:

create [or replace] view view_name as 查询语句;

or replace 如果视图已经存在了 就替换里面的查询语句;

# 修改视图

alter view view_name  as 新的语句;

# 删除视图

drop view view_name;

# 查看

desc view_name;

show create view view_name;

# 限制可以查看的记录

create table salarys(id int,name char(10),money float);

insert into salarys values(1,"张三丰",50000),(2,"张无忌",40000);

# 创建视图 限制只能查看张无忌的工资

create view zwj_view as select *from salarys where name = "张无忌";

# 简化sql编写

create table student(

s_id int(3),

name varchar(20),

math float,

chinese float

);

insert into student values(1,'tom',80,70),(2,'jack',80,80),(3,'rose',60,75);

create table stu_info(

s_id int(3),

class varchar(50),

addr varchar(100)

);

insert into stu_info values(1,'二班','安徽'),(2,'二班','湖南'),(3,'三班','黑龙江');

# 查询班级和学员的对应关系做成

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值