38 09网络数据库电子教案实践.docx

上传人:b****1 文档编号:1619698 上传时间:2023-05-01 格式:DOCX 页数:36 大小:308.75KB
下载 相关 举报
38 09网络数据库电子教案实践.docx_第1页
第1页 / 共36页
38 09网络数据库电子教案实践.docx_第2页
第2页 / 共36页
38 09网络数据库电子教案实践.docx_第3页
第3页 / 共36页
38 09网络数据库电子教案实践.docx_第4页
第4页 / 共36页
38 09网络数据库电子教案实践.docx_第5页
第5页 / 共36页
38 09网络数据库电子教案实践.docx_第6页
第6页 / 共36页
38 09网络数据库电子教案实践.docx_第7页
第7页 / 共36页
38 09网络数据库电子教案实践.docx_第8页
第8页 / 共36页
38 09网络数据库电子教案实践.docx_第9页
第9页 / 共36页
38 09网络数据库电子教案实践.docx_第10页
第10页 / 共36页
38 09网络数据库电子教案实践.docx_第11页
第11页 / 共36页
38 09网络数据库电子教案实践.docx_第12页
第12页 / 共36页
38 09网络数据库电子教案实践.docx_第13页
第13页 / 共36页
38 09网络数据库电子教案实践.docx_第14页
第14页 / 共36页
38 09网络数据库电子教案实践.docx_第15页
第15页 / 共36页
38 09网络数据库电子教案实践.docx_第16页
第16页 / 共36页
38 09网络数据库电子教案实践.docx_第17页
第17页 / 共36页
38 09网络数据库电子教案实践.docx_第18页
第18页 / 共36页
38 09网络数据库电子教案实践.docx_第19页
第19页 / 共36页
38 09网络数据库电子教案实践.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

38 09网络数据库电子教案实践.docx

《38 09网络数据库电子教案实践.docx》由会员分享,可在线阅读,更多相关《38 09网络数据库电子教案实践.docx(36页珍藏版)》请在冰点文库上搜索。

38 09网络数据库电子教案实践.docx

3809网络数据库电子教案实践

课次

第3次实践课

章节课题

实验三企业管理器创建数据表(设置表的主键、外键和建立表间的关系;为表增加约束)

教学目的和要求

掌握使用企业管理器创建数据库表(建立主外表关系、为表添加约束)及添加数据

重点难点

设置表的主键、外键和建立表间的关系;为表增加约束

课时

2课时

讲授方式

上机操作

教学过程

附于表后

作业

附于表后

课堂总结

用企业管理器创建数据库表及向数据库表中录入数据

试验三

创建数据库操作步骤:

“SQLServer组”,右击——“新建SQLServer注册”(注意:

服务器选择(local))——“数据库”,右击——“新建数据库”——“设置数据库属性”(常规、数据文件、事务日志,此三项设置可参照教材P81)

常规:

输入“名称”

数据文件:

主要数据文件(文件名,一般会默认生成、位置、初始大小、文件自动增长、最大文件大小),扩展名.MDF;次要数据文件(文件名,一般会默认生成、位置、初始大小、文件自动增长、最大文件大小),扩展名.NDF;

事务日志:

文件名,一般会默认生成、位置、初始大小、文件自动增长、最大文件大小。

.LDF

第一部分:

创建数据库Students(学生数据库)

数据库包括:

一个主文件Students_Data.MDF(初始大小为2MB;文件自动增长:

按百分比20;将文件增长限制为500M)

一个次要文件Students_Data.NDF(初始大小为1MB;文件自动增长:

按兆字节1MB;将文件增长限制为500M)

一个日志文件Students_Log.LDF(初始大小为1MB;文件自动增长:

按百分比20;将文件增长限制为500M)

并且要把这些三个文件文件保存到F盘上的文件夹StudentsData里

创建数据库表步骤:

点击已创建的数据库前的“+”,右击“表”——“新建表”——设计要创建的新数据库表(列名、数据类型、长度、允许空;设置主键、建立约束、关系等等)——点击“保存”按钮——输入表名——点击“确定”

第二部分:

在数据库中创建表:

