《程序逻辑和C语言实现》教案.docx

上传人:b****3 文档编号:10331637 上传时间:2023-05-25 格式:DOCX 页数:17 大小:102.02KB
下载 相关 举报
《程序逻辑和C语言实现》教案.docx_第1页
第1页 / 共17页
《程序逻辑和C语言实现》教案.docx_第2页
第2页 / 共17页
《程序逻辑和C语言实现》教案.docx_第3页
第3页 / 共17页
《程序逻辑和C语言实现》教案.docx_第4页
第4页 / 共17页
《程序逻辑和C语言实现》教案.docx_第5页
第5页 / 共17页
《程序逻辑和C语言实现》教案.docx_第6页
第6页 / 共17页
《程序逻辑和C语言实现》教案.docx_第7页
第7页 / 共17页
《程序逻辑和C语言实现》教案.docx_第8页
第8页 / 共17页
《程序逻辑和C语言实现》教案.docx_第9页
第9页 / 共17页
《程序逻辑和C语言实现》教案.docx_第10页
第10页 / 共17页
《程序逻辑和C语言实现》教案.docx_第11页
第11页 / 共17页
《程序逻辑和C语言实现》教案.docx_第12页
第12页 / 共17页
《程序逻辑和C语言实现》教案.docx_第13页
第13页 / 共17页
《程序逻辑和C语言实现》教案.docx_第14页
第14页 / 共17页
《程序逻辑和C语言实现》教案.docx_第15页
第15页 / 共17页
《程序逻辑和C语言实现》教案.docx_第16页
第16页 / 共17页
《程序逻辑和C语言实现》教案.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《程序逻辑和C语言实现》教案.docx

《《程序逻辑和C语言实现》教案.docx》由会员分享,可在线阅读,更多相关《《程序逻辑和C语言实现》教案.docx(17页珍藏版)》请在冰点文库上搜索。

《程序逻辑和C语言实现》教案.docx

《程序逻辑和C语言实现》教案

第四章SQLServer数据库表管理

(2)

 

1.回顾上一章:

[10分钟]……………………………………………………………………….2

2.课程知识点讲解:

……………………………………………………………………….2

2.1.T-SQL语句回顾:

[10分钟]2

2.2.使用SQL语句创建和删除数据库:

[20分钟]3

2.2.1.创建数据库3

2.2.2.删除数据库4

2.3.使用SQL语句创建和删除表[20分钟]5

2.3.1.创建表5

2.3.2.删除表6

2.4.使用SQL语句创建和删除约束:

[20分钟]6

2.5.掌握创建安全帐户的SQL语句:

[30分钟]7

3.本章总结[10分钟]………………………………………………………………………..9

4.考核点…………………………………………………………………………………………9

5.测试题…………………………………………………………………………………………9

6.扩展部分常见编程错误…………………………………………………………………10

7.学生问题汇总……………………………………………………………………………10

8.作业………………………………………………………………………………………..10

 

授课教师:

课时:

90分钟

 

●本章主要目标

⏹掌握建库的SQL语句

⏹掌握建表的SQL语句

⏹掌握加约束的SQL语句

⏹掌握创建安全帐户的SQL语句

●本章重点

⏹掌握建库的SQL语句

⏹掌握建表的SQL语句

⏹掌握加约束的SQL语句

●本章难点

⏹创建安全帐户的SQL语句

1.回顾上一章:

[10分钟]

●数据完整性的相关分类:

实体完整性、引用完整性、域完整性和自定义完整性。

●使用企业管理器创建表的注意事项(命名字段名、类型、实施完整性约束)

●当我们建立的表没有相关的主键时,我们可以使用标识列来唯一条记录

●数据的转换服务(DTS)

2.课程知识点讲解:

2.1.T-SQL语句回顾:

[10分钟]

老师提问:

问题1:

数据库文件的组成?

注意:

-1-主数据文件(*.mdf)

包含数据库的启动信息、存储数据有且只有一个

-2-次要文件(*.ndf)

存储数据

-3-日志文件(*.ldf)

用于恢复数据库的日志信息

2:

数据库的其他属性

-1-文件存放位置

-2-文件增长设置

