数据库系统原理Word文件下载.docx

上传人:b****6 文档编号:21000715 上传时间:2023-01-26 格式:DOCX 页数:14 大小:91.45KB
下载 相关 举报
数据库系统原理Word文件下载.docx_第1页
第1页 / 共14页
数据库系统原理Word文件下载.docx_第2页
第2页 / 共14页
数据库系统原理Word文件下载.docx_第3页
第3页 / 共14页
数据库系统原理Word文件下载.docx_第4页
第4页 / 共14页
数据库系统原理Word文件下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数据库系统原理Word文件下载.docx

《数据库系统原理Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库系统原理Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。

数据库系统原理Word文件下载.docx

SELECT*

[例4]查全体学生的姓名及其出生年份。

SELECTSname,2000-Sage

[例5]查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名。

SELECTSname,'

YearofBirth:

'

,2000-Sage,LOWER(Sdept)

实验五数据查询操作

(二)SQL连接查询语句实验

一、.实验目的与要求:

标准SQL连接查询、嵌套查询,规则、形式较多,需要学生多记,多练,在练习中加强理解、记忆。

二、.实验内容:

需写实验报告

(2))

SQL连接查询、嵌套查询并写出查询结果。

SQL中连接查询的主要类型

广义笛卡尔积、等值连接(含自然连接)、非等值连接查询、自身连接查询、外连接查询、复合条件连接查询

1、广义笛卡尔积

不带连接谓词的连接很少使用

例:

SELECTStudent.*,SC.*

FROMStudent,SC

2、等值与非等值连接查询

等值连接、自然连接、非等值连接

[例1]查询每个学生及其选修课程的情况。

SELECTStudent.*,SC.*

FROMStudent,SC

WHEREStudent.Sno=SC.Sno;

自然连接

等值连接的一种特殊情况,把目标列中重复的属性列去掉。

[例2]对[例32]用自然连接完成。

SELECTStudent.Sno,Sname,Ssex,Sage,

Sdept,Cno,Grade

FROMStudent,SC

WHEREStudent.Sno=SC.Sno;

结果为:

3、自身连接

一个表与其自己进行连接,称为表的自身连接

需要给表起别名以示区别

由于所有属性名都是同名属性,因此必须使用别名前缀

[例3]查询每一门课的间接先修课(即先修课的先修课)

SELECTFIRST.Cno,SECOND.Cpno

FROMCourseFIRST,CourseSECOND

WHEREFIRST.Cpno=SECOND.Cno;

4、外连接(OuterJoin)

[例4]查询每个学生及其选修课程的情况包括没有选修课程的学生----用外连接操作

SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade

WHEREStudent.Sno=SC.Sno(*);

在表名后面加外连接操作符(*)或(+)指定非主体表,非主体表有一“万能”的虚行,该行全部由空值组成,虚行可以和主体表中所有不满足连接条件的元组进行连接,由于虚行各列全部是空值,因此与虚行连接的结果中,来自非主体表的属性值全部是空值

左外连接:

外连接符出现在连接条件的左边

右外连接:

外连接符出现在连接条件的右边

5、复合条件连接

WHERE子句中含多个连接条件时,称为复合条件连接

[例6]查询每个学生的学号、姓名、选修的课程名及成绩。

SELECTStudent.Sno,Sname,Cname,Grade

FROMStudent,SC,Course

WHEREStudent.Sno=SC.Sno

andSC.Cno=Course.Cno;

嵌套查询

嵌套查询概述

一个SELECT-FROM-WHERE语句称为一个查询块

将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询

SELECTSname外层查询/父查询

FROMStudent

WHERESnoIN

(SELECTSno内层查询/子查询

FROMSC

whereCno=’2’);

查询结果为:

实验六数据更新操作——SQL数据更新语句实验

一、实验目的与要求:

二、实验内容:

需写实验报告(3))

update、delete、insert语句的练习并写出结果。

数据更新描述:

数据更新包括三种操作:

1.插入数据2.修改数据3.删除数据

1.插入数据

两种插入数据方式:

插入单个元组;

插入子查询结果

1).插入单个元组

语句格式

INSERT

INTO<

表名>

[(<

属性列1>

[,<

属性列2>

…])]

VALUES(<

常量1>

[,<

常量2>

]…)

功能

将新元组插入指定表中。

[例1]将一个新学生记录

(学号:

95020;

姓名:

陈冬;

性别:

男;

所在系:

IS;

年龄:

18岁)插入到Student表中。

INSERT

INTOStudent

VALUES('

95020'

,'

陈冬'

男'

,18,'

IS'

);

[例2]插入一条选课记录('

1'

)。

INTOSC(Sno,Cno)

95020'

1'

新插入的记录在Grade列上取空值

2).插入子查询结果

[例3]对每一个系,求学生的平均年龄,并把结果存入数据库。

第一步:

建表

CREATETABLEDeptage

