数据库课程简介
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库服务器编程(触发器举例)
为SC表定义触发器tri_grade,限制将SC表中
不及格学生的成绩改为及格。
CREATE TRIGGER tri_grade ON SC FOR UPDATE AS IF UPDATE(Grade) IF EXISTS(SELECT * FROM INSERTED JOIN DELETED ON INSERTED.Sno = DELETED.Sno WHERE INSERTED.Grade >= 60 AND DELETED.Grade < 60) ROLLBACK 21
一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工 作,仓库和职工之间是一对多的联系。
职工实体型中具有一对多的联系,职工之间具有领导-被领导关系。 即仓库主任领导若干保管员。
供应商、项目和零件三者之间具有多对多的联系,供应量表示供 应商为项目提供的零件数量。
7
实体
仓库: 仓库号、面积、电话号码
备份与恢复数据库
数据库服务器编程(存储过程、触发器、游标等) ……
开发能访问数据库的应用系统 如何通过浏览器访问数据库 如何通过客户端应用程序访问数据库
6
针对不同的应用领域设计出好的数据库
仓库管理数据库设计举例
一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。 仓库和零件具有多对多的联系。用库存量来表示某种零件在某个 仓库中的数量。
数据库服务器编程(游标举例)
USE students /*逐行输出student表数据的游标(CURSOR)程序*/ GO DECLARE cur_S CURSOR FOR SELECT Sno,Sname,Ssex FROM student WHERE Sage = 20 DECLARE @Sno CHAR(7), @Sname CHAR(10), @Ssex CHAR(2) OPEN cur_S FETCH NEXT FROM cur_S INTO @Sno, @Sname, @Ssex PRINT '学号 姓名 性别' WHILE @@FETCH_STATUS = 0 BEGIN PRINT '--------------------' PRINT @Sno+@Sname+@Ssex FETCH NEXT FROM cur_S INTO @Sno, @Sname, @Ssex END CLOSE cur_S DEALLOCATE cur_S 22
医院数据库应用 银行数据库应用 宾馆数据库应用 (网上)书店数据库应用 (机票/车票)票务数据库应用 ……
3
Leabharlann Baidu
示例:网站数据库中的图书数据浏览
4
示例:客房管理数据库中数据显示
5
二、怎样才能为用户提供数据库服务?
针对不同的应用领域设计出好的数据库 利用数据库管理系统管理数据库 建立数据库(关系表结构、索引、视图) 操作数据库表(插入数据,更新数据,查询数据) 安全性控制(如:数据库用户使用权限控制)
数据库原理与应用
课程简介
1
课程简介
现实生活中的数据库应用
怎样才能为用户提供数据库服务
学习数据库技术的初步目标
如何逐步掌握数据库技术
主要参考书 课程结构 课程要求
2
一、现实生活中的数据库应用
学校数据库应用
学生成绩管理数据库 图书管理数据库 人事档案管理数据库 财务管理数据库 ……
10
利用SQL Server 2005建立数据库及表
数 据 库
表设计区
11
创建students数据库的简单语句:
CREATE DATABASE students
12
表
13
创建表的语句举例
CREATE TABLE student ( Sno char ( 7 ) PRIMARY KEY, Sname char ( 10 ) NOT NULL, Ssex char (2), Sage tinyint , Sdept char (20) )
17
备份与恢复数据库
将“students”数据库备份到备份设备
MyBK_1上。 BACKUP DATABASE students TO MyBK_1 假设已对“students”数据库进行了完整备份, 并备份到MyBK_1备份设备上。则恢复 students数据库的语句为: RESTORE DATABASE students FROM MyBK_1
14
操作数据库表(插入数据)
将新生记录( 9512101 ,李勇,男, 19岁,
计算机系)插入到Student表中。
INSERT INTO Student VALUES (' 9512101 ', '李勇', '男', 19, '计算机系')
15
操作数据库表(查询数据)
查询全体学生的学号与姓名。
18
SQL Server 2005中的数据库备份界面
19
数据库服务器编程(存储过程举例)
CREATE Procedure sp_student (@sage int =NULL) AS IF @sage IS NULL BEGIN PRINT '必须提供一个数值作参数!' RETURN 1 END IF NOT EXISTS (SELECT * FROM student WHERE sage = @sage) BEGIN PRINT '没有满足条件的记录!' RETURN -1 END SELECT * FROM student WHERE sage = @sage RETURN 0 20
零件 :零件号、名称、规格、单价、描述 供应商:供应商号、姓名、地址、电话号码、帐号 项目:项目号、预算、开工日期 职工:职工号、姓名、年龄、职称
8
9
数据库中基本表结构
仓库(仓库号,面积,电话号码)
零件(零件号,名称,规格,单价,描述) 供应商(供应商号,姓名,地址,电话号码,帐号) 项目(项目号,预算,开工日期) 职工(职工号,姓名,年龄,职称,仓库号,领导) 库存(仓库号,零件号,库存量) 供应(零件号,供应商号,项目号,供应量)
SELECT Sno, Sname FROM Student
查询结果
16
数据库用户使用权限控制
为用户user1授予Student表的查
询权和插入权。
GRANT SELECT,INSERT ON Student TO user1
收回用户user1对Student表的插
入权。
REVOKE INSERT ON Student FROM user1