-3-文件容量设置

强调:

文件容量设置最好不要选择增长不受限制,因为当数据量很大时会占满整个文件所在的磁盘。

3:

数据操纵语言的增加删除查询修改的sql语法?

过渡

思考:

当项目经测试基本满足客户的需求后,需要部署在客户的实际环境中试运行,我们在部署前需要考虑的是,后台的数据库如何移植到客户的计算机中?

解答:

考虑各种数据库版本的兼容性,行之有效的办法就是编写比较通用的SQL语句,编写完毕后,存入*.sql文件中,最后复制到客户的计算机中执行,从而实现后台数据库的移植。

所以我们还需要掌握如何使用SQL语句,实现建库、建表、加约束和创建登录帐户等。

2.2.使用SQL语句创建和删除数据库:

[20分钟]

老师提问:

数据库和表的关系是什么?

我们为什么要建库?

2.2.1.创建数据库

Ø语法:

CREATEDATABASE数据库名

ON[PRIMARY]

(<数据文件参数>[,…n][<文件组参数>])

[LOGON]

(<日志文件参数>[,…n])

Ø文件的具体参数语法:

([NAME=逻辑文件名,]

FILENAME=物理文件名

[,SIZE=大小]

[,MAXSIZE={最大容量|UNLIMITED}]

[,FILEGROWTH=增长量])[,…n]

 

其中,[]表示可选部分,{}表示需要的部分。

演示1:

一个数据文件和一个日志文件

CREATEDATABASE数据库名

ONPRIMARY--默认就属于PRIMARY主文件组,可省略

(/*数据文件的具体描述*/

NAME=’stuDB_data’,--主数据文件的逻辑名

FILENAME=’D:

\file\stuDB_data.mdf’,--主数据文件的物理名

SIZE=5mb,--主数据文件的初始大小

MAXSIZE=100mb,--主数据文件增长的最大值

FILEGROWTH=15%--主数据文件增长的增长率)

[LOGON]

(/*日志文件的具体描述,各参数含义同上*/

NAME=’stuDB_log’,

FILENAME=’D:

\file\stuDB_log.ldf’,

SIZE=2mb,

FILEGROWTH=1mb)

GO--和后续的SQL语句分隔开

 

演示2:

多个数据文件和多个日志文件

删除数据库

老师提问

问题1:

如果SQLServer中已存在stuDB数据库,再次运行建库语句,可能会怎么样?

演示→报错

解答:

建库之前,先检测是否存在stuDB数据库,如有,就删除它,然后重新建。

2:

如何检测是否存在stuDB数据库?

解答:

新建的数据库都在系统数据库master的表sysdatabases中。

只需查看该表的name列即可。

Ø删除数据库语法:

DROPDATABASE数据库名

USEmaster--设置当前数据库为master,以便访问sysdatabases表

GO

IFEXISTS(SELECT*FROMsysdatabasesWHEREname='stuDB')

DROPDATABASEstuDB

CREATEDATABASEstuDB

ON(…..)

LOGON

(…)

GO

演示:

 

 

2.3.使用SQL语句创建和删除表[20分钟]

Ø回顾

1、建表的步骤:

确定表中有哪些列

确定每列的数据类型

给表添加各种约束

创建各表之间的关系

2、数据类型

2.3.1.创建表

Ø语法

CREATETABLE表名

