您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Sqlserver2008--学习笔记(自己总结)
1Sqlserver2008学习笔记(自己总结)第一章SQLServer基础1、利用T-SQL语句创建数据库,删除一个数据库,更改数据库名称第二章T-SQL语句1、SQL2008视频教程-数据库表常用术语数据表常用术语:关系:关系即二维表,每一个关系有一个关系名,就是表名。表中的行,称之为记录表中的列,称之为字段或属性关联:是指不同数据库表之间的数据彼此联系的方式。关键字:属性或属性的组合,可以用于维一标识一条记录。外部关键字:如果表中的一个字段(即表中的列),不是本表中的关键字而是其它表的关键字,称之为外部关键字。22、SQL2008视频教程-系统数据库Master(主)Model(模型)Tempdb(临时数据库)Msdb(MS数据库)3、T-SQL创建数据库详解4、T-SQL语句3(T-SQL语句浏览表格(教师表))Select*from教师表--表示浏览教师表里所有的信息*号是通配符,表示所有的意思执行Select*from教师表结结果如下35、用T-SQL语句在教师表里如何增加字段,删除某个字段,更新某个字段的内容(1)用T-SQL语句在教师表里如何增加字段执行Select*from教师表结结果如下(2)用T-SQL语句在教师表里如何删除某个字段执行Select*from教师表结结果如下4(3)用T-SQL语句在教师表里更新某个字段的内容执行Select*from教师表结结果如下6、查询(重中之重!!!)(1)查询要用到的三张表:(下面的所有操作都是基于这三张表)1.emp表(员工表employee)2.dept表(部门表department)3.salgrade表(工资等级表)5(2)对以上三张表查询操作(包括计算列,distinct,between,in,top,null,orderby,模糊查询,聚合函数,groupby,having,链接查询)注意distinct的用法6例子如下图:7实例如下:8注意groupby与COMPUTEBY的区别GROUPBY子句有个缺点,就是返回的结果集中只有合计数据,而没有原始的详细记录。如果想在SQLSERVER中完成这项工作,可以使用COMPUTEBY子句。(具体看下面的例子)运行结果对比:91011查询的顺序(非常重要!!!)12习题集第一个习题求出每个员工的姓名部门编号薪水和薪水的等级第二个习题查找每个部门的编号该部门所有员工的平均工资平均工资的等级第三个习题查找每个部门的编号部门名称该部门所有员工的平均工资平均工资的等级第四个习题求出emp表中所有领导的信息第五个习题求出平均薪水最高的部门的编号和部门的平均工资第六个习题有一个人工资最低把这个人排除掉剩下的人中工资最低的前个人的姓名工资部门编号部门名称工资等级输出13答案及运行结果:14157.两个表(dept表和salgrade表)内连接,左连接和右连接下面只给了右连接的运行结果(其它的自己试)168.约束、索引和视图约束(主键(即关键字),外键(外部关键字),唯一键,非空,check,default,触发器)索引唯一的索引(UniqueIndex)在表格上面创建某一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。17CREATEUNIQUEINDEX索引名称ON表名称(列名称)createuniqueindexteacher_indexonteacher(teacher_address)--在teacher表中teacher_address字段创建了一个唯一的索引(名称为teacher_index)视图为什么需要视图:18注意:不能一次执行,应该创建完视图后执行以下,再执行下面的代码9.T-SQL编程所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar。注意:如果想同时显示多个变量用select如果想显示单个变量用print19执行结果为:执行结果为:执行结果为:20执行结果为:执行结果为:10.函数21执行结果为:字符串函数:执行结果为:日期函数:执行结果为:创建函数:创建代码及结果显示如下图22再写个测试代码执行结果:(注意dbo.不能省)11.存储过程23(2)用户如何创建存储过程执行executenewProc这行代码的结果为:(写execnewProc也可以)12.游标(cursor)24注意:用中括号[]括起来的可以写也可以不写2513.触发器(trigger)触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约束。1)After触发器在一个Insert,Update或Deleted语句之后执行﹐进行约束检查等动作都在After触发器被激活之前发生。After触发器只能用于表。一个表或视图的每一个修改动作(insert,update和delete)都可以有一个insteadof触发器﹐一个表的每个修改动作都可以有多个After触发器。如果一个Insert﹑update或者delete语句违反了约束﹐那幺After触发器不会执行﹐因为对约束的检查是在After触发器被激动之前发生的。所以After触发器不能超越束。执行insertintoteachervalues()后的结果:说明他是在插入一条记录之后调用这个触发器即After触发器262)Insteadof触发器(即替代触发器)是用于替代引起触发器执行的T-SQL语句。除表之外﹐Insteadof触发器也可以用于视图﹐用来扩展视图可以支持的更新操作。执行结果为:14.事务272015年11月27日李巍28
本文标题:Sqlserver2008--学习笔记(自己总结)
链接地址:https://www.777doc.com/doc-6110459 .html