StudentInfo(学生信息表)表结构如下:

 

 

要求:

 

Scode“标识”设置:

Saddress默认值:

Semail检查约束:

Sphone检查约束

SGrade默认值

 

SSex检查约束

StuCourse(科目表)

CourseID为主键

StuScore(成绩表)

设置StudentID和CourseID做主键

方法:

按Shift键选中StudentID和CourseID,右击,选择“设置主键”

 

Score约束

 

第三部分建立关系

关系图:

关系图命名为Student

第四部:

插入数据

1:

往学生表中插入数据如下:

2:

往科目表中插入数据如下:

3:

往成绩表中插入数据如下:

课次

第4次实践课

章节课题

实验四数据管理(使用T-SQL进行增、改、删数据)

教学目的和要求

理解T-SQL及其作用;使用SQLServer中的逻辑表达式和运算符;

掌握使用T-SQL插入、更新、删除数据

重点难点

T-SQL插入、更新、删除数据

课时

2课时

讲授方式

上机操作

教学过程

附于表后

作业

附于表后

课堂总结

掌握T-SQL增、改、删数据

本次试验的素材:

数据库students;数据库表studentInfo(列名:

Sname、Scode、Saddress、Semail、Sphone、SGrade、SSex);数据库表StuCourse(列名:

CourseId、CourseName、BookName);数据库表StuScore(列名:

StudentId、CourseId、Score)

实验四内容:

第一部分插入数据

插入语句语法格式:

INSERT[INTO]<表名>[列名]

VALUES<值列表>

Ø[INTO]是可选的,可以省略

Ø表名是必须的,表的列名是可选的,如果省略,将一次插入

Ø多个列名和多个值列表用逗号分隔

练习1、往StudentIfo表中插入数据如下:

T-SQL操作代码如下:

练习2、往StuCourse表中插入数据如下:

T-SQL操作代码如下:

练习3、往StuScore表中插入数据如下:

T-SQL操作代码如下:

第二部分:

修改

更新数据语法格式:

UPDATE<表名>SET<列名=更新值>

[WHERE<更新条件>]

练习4、把‘刘明’的地址改为‘湖南常德’,把‘刘明’的性别改为‘男’

updatestudentinfosetssex='男',saddress='湖南常德'wherescode=’刘明’

练习5、把所有学生的CourseID为3的课程成绩提高5%

updatestuscoresetscore=score*1.05wherecourseid=3

练习6、把Email中含有sohu的学生年级改为3,地址改为“湖南长沙”

updatestudentinfosetsaddress='湖南长沙'wheresemaillike'%sohu%'

练习7、把学号为3,科目号为4的学生成绩改为70分

updatestuscoresetscore=70wherestudentid=3andcourseid=4

第三部分:

删除

DELETEFROM<表名>[WHERE<删除条件>]

注意:

TRUNCATETABLE<表名>与

DELETEFROM<表名>等价

练习8、李永因为违反学校纪律,被开除(删除学生名为李永的记录,如果有错误,找出问题,并删除之)

注意:

使用DELETE删除数据时,不能删除被外键值所引用的数据行

提示:

先删外表deletefromstuscorewherestudentid=2

后删主表deletefromstudentinfowherescode=2

 

课次

第5次实践课

章节课题

实验五数据查询(条件查询;返回限制行,查询排序)

教学目的和要求

1.会使用SELECT语句进行条件查询

2.掌握在查询中返回限制行

3.会进行查询排序

重点难点

条件查询、返回限制行查询、查询排序

课时

2课时

讲授方式

上机操作

教学过程

附于表后——实验内容

作业

附于表后的练习

课堂总结

掌握这三种查询

实验五:

一、实验素材(存放在文件夹“sy5素材”)

数据库Students(三个数据库表StudentInfo、StuCourse、StuScore)

数据库表StudentInfo的结构如下

检查约束:

([SClass]like'[0-9][0-9][0-9][0-9][0-9]')

([SEmail]like'%@%')

([SPhone]like'[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')

([SSex]='男'or[SSex]='女')

数据库表StuCourse的结构如下

数据库表StuScore的结构如下:

检查约束:

([Score]>=0and[Score]<=100)

