1、数据库查询
练习链接:http://m.wendangku.net/doc/703847086c85ec3a87c2c50a-5.html
知识点:
(1)要用重命名的习惯
(2)连接:包括内连接(INNER JOIN)和外链接(包括左外连接LEFT OUTER JOIN、右外连接RIGHT OUTER JOIN、全外连接FULL OUTER JOIN)
- 内连接:只选择符合连接条件的记录
- 左外连接:除了显示符合连接条件的记录外,还显示左表中所有的记录
- 右外连接: 除了显示符合连接条件的记录外,还显示左表中所有的记录
- 全外连接:显示左右表所有的记录
(3)ORDER BY+字段+[ASC|DESC];GROUP BY…having… 的使用
(4)
- 比较运算符(大小比较):>;、>=、=、<;、<=、<>;、!>;、!<
- 范围运算符(表达式值是否在指定的范围):BETWEEN…AND…;NOT BETWEEN…AND…
- 列表运算符(判断表达式是否为列表中的指定项):IN (项1,项2……)
NOT IN (项1,项2……) - 模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOT LIKE
- 空值判断符(判断表达式是否为空):IS NULL、IS NOT NULL
逻辑运算符(用于多条件的逻辑连接):NOT、AND、OR
1、范围运算符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=30
2、列表运算符例:country IN (‘Germany’,’China’)
3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime等类型查询。通配字符:
百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。
下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。
方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
(5)常用到的 Aggregate函数: Aggregate 函数计算从列中取得的值,返回一个单一的值
- AVG() - 返回平均值 COUNT()
- 返回行数 FIRST() - 返回第一个记录的值
- LAST() - 返回最后一个记录的值
- MAX() - 返回最大值 MIN() - 返回最小值
- SUM() - 返回总和
2、事务
事务是数据库中一个单独的执行单元,具有是个属性(ACID):原子性、一致性、隔离性、持久性
- 原子性:事务是不可分割的一个整体。即对数据库数据修改时要么全执行,要么不执行
- 一致性:数据在修改时一定要满足一致性状态,一致性状态应该满足模式所指定的约束。为了保证一致性状态,所有的约束原则一定要用在事务的修改上
- 隔离性:事务与事务之间进行隔离,一个事务正在进行的动作不能被其他事务看到
- 持久性:事务完成以后,保证它对数据的修改是永久性的
3、锁
死锁:并发执行的程序由于争夺资源而处于无限期等待状态。
死锁的原因:(1)资源不足;(2)进程推进顺序不当;(3)资源分配不当
数据库中的锁:对数据库中数据进行读/写操作的保护,分为共享锁(R锁或者读锁)和互斥锁(X锁或者写锁)
- S锁:一般是对数据读之前要求要加的锁。事务T对数据加了S锁,其他事务只能读取这个数据,并且只能对这个数据加S锁而不能加X锁
- X锁:一般是对数据进行写之前要求要加的锁。事务T对数据加了X锁,其他事务不能读或者写这个数据,不能加任何锁。
4、范式
1、若R的每个分量都是不可分的数据项,则R∈1NF。
从型上看:不存在嵌套结构
从值上看,不存在重复组、表达式
2、若R∈1NF,且R中的每一个非主属性都完全函数依赖于R的任一候选码,则R∈2NF
3、若R∈2NF,且R的任何一个非主属性都不传递函数依赖于它的任何一个候选码,则R∈3NF
4、若R∈3NF,且每个属性都不传递依赖于R的候选键,那么R是BCNF
5、索引
是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中的数据,索引的实现通常使用B树以及其变种B+树
- 聚簇索引:键值的逻辑书序决定了表中相应行的物理顺序
- 非聚簇索引:索引的逻辑顺序与磁盘上行的物理存储顺序不同
6、问题
数据库日志的作用?数据库日志满了会出现什么情况?
作用:记录数据库数据的修改,以防止故障,在数据恢复时会用到。
日志满了:只能对数据库进行查询操作,不能执行更改、备份等写操作。