第一章
1.E-R图:巨型表示实体,椭圆形表示属性,菱形表示关系2.范式:第一范式:属性的原子性。
第二范式:属性与主键没有关联。(可以有间接关联)
第三范式:属性与主键只有直接关联。(不能有间接关联)第二章
1.变量
1.1.局部变量:用户自定义的变量
语法:
--声明
DECLARE@i INT
--赋值
SET@i=1
SELECT@i=1
--使用输出
--以表格的方式输出内容
SELECT@i
--直接输出内容
PRINT@i
1.2.全局变量:系统定义的变量
参考课本P33页的表格
2.逻辑控制语句
1.IF-ELSE
2.WHILE
3.CASE
语法:
CASE
WHEN SCORE<60THEN'不及格'
WHEN SCORE>=60AND SCORE<80THEN'及格'
WHEN SCORE>=80THEN'优秀'
END
3.批处理语句GO
第三章
1.子查询:大查询语句里面嵌套了另外一条查询语句。
注意:1.把嵌套在打查询里的子查询当做一张表(列,条件)来使用
2.当子查询作为列来使用时,该子查询的结果只能唯一或者(一行多列)。
3.当子查询作为条件来使用时:1如果条件里用(=,<,>等),那么该子查询的结果是唯一(一行一列)的。2如果条件里用(IN,EXISTS等),那么该子查询的结果可以是多个(多行一列)
2.IN和EXISTS
1.Eg:SELECT*FROM STUMARKS WHERE MARKNUM IN('1','5','9')
<:SELECT*FROM STUINFO WHERE EXISTS(SELECT*FROM STUMARKS WHERE STUID='001')
3.SOME,ANY,ALL
4.聚合技术:COMPUTE和COMPUTE BY汇总查询
5.排序函数
--语法:排序函数(ROW_NUMBER(),RANK(),DENSE_RANK())OVER(ORDER BY列名) --ROW_NUMBER()显示行号
SELECT ROW_NUMBER()OVER(ORDER BY SCORE DESC)名次,*FROM STUMARKS --RANK():显示名次,如重复会跳空
SELECT RANK()OVER(ORDER BY SCORE DESC)名次,*FROM STUMARKS
--DENSE_RANK():显示名次,如重复不跳空
SELECT DENSE_RANK()OVER(ORDER BY SCORE DESC)名次,*FROM STUMARKS
6.公式表表达式:相当创建一张临时表
语法:WITH临时表名(列1,列2,列3,…)
AS
(
查询语句
)
SELECT*FROM临时表名
第四章
1.索引:数据表中数据和相应存储位置的列表。(相当于辞典里的目录)
1.1聚集索引:(相当于辞典的拼音查字目录)有序,一般默认创建在主键上
1.2非聚集索引:(相当于辞典的部首查字目录)无序,手动创建其他列,提高查效率
语法:CREATE INDEX[UNIQUE][CLUSTERED|NONCLUSTERED]
索引名ON表名(列名)
删除索引:DROP表名.索引名
2.视图:虚拟表
语法:创建:CREATE VIEW视图名AS查询语句
删除:DROP VIEW视图名
注意:1如果视图只包含一张表的数据,那么可以做增删改操作
2如果视图包含多张表的数据,那么只能做修改操作,不能做添加删除操作
3虽然视图有上面的特点,但一般不对他进行修改操作,只作查询用
第五章
一、事务(Transaction):由N条SQL语句组成,做为单个不可分割的逻辑单元进行操作。操
作时要么所有语句全部执行,要么全部不执行。
事务的四大属性(ACID)(特点):
exists子查询
1、原子性:事务是一个完整的操作。每一个步骤不可分割的。要么都执行,要么都不
执行。
2、一致性:当事务完成后,数据整体保持在一致的状态。
3、隔离性:事务与事务之间是独立的,相互不受影响。
4、永久性:事务完成后,它对数据库的操作将被永久保存。
事务的分类:显式事务、自动提交事务、隐式事务。
显式事务的操作:
1、开始(启)事务:begin transaction
2、提交事务:commit transaction
3、回滚事务:rollback transaction
在C#中运用事务
1、开始(启)事务:sqlComm.Transaction=sqlConn.BeginTransaction();
2、提交事务:sqlComm.Transaction.Commit();
3、回滚事务:sqlComm.Transaction.Rollback();
2、游标(Cursor):游标是一种从包含N条结果集中一次提取一条记录的机制。
作用:1、从结果集中检索数据
2、允许定位(相对,绝对)到结果集中的特定行。
3、允许对结果中游标定位的行进行修改。(做为条件)
分类:T-SQL游标、API游标、客户端游标
操作:
1、定义游标
declare游标名cursor[forward only|scroll]for查询语句
解释:forward only:表示游标为只进游标。(只能向下一条一条的检索)(默认) Scroll:表示滚动游标。(可以相对,绝对定位)
2、打开游标
open游标名
3、检索游标
fetch游标名下一条
fetch next from游标名下一条
fetch prior from游标名上一条
fetch first from游标名第一条
fetch last from游标名最后一条
fetch absolute N from游标名绝对定位
N为正数时:绝对定位到第N行。
N为负数时:绝对定位到倒数第N行。
N为0时:定位到第一行的上面,第0行(空行)
fetch relative N from游标名绝对定位
N为正数时:相对定位到当前行的后面第N行。
N为负数时:绝对定位到当前行的前面第N行。
N为0时:当前行。
4、关闭游标
close游标名
5、删除游标
deallocate游标名