数据库表StudentInfo与数据库表StuScore关系如下:

数据库表StuCourse与数据库表StuScore关系如下:

StudentInfo、StuCourse、StuScore三表的数据分别如下图:

二、实验五操作内容

首先,启动sqlserver服务器;其次,打开企业管理,附加文件夹“sy5素材”下的数据库Students;再次,打开查询分析器,连接好sqlserver服务器。

查询语句通用格式:

SELECT<列名>

FROM<表名>

[WHERE<查询条件表达式>]

[ORDERBY<排序的列名>[ASC或DESC]]

例1、查询StudentInfo的所有数据

操作代码:

select*fromstudentinfo

练习1:

分别查询另两个表的所有数据

例2、查询男学员信息

操作代码:

select*FROMStudentinfowhereSSEX='男'

练习2:

查询女学员信息(有两种方法)

例3、查询08114班学员信息

操作代码:

SELECT*FROMStudentInfoWHERESClass='08114'

练习3:

查询‘湖南长沙’的学员信息

例4、查询‘女’学员信息,只包括学号、姓名、地址;并且按学号的升序显示

操作代码:

SELECTSCode,SName,SaddressFROMStudentinfo

WHERESSEX='女'

ORDERBYScode

练习4:

查询‘男’学员信息,只包括姓名、学号、地址;并且按学号的降序显示

例5、查询不是‘湖南长沙’的学员信息,显示学员学号、学员姓名、学员地址;

操作代码:

SELECTSCodeAS学员编号,SNameAS学员姓名,SAddressAS学员地址

FROMStudentInfo

WHERESAddress<>'湖南长沙'

练习5:

查询不是‘湖南株洲’的学员信息,显示学员学号、学员姓名、学员地址;

例4、查询邮箱不为空的学员姓名、学员邮箱

操作代码:

SELECTSname,SemailFROMStudentInfoWHERESEmailISnotNULL

练习5:

查询邮箱为空的学员姓名、学员邮箱

例6、查询表StudentInfo,显示姓名、地址和常量列‘学校名称’,该常量列的值为’益阳职院’

操作代码:

SELECT姓名=SName,地址=SAddress,'益阳职院'AS学校名称

FROMStudentInfo

练习6、查询表StudentInfo,显示姓名、性别、地址和常量列‘学校名称’,该常量列的值为’湖南师大’

例7、查询女学员的姓名、地址信息,且返回前两行记录

SELECTTOP2SName,SAddress

FROMStudentInfoWHERESSex='女'

练习7:

查询男学员的姓名、电话,且返回前三行记录

例8、查询女学员的姓名、地址信息,且返回前60%记录

SELECTTOP60PERCENTSName,SAddress

FROMStudentInfoWHERESSex='女'

练习8:

查询男学员的姓名、地址信息,且返回前50%记录

例9、查询综合成绩及格的学员成绩信息,显示学员编号、课程编号、综合成绩(原成绩的90%+5)

SELECTStudentIDAs学员编号,courseIDAs课程编号,(Score*0.9+5)As综合成绩

FROMstuScore

WHERE(Score*0.9+5)>=60

ORDERBYScoreasc

练习9:

查询综合成绩及格的学员成绩信息,显示学号、课程编号、综合成绩(原成绩的85%+7)

例10、查询成绩及格的学员成绩信息,显示学员编号、课程编号、成绩;且依次按成绩降序,课程编号升序显示

SELECTStudentIDAs学员编号,courseIDAs课程编号,ScoreAs成绩

FROMstuScore

WHEREScore>=60

ORDERBYScoredesc,CourseIDasc

练习10:

查询成绩高于70的学员成绩信息,显示学员编号、课程编号、成绩;且依次按成绩升序,课程编号降序显示

附加练习:

usenorthwind

select*fromemployees

SELECTFirstName+'.'+LastNameAS'姓名'

FROMEmployees

SELECT'姓名'=FirstName+'.'+LastName

FROMEmployees

思考:

此两条查询语句的作用是否相同,作用是什么?

课次

第6次实践课

章节课题

实验六数据查询(SQLServer2000中的函数用法)、三种多行插入技术

教学目的和要求

掌握字符串函数、日期函数、数学函数、系统函数

会应用多行插入技术

重点难点

字符串函数日期函数三种多行插入技术

课时

2课时

讲授方式

上机操作

教学过程

附于表后

作业

附于表后

课堂总结

掌握SQLServer2000中的函数用法;三种多行插入技术

一、字符串函数

CHARINDEX(指定字符串参数,字符串参数,开始查找位置参数)

用来寻找一个指定的字符串在另一个字符串中的起始位置。

练习1:

查找'C#'在'你们的C#课程'的起始位置,要求从第2个位置开始查找。

LEN(字符串参数)返回传递给它的字符串长度

练习2:

查询返回'MySQL课程’的字符串长度

LOWER(待转换字符串参数)把传递给它的字符串转换为小写

练习3:

把'MYSQL课程'转换成小写,查询显示

UPPER(待转换字符串参数)把传递给它的字符串转换为大写

练习4:

把'sqlserver课程'转换成大写,查询显示

LTRIM(字符串参数)清除字符左边的空格

练习5:

把'sqlserver课程'字符左边的空格清除,查询显示

RTRIM(字符串参数)清除字符右边的空格

练习6:

把'sqlserver课程'字符右边的空格清除,查询显示

RIGHT(指定字符串参数,返回字符个数参数)从字符串右边返回指定数目的字符

练习7:

返回'阿拉法.司马吉'右边的3个字符,查询显示

LEFT(指定字符串参数,返回字符个数参数)从字符串左边返回指定数目的字符

练习8:

返回'阿拉法.司马吉'左边的3个字符,查询显示

REPLACE(指定字符串参数,被替换字符串参数,替换字符串参数)替换一个字符串中的字符

练习9:

把'莫乐可切.杨可'中的‘可’替换成‘米’,查询显示

STUFF(指定字符串参数,起始位置参数,长度参数,替换字符串参数)

在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串

练习10:

把'ABCDEFG'中的第2位置开始,4个字符长度的字符串替换为‘我的专业’,查询显示

二、日期函数

GETDATE()取得当前的系统日期

练习11:

获取当前系统日期,查询显示

DATEADD(日期部分,数值,日期)将指定的数值添加到指定的日期部分后的日期

SELECTDATEADD(mm,4,'99/01/02')

练习12:

给'01/02/1999'的年份增加5,查询显示

DATEDIFF(日期部分,日期1,日期2)两个日期之间的指定日期部分的区别

练习13:

返回'99/01/02'与'99/05/02'的月份区别,查询显示

DATENAME(日期部分,日期)日期中指定日期部分的字符串形式

练习14:

返回'01/01/2000'的月份,查询显示

DATEPART(日期部分,日期)日期中指定日期部分的整数形式

练习15:

返回'01/01/2000'的月份,查询显示

三、数学函数

ABS(数值表达式参数)取数值表达式的绝对值

练习16:

求-43.5的绝对值,查询显示

CEILING(数值表达式参数)返回大于或等于所给数字表达式的最小整数

练习17:

求43.5的最小整数,查询显示;练习18:

求-43.5的最小整数,查询显示;

FLOOR(数值表达式参数)取小于或等于指定表达式的最大整数

练习19:

求43.5的最大整数,查询显示;练习20:

求-43.5的最大整数,查询显示;

POWER(底数数值表达式,指数数值表达式)取数值表达式的幂值

练习21:

求3的2次幂值,查询显示

SIGN(数值表达式参数)取数值表达式的符号,对于正数返回+1,对于负数返回-1,对于0则返回0

练习22:

求-43.5的符号,查询显示

SQRT(数值表达式参数)取浮点表达式的平方根

练习23:

求16的平方根,查询显示

四、系统函数

CONVERT(目标数据类型(长度),待转换数据)用来转变数据类型

例如SELECTCONVERT(VARCHAR(3),123)

思考执行结果:

SELECTCONVERT(float,123)

SELECTCONVERT(int,123.55)

练习24:

将123456转换为可变长度字符数据类型且该数据类型的长度为6,查询显示

练习:

25CURRENT_USER返回当前用户的名字

