SQL2008知识回顾

SQL2008

一、安装注意事项:

1.修改用户权限(在一个安装页面中有七八个)(改成net.)
2.添加当前系统用户为账户

 

二、主键,约束,索引

 

三、增删改查;


insert、delete、update

select__*或者列名_____from 表where_______排序分组
逐条核对,符合条件的显示出来

语句执行过程:
先找到表,筛选行结束,排序,筛选列

首先执行“from表”,最后执行select_______.

聚合函数:最终查询的结果集,进行聚合操作。位于select和from中间,用了聚合函数后,不能再写其他列。聚合函数返回一行一列。
Count(*)、Sum(列名)、Avg、Max、Min
select sum(degree)(这里不能再加其他列Name等) from student where birthday=1990

数学函数:位于select和from中间或者where之后。
Round,Ceiling,Floor,ABS,Sqrt
select Ceiling(degree)from student where degree>95

日期时间函数:位于select和from中间或者where之后
DateAdd

字符串函数:substr,LTrim,RTrim

类型转换:Cast,Convert
Cast(列 as 类型)
Convert(类,列)

查询
子查询(查询的嵌套)通过某个查询,查询出一组列数据来作为当前查询的筛选条件

两个表Teacher Student

查某个老师教的所有学生
select * from student where Tno=001
查某个班所有老师教的所有学生。
select * from student where Tno in(select Tno from Teacher where Cno=001)

连接查询(多个表同时查询):横向查询(A表和B表)用where或Join连接表,用where(笛卡儿积)占用内存高

select * from Student Join Teacher on S.Tno=T.Tno
(没有同名列才能用*)

纵向连接:
select Name,Sex from Student
union
select Name,Sex from Teacher
注意两个表的列数据类型一致,顺序是随机的,查询结果的列名是Student的列名。

 

四、存储过程

Create Proc_______
参数
AS
过程
go
Exec 参数


declare:定义变量
if else Begin End
for

alter delete

 

五、视图

虚拟的表,更便捷、更直观显示某些需求数据(是在精巧、便捷设计数据库的基础上)

creat view 视图
As
查询语句,表连接
go

六、触发器

Trigger,某个操作一执行,引发触发器里的内容,一个特殊的存储过程(不通过Exec执行,通过对数据库的操作(增删改)引发执行)

分为两种:
for After
Instead of替换掉操作内容,执行触发器内容。

应用:
级联删除:Student中的teacher引用了Teacher表中的teacher。
自动添加:员工表新加一个员工,自动往用户表添加一个用户名和密码

 

七、事务:


Begin Tran
...
commit(所有步骤没有问题,统一提交)
RollBack(回滚:任何步骤出现问题,恢复起始状态,当作什么都没发生)

范例:银行转账

SQL:存储过程、事务、触发器不常用(易出问题、数据迁移不方便)

转载于:https://www.cnblogs.com/wllhq/p/4304423.html

你可能感兴趣的:(数据库)