(字段1数据类型列的特征,

字段2数据类型列的特征,

...

 

演示1:

创建学生信息表stuInfo

USEstuDB--将当前数据库设置为stuDB

GO

CREATETABLEstuInfo/*-创建学生信息表-*/

stuNameVARCHAR(20)NOTNULL,--非空(必填)

stuNoCHAR(6)NOTNULL,--学号,非空(必填)

stuAgeINTNOTNULL,--年龄,INT类型默认为4个字节

stuIDNUMERIC(18,0),--身份证号,NUMERIC(18,0)代表18位数字,小数位数为0

stuSeatSMALLINTIDENTITY(1,1),--座位号,自动编号,从1开始递增

stuAddressTEXT--住址,允许为空,即可选输入

GO

演示2:

创建学生信息表stuMarks

CREATETABLEstuMarks

ExamNoCHAR(7)NOTNULL,--考号

stuNoCHAR(6)NOTNULL,--学号

writtenExamINTNOTNULL,--笔试成绩

LabExamINTNOTNULL--机试成绩

老师提问:

问题1:

如果当前数据库中已存在stuInfo表,再次创建出错如何解决?

解答:

先检测是否存在该表,如有,就删除它,然后重新建。

2:

如何检测是否存在stuInfo表?

解答:

在stuDB数据库的系统表sysobjects(对象表)中检查name列即可

2.3.2.删除表

Ø语法

DROPTABLE表名

USEstuDB--将当前数据库设置为stuDB,以便在stuDB数据库中建表

GO

IFEXISTS(SELECT*FROMsysobjectsWHEREname=’stuInfo’)

DROPTABLEstuInfo

演示

2.4.使用SQL语句创建和删除约束:

[20分钟]

Ø回顾

1、约束的目的:

确保表中数据的完整性

2、常用的约束类型

主键约束(PrimaryKeyConstraint)

唯一约束(UniqueConstraint)

检查约束(CheckConstraint)

默认约束(DefaultConstraint)

外键约束(ForeignKeyConstraint)

3、约束名的取名规则:

约束类型_约束字段

Ø添加约束的语法

ALTERTABLE表名

ADDCONSTRAINT约束名约束类型具体的约束说明

 

演示:

给学员信息表stuInfo添加约束

主键(PrimaryKey)约束:

如PK_stuNo

唯一(UniqueKey)约束:

如UQ_stuID

默认(DefaultKey)约束:

如DF_stuAddress

检查(CheckKey)约束:

如CK_stuAge

外键(ForeignKey)约束:

如FK_stuNo

 

----添加主键约束(stuNo作为主键)

ALTERTABLEstuInfo

ADDCONSTRAINTPK_stuNoPRIMARYKEY(stuNo)

----添加唯一约束(身份证号唯一)

ALTERTABLEstuInfo

ADDCONSTRAINTUQ_stuIDUNIQUE(stuID)

----添加默认约束(如果地址不填,默认为“地址不详”)

ALTERTABLEstuInfo

ADDCONSTRAINTDF_stuAddress

DEFAULT('地址不详')FORstuAddress

----添加检查约束(要求年龄只能在15~40之间)

ALTERTABLEstuInfo

ADDCONSTRAINTCK_stuAge

CHECK(stuAgeBETWEEN15AND40)

----添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段为stuNo)

ALTERTABLEstuMarks

ADDCONSTRAINTFK_stuNo

FOREIGNKEY(stuNo)REFERENCESstuInfo(stuNo)

GO

 

Ø删除约束的语法

ALTERTABLE表名

DROPCONSTRAINT约束名

演示:

删除stuInfo表中地址默认约束的语句

ALTERTABLEstuInfo

DROPCONSTRAINTDF_stuAddress

 

2.5.掌握创建安全帐户的SQL语句:

[30分钟]

Ø回顾SQLServer的3层安全模式

类比(小区的3层验证关口)门卫→单元楼→自己房间

第一关:

登录到SQLServer系统(相当于小区门卫),即需要登录帐户;

第二关:

访问某个数据库(相当于我们的单元楼),即需要成为该数据库的用户

第三关:

访问数据库中的表(相当于打开自己的房间),即需要数据库管理员DBA授权

 

Ø创建登陆帐户

登录帐户相应有两种:

SQL帐户和Windows帐户

-1-添加Windows登录帐户

EXECsp_grantlogin‘training\S26301’--域名\用户名

-2-添加SQL登录帐户

EXECsp_addlogin‘zhangsan’,‘1234’--用户名,密码

--域名\用户名

Ø创建数据库用户

调用系统存储过程sp_grantdbaccess,其用法为

EXECsp_grantdbaccess‘登录帐户’,’数据库用户’

其中,“数据库用户“为可选参数,默认为登录帐户

 

/*--在stuDB数据库中添加两个用户--*/

USEstuDB

GO

EXECsp_grantdbaccess

'training\S26301','S26301DBUser'

EXECsp_grantdbaccess

