一,表
- 表中的列叫做字段,行叫记录也叫元组。
- 主键:唯一的标识表中的某一条记录
- 外键:一个表的主键作为另一个表的外键,表示两个表之间的关系。一般将外键写在记录的一方,比如部门号和员工号,应该将部门号作为员工的外键。多对一写在多的一面。
- 外键的值一定要在该外键的表中存在
二,约束
- 对一个表中的属性操作的限制叫做约束
- 主键约束:不允许重复元素,避免数据冗余
- 外键约束:通过外键约束从语法上保证了本事务所关联的其他事务一定存在。
- 事物与事物之间的关系是通过外键来体现的
- check约束:保证事物的取值在合法范围内
- default约束:保证事物一定有一个值
- 唯一约束:unique保证事物的取值不允许重复,但是允许其中有一列,且只能有一列为空。
- unique唯一性不能重复,default默认值,check约束范围
- 主键和unique的区别:unique只允许一列可以为空,主键不能为空。
三,关系
- 一对一:即可以把表A的主键充当表B的外键,也可以把表B的主键充当A的外键
- 一对多:把表A的主键充当表B的外键,或者说把A的主键添加到B表来充当B表的外键,在多的一方添加外键
- 多对多:例如班级是一张表,教师是一张表,班级和教师的关系也是一张表。
四,查询代码篇
五,数据库中单引号与双引号的区别
一般单引号是字符串,双引号是字段的名字
六,聚合函数【多行函数】
- 不返回为null的数据
- 单行函数和多行函数不能同时使用
- group by 【分组查询】使用group by之后,select中只能出现分组后的整体信息,不能出现组内的详细信息。
- having【对分组后的信息进行过滤】,having不能使用别名,先过滤时还没有别名,所以是错的,having后面必须是分组的整体信息,条件参数顺序不能改变where一定要在having前面
- having与where的异同:相同点:having与where都是对数据过滤,都只保持有效数据。不同点:where对原始记录过滤,having对分组后的数据过滤,where必须在having前面,不能颠倒,否则报错。
七,连接查询
- 将两个表或者两个以上的表以一定的连接条件连接起来,从中检索出满足条件的数据
- 内连接:(1)select……from A,B的用法,(2)select……from A,B where……的用法,(3)select……from A join B on……的用法
- 外连接:(1)左外连接:left join关键字从表table1返回所有的行,即右表table2中没有匹配。如果表中没有匹配则结果为null
(2)右外连接:right join 关键字从右表table2返回所有的行,即使左表table1中没有匹配,则结果为null
(3)完全连接:full outer join 关键字只要左表table1和右表table2其中一个表中存在匹配,则返回行。full outer join关键字结合了left join和right join的结果
(4)自连接:一张表自己和自己连接起来查询数据
(5)交叉连接:
(6)联合:表和表之间的数据以纵向的方式连接在一起
八,视图的格式
- create view视图的名字
- as-select的前面不能添加begin
- select语句-select后面不能添加end
九,视图的优缺点
- 优点:可以隐藏一些表的原始数据,相当于保护原始数据,简化查询,增加数据的保密性
- 缺点:增加了数据库的维护成本,视图只是为了简化查询,但是并不能加快查询的速度,如果原始表数据丢失,视图就要进行修改
- 注意的问题:创建视图的select语句必须为所以的计算列指定别名,视图不是物理表,是临时虚拟表,临时表。
十,事务
(1)为什么需要事务?
- 事务可以保证避免数据处于一种不合理的中间状态
- 利用事务可以实现多个用户对共享资源的同时访问
- 事务必须得保证多个用户对共享资源同时访问数据库给用户的反应是合理的
(2)事务和线程的关系?
- 事务也是通过锁来解决很多问题的
- 线程同步就是通过锁来解决的 sychronized
(3)事务和第三方插件的关系
- 直接使用事务库技术难度很大,很多人借助第三方插件来实现,因此一般人不需要细细的研究数据库中事务的语法细节,第三方插件想要完成预期的功能,一般必须的借助数据库中的事务机制来实现
(4)事务的三种运行模式
- 自动提交事务:每条单独的语句都是一个事务,如果成功执行则自动提交,如果失败则自动回滚
- 显式事务:每个事务均以BEGIN TRANSACTION语句显式开始,以COMMIT或ROLLBACK语句显式结束
- 隐藏事务:在前一个事务完成时新事务隐式启动,每个事务仍以COMMIT或ROLLBACK语句显式结束。
重点:数据库是如何解决存储问题的,以及check,default,unique约束
浙公网安备 33010602011771号