(SdeptCHAR(15),/*系名*/

AvgageSMALLINT

/*学生平均年龄*/

第二步:

插入数据

INTODeptage(Sdept,Avgage)

SELECTSdept,AVG(Sage)

GROUPBYSdept;

2.修改数据

1.修改某一个元组的值

[例4]将学生95001的年龄改为22岁。

UPDATEStudent

SETSage=22

WHERESno='

95001'

2.修改多个元组的值

[例5]将所有学生的年龄增加1岁。

SETSage=Sage+1;

3.删除数据

1.删除某一个元组的值

[例8]删除学号为95019的学生记录。

DELETE

95019'

2.删除多个元组的值

[例9]删除2号课程的所有选课记录。

FROMSC;

WHERECno='

2'

3.带子查询的删除语句

[例11]删除计算机科学系所有学生的选课记录。

WHERE'

CS'

=

(SELETESdept

WHEREStudent.Sno=SC.Sno);

实验七数据库的安全性和数据库完整性

熟练掌握数据库的安全性和数据库完整性的功能和使用方法,掌握在开发环境下SQL语言中数据库的安全性和数据库完整性的语句操作。

需写实验报告(4))

1.数据库的安全性

(1).数据库的授权(GRANT)

GRANT语句的一般格式:

GRANT<

权限>

[,<

]...

[ON<

对象类型>

<

对象名>

]

TO<

用户>

]...

[WITHGRANTOPTION];

GRANT功能:

将对指定操作对象的指定操作权限授予指定的用户。

例1把查询Student表权限授给用户U1

GRANTSELECT

ONTABLEStudent

TOU1;

例2把对Student表和Course表的全部权限授予用户U2和U3

GRANTALLPRIVILIGES

ONTABLEStudent,Course

TOU2,U3;

例3把对表SC的查询权限授予所有用户

ONTABLESC

TOPUBLIC;

例4把查询Student表和修改学生学号的权限授给用户U4

 GRANTUPDATE(Sno),SELECT

ONTABLEStudent

TOU4;

例5把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户

GRANTINSERT

TOU5

WITHGRANTOPTION;

执行例5后,U5不仅拥有了对表SC的INSERT权限,

还可以传播此权限:

例6GRANTINSERTONTABLESCTOU6

同样,U6还可以将此权限授予U7:

例7GRANTINSERTONTABLESCTOU7;

但U7不能再传播此权限。

U5-->

U6-->

U7

(2).收回权限(REVOKE)

REVOKE语句的一般格式为:

REVOKE<

FROM<

]...;

功能:

从指定用户那里收回对指定对象的指定权限

例9收回所有用户对表SC的查询权限

REVOKESELECT

ONTABLESC

FROMPUBLIC;

例10把用户U5对SC表的INSERT权限收回

REVOKEINSERT

ONTABLESC

FROMU5;

2.数据库完整性

什么是数据库的完整性

数据的正确性和相容性

防止不合语义的数据进入数据库。

例:

学生的年龄必须是整数,取值范围为14--29;

学生的性别只能是男或女;

学生的学号一定是唯一的;

学生所在的系必须是学校开设的系;

完整性:

是否真实地反映现实世界

数据库的完整性分为实体完整性、参照完整性、用户定义的完整性。

例11.将student表中在Sno属性定定义为码。

CREATETABLEstudent

(Snochar(16)PRIMARYKEY,

Snamechar(10)NOTNULL,

Ssexchar

(2),

SageSMALLINT,

Sdeptchar(20)

);

例11.定义SC中的参照完整性。

CREATETABLESC

(Snochar(16)NOTNULL,

Cnochar(4)NOTNULL,

GradeSMALLINT,

PRIMARYKEY(Sno,Cno),

FOREIGNKEY(Sno)REFERENCESstudent(Sno),

FOREIGNKEY(Cno)REFERENCESCourse(Cno)

实验八数据库连接技术——客户端访问数据库实验

1、实验目的

1.学会利用ADO对象编写数据库访问程序

2.学会采用C/S模式开发数据库应用的方法

1、实验工具

数据库系统为SqlServer2000,开发工具选择VisualBasic(Delphi、C#或者PowerBuilder)等。

3、实验内容

系统结构说明:

通常,一个数据库应用系统是由前后3部分组合而成的:

前端程序、中间的数据库组件、后端的数据库。

如图所示:

目前多数的RAD工具都直接提供了数据库组件如VB中的ADO、VB.net中的ADO.net等,可以大大简化我们的开发工作。

本次实验要求完成以下内容:

1、设计一个窗体,显示employee数据库中的person表中指定部门号的员工记录,其中部门号通过文本框输入。

2、设计一个窗体,实现部门表的维护,包括部门的浏览,添加,修改,删除和更新等。

3、设计一个应用程序,实现工资数据的查询(要求:

通过指定员工姓名查询)、添加、删除和更新操作,工资数据的统计(要求:

能够按部门统计,按时间统计,按员工姓名统计)。

4、实验报告

1、实验各项内容实现的过程。

2、系统运行情况(系统运行的界面)

3、实验结果分析。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1