jdbc 第二部分

1.子查询
(1)条件子查询:一个查询的查询结果,作为另一个查询的过滤条件
select …where a=(select)
(2) 单值子查询 = > >= < <=
(3) 多值子查询 in 在哪个里面
> all(比最大值大)
> any(比最小值小)
(4) 多列子查询 where (a,b) in (select…)
where (a,b) = (select…)
(5)from子查询。行内视图:从查询的查询结果再查询 select…from(select…)t
2.约束:限制字段中的取值
(1)主键:数据表中,一行数据的唯一标识
不重复
不能是null值
自动生成索引
关键字 primary key
一般使用"非业务数据"来作为主键,自动增加,随机生成
(2)自增主键:整数类型主键,可以设置成自动生成自增的值
(3)外建:限制一个字段,只能取指定的主键字段中,存在的值并自动生成索引
(4)非空:not null
(5)唯一:自动创建索引 int id unique
(6)检查:设置检查条件(check),约束字段的取值,mysql不支持mariadb 支持检查约束
3.多表连接查询:两张表,按指定条件,连接成一张表
4.外连接
(1)内连接:只查询满足连接条件的数据
(2)外连接:不满足连接条件的数据也要查询
左外连接:查询左侧表条件外数据
右外连接:查询右侧表条件外数据
全外连接:双侧表条件外数据,mysql不支持

5.事务:由一组sql语句组成,事务的sql语句整体成功,整体失败
数据操作最小单元是事务,而不是sql语句
(1)启动事务:begin
事务启动后,执行的数据增删改操作,会暂时记录在一个日志文件中
(2)提交事务:commit
事务日志中记录的数据操作,在数据表中生效
清空日志文件
(3)回滚事务:rollback 清空日志
(4)事务的特性:原子性,数据操作的最小单元是事务,而不是sql语句
一致性,事务完成前后,数据要保持逻辑的一致性
隔离性,一个事务操作数据时,其他事务要等待
持久性,事务成功,数据被永久的保存
6.数据访问冲突问题:
(1)脏数据:一个事务未提交的数据,被另一个事务查询到
(2)不可重复读:针对数据修改 update 操作
查询过的数据,再次查询时,与之前的查询结果不一致
(3)幻觉读: 针对数据的插入和删除\新插入的数据,查询不到
删除的数据,能查询到
7.隔离级别
为了避免数据访问冲突的问题,避免数据的混乱,数据库会让事务进行隔离
为了兼顾数据安全,和性能,数据库提供了四种隔离级别
级别越高,越安全,性能越差
级别越低,越不安全,性能越高
8.索引:把指定字段的数据,按照一定的数据结构,另外存储一份
在索引中,要记录数据的保存地址
 mysql中索引,采用B+Tree结构
创建索引,可以大幅提高数据过滤效率

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值