'zhangsan','zhangsanDBUser'

 

系统内置的数据库用户dboguest

Ø向数据库用户授权

授权的语法为:

GRANT权限[ON表名]TO数据库用户

USEstuDB

GO

/*--为zhangsanDBUser分配对表stuInfo的select,insert,update权限--*/

GRANTselect,insert,update

ONstuInfoTOzhangsanDBUser

/*--为S26301DBUser分配建表的权限--*/

GRANTcreatetableTOS26301DBUser

分别在查询分析器中演示,并在企业查询分析器察看效果

 

3.本章总结[10分钟]

●数据库的物理实现一般包括:

Ø创建数据库

Ø创建表

Ø添加各种约束

Ø创建数据库的登录帐户并授权

●创建数据库或表时一般需要预先检测是否存在该对象

Ø指数据库从master系统数据库的sysdatabases表中查询

Ø表从该数据库的系统表sysobjects表中查询

●访问SQLServer某个数据库中的某个表,需要三层验证:

Ø是否是SQLServer的登录帐户

Ø是否是该数据库的用户

Ø是否有足够的权限访问该表

4.考核点

考核点1:

数据库的物理实现

考核点2:

三层验证

5.测试题

建立一学生数据库用来存放学生的相关信息,包括学生的基本信息和考试情况。

(要求全部使用T-SQL来实现,操作环境为SQL查询分析器)

(1)建库:

建立数据库stuDB,要求保存在D:

\file目录下,文件增长率为15%

(2)建表

学生基本信息表stuInfo

字段名称

数据类型

说明

stuName

字符

学生姓名,该栏必填,要考虑姓氏可能是两个字的,如欧阳

stuNo

字符

学号,该栏必填,学号不能重复,且必须是s253**格式

stuSex

字符

学生姓名,该栏必填,且只能是男/女

stuAge

数字

学生年龄,该栏必填,必须在15~40之间

stuSeat

数字

学生定座的座位号,该栏必填,采用自动编号方式,且必须是1~30号

stuAddress

文本

学生地址,该栏可不填,如没有填写,显示地址不详

(3)添加约束:

根据上述表中的说明字段,修改表,添加约束。

(4)向表中插入测试的数据,并查询测试,测试数据如表

学生基本信息表stuInfo

stuName

stuNo

stuSex

stuAge

stuSeat

stuAddress

张三

s25301

18

1

北京海淀

李四

s25303

22

2

河南洛阳

王五

s25302

31

3

钱六

s25304

28

4

江苏扬州

(5)添加SQL帐户

班主任:

帐号是banzhuren,密码是111111,能访问stuInfo,用来填写和修改学生档案

(6)测试权限

6.扩展部分常见编程错误

∙扩展部分1:

设置约束还有其他实现方法

∙常见错误2:

数据库编码标准

7.学生问题汇总

∙学生问题1:

在建表时就制定约束,可以吗?

当约束比较简单时可以,一般推荐将表的结构和约束分开

∙学生问题2:

数据库用户和登录帐户到底有什么区别?

登录帐户是用于登录到SQLServer的凭证,好比进入小区的大门;而数据库用户对应的是每个单元楼门口的钥匙。

也就是说如果用户希望进入多个单元,则需要多个单元搂的钥匙。

8.作业

习题1:

①下面()存储过程用于添加一个数据库安全帐户并授予它访问权限。

A.sp_grantdbacessB.sp_grantlogin

C.sp_grantuserD.sp_grantall

②成功登录到SQLServer后,就可以访问任意数据库了,这种说法()。

A.错误B.正确

③创建数据库时,需要指定()属性。

A.数据库初始大小(size)B.数据库的存放位置

C.数据库的物理名和逻辑名D.数据库的访问权限

④创建图书馆借阅表时,“归还日期”默认为当天,且必须晚于“借出日期”,应采用()约束。

A.检查约束B.默认约束

C.主键约束D.外键约束

⑤某个字段希望存放电话号码,该字段应选用()数据类型。

A.char(10)B.varchar(13)

C.textD.int

⑥在SQLServer中,删除数据库使用()语句。

A.REMOVEB.DELETE

C.ALERTD.DROP

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

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2