当前位置: 首页 > >

Sqlserver2008 学*笔记(自己总结)

发布时间:

Sqlserver2008 学*笔记 (自己总结)
第一章 SQL Server 基础 1、利用 T-SQL 语句创建数据库, 删除一个数据库, 更改数据库名称
第二章 T-SQL 语句 1、SQL 2008 视频教程-数据库表常用术语 数据表常用术语: 关系:关系即二维表,每一个关系有一个关系名,就是表名。 表中的行,称之为记录 表中的列,称之为字段或属性 关联:是指不同数据库表之间的数据彼此联系的方式。 关键字:属性或属性的组合,可以用于维一标识一条记录。 外部关键字:如果 表中的一个字段(即 表中的 列),不是本表中的关键字而是其它表 的关键字,称之为外部关键字。
1

2、SQL 2008 视频教程-系统数据库 Master(主) Model(模型) Tempdb (临时数据库) Msdb(MS 数据库) 3、T-SQL 创建数据库详解
4、T-SQL 语句 3 (T-SQL 语句浏览表格(教师表)) Select * from 教师表 --表示浏览教师表里所有的信息
*号是通配符,表示所有的意思 执行 Select * from 教师表 结结果如下
2

5、用 T-SQL 语句在教师表里如何增加 字段,删除某个 字段,更新某个字段的内容 (1)用 T-SQL 语句在教师表里如何增加 字段
执行 Select * from 教师表 结结果如下
(2)用 T-SQL 语句在教师表里如何删除某个 字段
执行 Select * from 教师表 结结果如下
3

(3)用 T-SQL 语句在教师表里更新某个字段的内容
执行 Select * from 教师表 结结果如下
6、查询(重中之重!!!)
(1) 查询要用到的三张表:(下面的所有操作都是基于这三张表) 1.emp 表(员工表 employee)

2.dept 表(部门表 department)

3.salgrade 表(工资等级表)

4

(2)对以上三张表 查询操作 (包括 计算列,distinct,between,in,top,null, order by,模糊查询,聚合函数,group by,having,链接查询) 注意 distinct 的用法
5

例子如下图:
6

实例如下:
7

注意 group by 与 COMPUTE BY 的区别 GROUP BY 子句有个缺点,就是返回的结果集中只有合计数据,而 没有原始的详细记录。如果想在 SQL SERVER 中完成这项工作,可 以使用 COMPUTE BY 子句。(具体看下面的例子)
运行结果对比:
8

9

10

查询的顺序 (非常重要!!!)
11

*题集 第一个*题 求出每个员工的 姓名 部门编号 薪水 和 薪水的等级
第二个*题 查找每个部门的编号 该部门所有员工的*均工资 *均工资的等级
第三个*题 查找每个部门的编号 部门名称 该部门所有员工的*均工资 *均工资的等级
第四个*题 求出 emp 表中所有领导的信息
第五个*题 求出*均薪水最高的 部门的编号 和 部门的*均工资
第六个*题 有一个人工资最低 把这个人排除掉
剩下的人中工资最低的前个人的姓名 工资 部门编号 部门名称 工资等级 输出
12

答案及运行结果:
13

14

7. 两个表(dept 表 和 salgrade 表)内连接,左连接和右连接
下面只给了右连接的运行结果(其它的自己试)
15

8. 约束、索引和视图
约束(主键(即关键字),外键(外部关键字),唯一键,非空,
check,default ,触发器)
索引
唯一的索引 (Unique Index) 在表格上面创建某一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。
16

CREATE UNIQUE INDEX 索引名称 ON 表名称 (列名称) create unique index teacher_index on teacher (teacher_address) --在 teacher 表中 teacher_address 字段创建了一个唯一的索引 (名称为 teacher_index)
视图
为什么需要视图:
17

注意:不能一次执行,应该创建完视图后执行以下,再执行下面的 代码
9.T-SQL 编程
所以一般来说,如果含有中文字符,用 nchar/nvarchar,如果 纯英文和数字,用 char/varchar。
注意:如果想同时显示多个变量 用 select 如果想显示单个变量 用 print
18

执行结果为:
执行结果为:
执行结果为:
19

执行结果为: 执行结果为:
10. 函数
20

为局部变量
执行结果为:
字符串函数:
执行结果为:
日期函数:
执行结果为:
创建函数: 创建代码及结果显示如下图
21

再写个测试代码

执行结果:

(注意 dbo. 不能省)

11. 存储过程

22

(2)用户如何创建存储过程
执行 execute newProc 这行代码的结果为:
(写 exec newProc 也可以)
12. 游标(cursor)
23

注意:用中括号[]括起来的可以写也可以不写
24

13. 触发器(trigger)
触发器是一种特殊的存储过程﹐它不能被 显式地调用﹐而是在往表 中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器 可以用来实现对表实施复杂的完整性约束。 1) After 触发器在一个 Insert,Update 或 Deleted 语句之后执行 ﹐进行约束检查等动作都在 After 触发器被激活之前发生。After 触发器只能用于表。一个表或视图的每一个修改动作 (insert,update 和 delete)都可以有一个 instead of 触发 器﹐一个表的每个修改动作都可以有多个 After 触发器。如果一个 Insert﹑update 或者 delete 语句违反了约束﹐那幺 After 触 发器不会执行﹐因为对约束的检查是在 After 触发器被激动之前发 生的。所以 After 触发器不能超越束。
执行 insert into teacher values()后的结果:
说明他是在插入一条记录之后调用这个触发器即 After 触发器
25

2) Instead of 触发器(即替代触发器)是用于 替代 引起触 发器执行的 T-SQL 语句。除表之外﹐Instead of 触发器也可以 用于视图﹐用来扩展视图可以支持的更新操作。
执行结果为:
14.事务
26

2015 年 11 月 27 日 李巍
27

28




友情链接: