MySQL数据库

本文详细介绍了SQL中的外连接、右连接、子查询、视图、存储过程以及事物的概念、语法和案例,强调了它们在数据库管理和一致性保证中的重要性。
摘要由CSDN通过智能技术生成

        ok了,续更来了

        今天的内容:外链、子查询、视图、存储过程、事物

1.外链

         外链分为左外和右外:

左外:

  • 显示结果以左表为准
  • 左表中的数据会全部出现,右表中的数据,有就显示,没有就显示为空

语法:

select * from 左表 left join 右表 on 左表.字段=右表.字段

右外:

  • 显示结果以右表为准
  • 右表中的数据会全部出现,左表中的数据,有就显示,没有的显示为空

语法:

select * from 左表 righr join 右表 on 左表.字段=右表.字段

案例:

#使用右链接查询两个表中的数据
select * from students right join classes on students.classid=classes.classid
2.子查询

        在查询中,使用另外一个语句的查询结果

语法:

select * from 表名 where 条件=(select 语句)

案例:

select name,age from students where age=(select max(age) from students)
3.视图

        视图:view

  • 视图可以认为是一个表
  • 但是这个表是存在于内存中的虚表,断电后就会消失

作用:

        通过视图,可以让用户只能访问数据库中一部分数据(给用户授权)

格式:

create view 视图名 as select 语句

案例:

#创建视图
create view new1 as select * from students where stuid<10


#授权给用户指定的数据
grant all on hellodb.new1 to "tom"@"localhost" identified by "123456"
4.存储过程 

         存储过程可以快速的向数据库中插入大量测试数据库

格式:

delimiter//    #存储过程的开头,定义一个符号
    cerate procedure 存储过程名()
    begin    #开始存储过程
    sql 语句    
end//        #定义结束

案例:

dilimiter //    #定义开头
    create procedure my()    #创建存储过程名为my
       begin    #开始存储过程
    declare i int;    #declare定义变量 i 类型为整形
    set i = 0 ;    #设置变量 i 为0
        while i<100 do    #当i<100时执行循环代码
            insert into tb1(name) values(i);    #向表中插入数据
            set i = = + 1 ;    #将i的值++
        end while;    #循环结束
    end //    #定义结束
delimiter;

call my()    #调用名为my的存储过程
5.事物
  • 将多个sql语句组合成一个整体,这个整体就是一个事物
  • 事物中的所有的语句要么都执行,要么都不执行
  • 事物中的语句,如果只有部分执行成功,那么就需要将这个事物进行回滚操作
  • 回滚:将数据恢复到执行之前的状态
  • 通过使用事物,可以保证数据的一致性

事物的操作

  • 提交事物
  • 回滚事物

提交事务

  • 让事物中的sql语句,真正的生效
  • 如果使用了事物,那么在事物提交之前,其他用户是看不到事物中的操作的

操作命令格式:

begin #启动事务
commit #提交事务,提交之后,事务自动结束
rollback #回滚事务,回滚之后,事务自动结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值