例如SELECTCURRENT_USER

DATALENGTH(字符串参数)返回用于指定字符串表达式的字节数

练习26:

查询返回'MySQL课程’的字符串字节数*/

练习:

27HOST_NAME()返回当前用户所登录的计算机名字

例如SELECTHOST_NAME()

练习:

28返回当前所登录的用户名称

SELECTSYSTEM_USER

练习:

29从给定的用户ID返回用户名

SELECTUSER_NAME(0)SELECTUSER_NAME

(1)SELECTUSER_NAME

(2)

案例1

某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题:

卡里面的“O和0”(哦和零)“i和1”(哎和一),用户反映说看不清楚,

公司决定,把存储在数据库中的密码中所有的“哦”都改成“零”,把所有的“i”都改成“1”;

请编写SQL语句实现以上要求;

数据库表名:

Card;密码字段名:

PassWord;*/

usebank

deletefromcard

insertcardvalues('01','黎明','0oI1')

insertcardvalues('02','张明','0o23I1')

SELECT*FROMCARD

解决方法一:

UpdateCardSetPassWord=Replace(password,'O','0')

UpdateCardSetPassWord=Replace(password,'I','1')

解决方法二:

UpdateCard

SetPassWord=Replace(Replace(password,'O','0'),'I','1')

案例2

在数据库表中有以下字符数据,如:

13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2

现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,

然后再按照后半部分的数字进行排需,输出要排成这样:

13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2

数据库表名:

SellRecord;字段名:

ListNumber;

SELECT*FROMsellrecord

insertSellRecordvalues('13-1')

insertSellRecordvalues('13-2')

insertSellRecordvalues('13-3')

insertSellRecordvalues('13-10')

insertSellRecordvalues('13-100')

insertSellRecordvalues('13-108')

insertSellRecordvalues('13-18')

insertSellRecordvalues('13-11')

insertSellRecordvalues('13-15')

insertSellRecordvalues('14-1')

insertSellRecordvalues('14-2')

案例2实现操作代码:

SELECTListNumber

FROMSellRecord

ORDERBYConvert(int,Left(ListNumber,CharIndex('-',ListNumber)-1)),

Convert(int,Stuff(ListNumber,1,Charindex('-',ListNumber),''))

多行插入技术1、

当新表中的表结构与旧表的表结构相同时,可以用下面语句把旧表中的所需数据一次性插入到新表中

INSERTINTO<新表名>(新表列名)

SELECT<源表列名>

FROM<源表名>

当新表TongXunLu中的表结构与旧表的表Studentinfo结构相同时,

可以用下面语句把旧表中的所需数据一次性插入到新表中

示例演示操作代码:

INSERTINTOTongXunLu(姓名,地址,电子邮件)

SELECTSName,SAddress,SEmail

FROMStudentinfo

多行插入技术2、

/*我要对一张表作测试工作,但又不想破坏表的数据,怎么办?

----------把这张表复制出来

SELECT源表列名

INTO<新表名>

FROM<源表名>

示例演示操作代码:

SELECTStudentinfo.SName,Studentinfo.SAddress,Studentinfo.SEmail

INTOTxl

FROMStudentinfo

/*紧接上面的问题,当我复制了源表相应的列出来后,发现没有适合做主键的列,怎么?

------------插入新的标识列

SELECT列名1,列名2,…,IDENTITY(数据类型,标识种子,标识增长量)AS列名

INTO新表

FROM原始表

示例演示操作代码:

SELECTStudentinfo.SName,Studentinfo.SAddress,Studentinfo.SEmail,IDENTITY(int,1,1)AsStudentID

INTOTongxl

FROMStudentinfo

多行插入技术3、

前面讲的多行插入都是有源数据存在,那么我想自己输入新的数据进去,

但只想用一条Insert语句,能成功吗?

INSERTINTO<表名>(列名)

SELECT<值列表>UNION

SELECT<值列表>UNION

INSERTSTUDENTinfo2(SName,SGrade,SSex)

SELECT'测试女生1',7,'女'UNION

SELECT'测试女生2',7,'

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

当前位置:首页 > 农林牧渔 > 林学

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

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