数据库总结(三)

来源:互联网 发布:php 空格分割字符串 编辑:程序博客网 时间:2024/06/06 09:04


数据库视频终于看完了,做下数据库视频总结:


一、视图:

创建视图:

CREATE VIEW view_name(view_column_name)         AS   query_expression      [WITH CHECK OPTION]

修改视图

ALTER VIEW<view_name>[<column name list>]      AS       <SELECT statement>      [WITH CHECK OPTION]

删除视图:DROP VIEW V_STUDENT INFO


通过视图修改数据:

select * from 学生信息          insert into v _stu            values('学号','姓名','','',。。。)


二、索引:

创建索引:
CREATE      [UNIQUE][CLUSTERED|NONCLUSTERED]     INDEX index_name

ON       table_name|view_name     (column_name[1,...,n])


删除索引:
drop index 学生信息.I_name


三、对数据整理:

排序:下面加上 ORDER BY 分数 ASC(升序)  DESC(降序)
ORDER BY 分数,学生编号 DESC        ORDER BY 分数 DESC,学生编号

排序:
compute sum (分数),AVG(分数),MIN(分数)by 考试编号
查分数是5的倍数:

select * from 成绩信息 where 考试编号 = '0802' AND 分数 in (分数/5 = 0)


分组:SELECT 考试编号,课程编号,AVG(分数) FROM 成绩信息 GROUP BY CUBE(考试编号,课程编号)

SELECT MAX(分数)FROM 成绩信息 WHERE 考试编号 = ‘0801’AND
HAVING AVG (分数)>=90      
ORDER BY 考试编号


四、数据修改:

插入数据:
INSERT INTO 学生信息 VALUES ('','','',)      将学生信息插入到学生信息1:
INSERT 学生信息1      SELECT * FROM 学生信息(where 家庭住址 like '河南')

将性别为'男'的这一列插入到'学生信息表'中
select *     into # student    from 学生信息    where 性别 = '男'

select * from 学生信息

update 学生信息 set 姓名 = '李俊' where 学号 = '2005050101'


多表链接:
select * from studentInfo       update studentInfo set s_sex = b.性别,s_address = b.家庭住址
from studentInfo a join 学生信息 b on a.s_name = b.姓名      where b.性别 = '女'

查看前6行:
select top(6) * from 成绩信息 order by 分数
前6行更改为满族:     update top (6) 学生信息 set 民族 = '满族'


五、函数和运算符:

运算符:
位运算符;比较运算符;逻辑运算符;赋值运算符;
注释:--和/*...*/两种注释方式
while  、begin、end      while @i<=1000
wait for time '21:11:00'      begin try   ...
end try      begin catch   ...   end catch


标量值函数:  select dbo.avgsum('1')

表值函数:  select * from FINDCOURSE('0802')



六、存储:
存储:用户自定义、系统、扩展存储过程。

存储操作:
创建存储过程: exec proc student      使用输出函数:  declare @sorce1 int
exec p_sorce '张苗苗',@sorce1 output     print @sorce1

修改存储:alter procedure 表名称
删除:drop proc proc_student        (存储过程参数最大数目2100、存储过程最大128M)

系统存储过程:exec sp_helpdb 学生成绩管理系统    显示统计信息:exec sp_monitor
创建临时存储过程:  create procedure ##get _info
嵌套存储过程:exec _classinfo
查看存储过程:exec sp_helptext get_student


七、触发器:
触发器:ddl 触发器和dml 触发器
insert触发器:
create TRIGGER trigger_name
创建DELETE触发器:
CREATE TRIGGER T_DELETETEACHER
ON教师信息    FOR DELETE
AS     DELETE FROM教师信息 where 教师编号 = '2005001'

UPDATE触发器:CREATE TRIGGER t_UPDATE

UPDATE 教师信息 set 姓名 = '李芳' where 教师编号 ='20050010'

创建DDL触发器:
create trigger T_notdelete     on database
for Drop_table,alter_table    As    PRINT '事务'
ROLLBACK    drop table student

管理触发器:drop trigger t_add


嵌套触发器:后面加上
insert into 员工信息(员工编号,员工姓名,所在部门编号)
select 员工编号,员工姓名,所在部门编号   from deleted

递归触发器:最多递归16层


八、数据备份:
三种备份恢复模式:简单、完全、大容量日志记录恢复模型

时间点恢复:select getdate () as 数据插入时间


其他:

创建架构:
create schema admins AUTHORIZATION teacher

Select 12*13 As 计算结果
SELECT 姓名 as 学生姓名,性别 from 学生信息
SELECT DISTINCT 民族 from 学生信息
查询学生姓名:
SELECT * FROM 学生信息 where 姓名 = '张苗苗'
SELECT * FROM 学生信息 WHERE 民族 = '汉族' AND 性别 = '女'
                                           OR

SELECT * FROM 学生信息 WHERE 家庭住址 like '河南%'


操作游标步骤:
打开游标、检索游标、关闭游标、释放游标。
XACT-ABORT选项 on


应用程序角色:sp_setapprole @rolename ='app_user',@password = '123'


发送测试电子邮件:
SELECT * FROM msdb.dbo.sysmail_allitens    WHERE mailitem_id = 1

con.ConnectionString = " Data Source= LX ;database=学生成绩管理系统;uid=sa;pwd=123456";








原创粉丝点击