目录

  • 第1单元    数据库系统导论
    • ● 任务1.1  数据库基本概念
    • ● 任务1.2  设计E—R 图
    • ● 任务1.3   将E-R图转换成关系模型
    • ● 任务1.4   练习与作业
    • ● 教与学参考资源
  • 第2单元   认识SQL SERVER数据库
    • ● 任务2.1 数据库应用场景
    • ● 任务2.3  SQL  Server 数据库安装
    • ● 任务2.4 SQL Server 的管理
    • ● 任务2.5  使用SSMS连接数据库
    • ● 教与学参考资源
  • 第3单元  创建和管理数据库
    • ● 任务3.1 创建数据库
    • ● 任务3.1(2)  命令创建数据库
    • ● 任务3.2 管理数据库
    • ● 任务3.2(2) 查看、收缩数据库
    • ● 教与学参考资源
  • 第4单元 创建和管理数据库表
    • ● 任务4.1 SQL Server常用数据类型
    • ● 任务4.2  创建数据表
    • ● 任务4.3  命令创建表
    • ● 任务4.4 实施完整性约束
    • ● 教与学参考资源
  • 第 5 单元   查询数据表
    • ● 任务5.1 单表数据查询
    • ● 任务5.2 多表数据查询
    • ● 任务5.3 嵌套查询
    • ● 任务5.4 合并查询结果
    • ● 教与学参考资源
  • 第6单元  管理表中数据
    • ● 任务6.1   添加数据
    • ● 任务6.2  修改数据
    • ● 任务6.3  删除数据
    • ● 习题与训练
    • ● 教与学参考资源
  • 第7单元  使用索引和视图
    • ● 任务7.1  使用索引
    • ● 使用T-SQL创建索引
    • ● 任务7.2  使用视图
    • ● 使用T-SQL语句创建视图
    • ● 教与学参考资源
  • 第8单元 Transact-SQL语言编程
    • ● 任务8.1   声明和使用变量
    • ● 任务8.2   流控语句
    • ● 任务8.3   常用系统函数
    • ● 任务8.4   创建自定义函数
    • ● 教与学参考资源
  • 第9单元  事务和锁
    • ● 任务   9.1     事务
    • ● 事务的基本操作
    • ● 任务9.2    锁
    • ● 死锁及避免方法(例)
    • ● 教与学参考资源
  • 第10单元  创建和管理存储过程
    • ● 任务10.1 存储过程及优点
    • ● 任务10.2 创建和执行存储过程
    • ● 任务10.3   存储过程参数和返回值
    • ● 任务10.4 修改、删除、 重新编译存储过程
    • ● 教与学参考资源
  • 第11单元 创建和管理触发器
    • ● 任务1 触发器的作用和分类
    • ● 任务2 触 发器的创建与执行
    • ● 任务3 创建级联触发器
    • ● 任务4 修改、删除触发器
  • 第12单元 创建和使用游标
    • ● 任务1  游标的作用及使用步骤
    • ● 任务2  创建基本游标
    • ● 任务3  使用变量保存游标数据
    • ● 任务4  使用循环环提取游标数据
  • 第13单元 SQL Server用户管理
    • ● 任务1数据库安全管理概述
    • ● 任务2SQL Server 安全机制
    • ● 任务3 账号、角色及权限管理
    • ● 任务4数据库完整性管理
    • ● 任务5 数据库的备份与还原
    • ● 任务6   数据的导入与导出
  • 第14单元  综合应用案例
    • ● 概述
    • ● 需求分析
    • ● 概述设计-逻辑设计- 物理设计
    • ● 编写数据库设计说明书
  • 学生做项目成果展示
    • ● 项目一  设计《我班同学数据库》
    • ● 项目二  设计《(Teaching)教学数据库》
    • ● 项目三  数据库应用系统设计开发项目
    • ● 项目四 《华夏-宿舍管理系统》设计开发
    • ● 项目五   综合实训大作业
    • ● 综合实训团队项目大作业
    • ● 学生完成项目摘录展示
  • 总复习与综合训练
    • ● 总复习
    • ● 综合训练一
    • ● 综合训练二
    • ● 综合训练三
    • ● 综合训练四
    • ● 综合训练五
    • ● 简答综合训练
  • 在线专题测验
    • ● 自检自测一
    • ● 自检自测二
  • 拓展   数据库管理工具平台  Navicat
    • ● 关于Navica
    • ● Navicat 的系统需求
    • ● Navicat 的用户界面
    • ● Navicat 创建数据库对象
    • ● 在Navicat创建的SQL 程序脚本
    • ● 在Navicat创建的SQL  server 脚本(2)
    • ● 综合实训(1)
    • ● 综合实训(2)
  • 技术拓展   (MYSQL)数据库技术与应用
    • ● MYSQL技术
  • 教与学图片剪影
    • ● 教学团队
    • ● 学生学习实训
    • ● 活动与交流
综合实训(1)

综合实训(一)

1、在数据库【gxhx教务数据库】上,创建【会员】表

操作:

USE  gxhx教务数据库


CREATE TABLE 会员 (

  会员ID  int  PRIMARY KEY,

  登录名  varchar(20)  NULL DEFAULT NULL,

  用户名  varchar(30)  NULL DEFAULT NULL,

  密码 varchar(50)  NULL DEFAULT NULL,

  性别 char(2) NULL DEFAULT NULL,

  出生日期 date NULL DEFAULT NULL,

  所在城市 varchar(50)  NULL DEFAULT NULL,

  邮箱 varchar(50)  NULL DEFAULT NULL,

  积分 int NULL DEFAULT NULL,

  注册时间 date NULL DEFAULT NULL

)


--插入测试数据

INSERT INTO 会员 VALUES (1, '17598632598', '谢小明', '0x4c0c5763662fea4cfc25fd5160f4a3bc', '男', '2005-12-28', '广州', '214896335@qq.com', 72, '2021-09-10');

INSERT INTO 会员 VALUES (2, '14786593245', '蔡静', '0x7a66743ad810f7dd1b19254a722dfcb8', '女', '1998-10-28', '深圳', '258269775@qq.com', 139, '2021-09-10');

INSERT INTO 会员  VALUES (3, '18974521635', '段湘林', '0x81d0b79f9be07ea27c03432bc0fc205d', '男', '2000-03-01', '长沙', '127582934@qq.com', 0, '2021-09-10');

INSERT INTO 会员 VALUES (4, '13598742685', '盛伟刚', '0x605f44e0ae84888b6c56bbc551026ec3', '男', '1994-04-20', '北京', '24596325@qq.com', 58, '2021-09-10');

INSERT INTO 会员 VALUES (5, '14752369842', '李小莉', '0x6075de3c82f97982335e48778524ef03', '女', '1989-09-03', '广州', NULL, 8, '2021-09-10');

INSERT INTO  会员 VALUES (6, '16247536915', '罗湘萍', '202cb962ac59075b964b07152d234b70', '女', '1985-09-24', '长沙', '2157596@qq.com', 541, '2021-09-10');

INSERT INTO 会员 VALUES (7, '18245739214', '柴宗文', '202cb962ac59075b964b07152d234b70', '男', '2000-02-19', '北京', '225489365@qq.com', 104, '2021-09-10');

INSERT INTO 会员 VALUES (8, '17632954782', '冯玲珍', '202cb962ac59075b964b07152d234b70', '女', '1994-01-24', '广州', '', 349, '2021-09-10');

INSERT INTO 会员 VALUES (9, '15874269513', '陈郭', '202cb962ac59075b964b07152d234b70', '女', '2001-07-02', '北京', '2159635874@qq.com', 65, '2021-09-10');

INSERT INTO 会员 VALUES (10, '17654289375', '韩明', '202cb962ac59075b964b07152d234b70', '男', '2002-12-23', '长沙', '2459632@qq.com', 0, '2021-09-10');

INSERT INTO 会员 VALUES (11, '19875236942', '罗松', '202cb962ac59075b964b07152d234b70', '女', '2002-09-12', '广州', '25578963@qq.com', 237, '2021-09-10');

INSERT INTO  会员 VALUES (12, '17652149635', '李全', '202cb962ac59075b964b07152d234b70', '男', '2001-04-29', '长沙', '2225478@qq.com', 62, '2021-09-10');

INSERT INTO 会员 VALUES (101, '20231001', '谢伟明', 'e69bdaa8c073a9bf4388e1b4a23a6511', '男', '2005-11-28', '广州', '214896335@qq.com', 72, '2023-09-10');

INSERT INTO 会员 VALUES (102, '20231002', '谢伟芳', '97da1d8cf844333ce468d7478355837e', '女', '2005-10-28', '广州', '214896336@qq.com', 72, '2023-09-10');

INSERT INTO 会员 VALUES (103, '20231003', '林小明', 'e69bdaa8c073a9bf4388e1b4a23a6511', '男', '2005-09-28', '广州', '214896335@qq.com', 72, '2023-09-10');

INSERT INTO 会员 VALUES (104, '20231004', '林小芳', '97da1d8cf844333ce468d7478355837e', '女', '2005-05-28', '广州', '214896336@qq.com', 72, '2023-09-10');

用密码无加密存储:

INSERT INTO 会员 VALUES (108, '20231018', '李小芳', '20238899', '女', '2005-05-28', '广州', '214896336@qq.com', 72, '2023-09-10');


将 会员ID<13的记录的密码修改为 登录名,并用MD5加密算法加密存储。 

UPDATE   会员   set 密码=sys.fn_varbintohexstr(HASHBYTES('MD5',登录名))     WHERE   会员ID<13


用MD5加密存储密码:

INSERT INTO 会员 VALUES (109, '20232023', '刘小宝',sys.fn_varbintohexstr(HASHBYTES('MD5','99999999')), '男', '2003-10-18', '广州', '214896339@qq.com', 88, '2023-09-12');

SELECT * FROM   [会员]


查询:SELECT   *   FROM  会员     ORDER BY 所在城市,积分,会员ID 



创建过程,对会员表查询  根据所在城市及姓名

CREATE PROCEDURE seleCitysex @City char(20),@Sex nchar(1)

  AS

    SELECT * From  会员

    WHERE 所在城市=@City AND 性别=@Sex


  调用运行过程: EXECUTE    seleCitysex  @City='广州',@sex='女'

或:EXEC       seleCitysex  @City='广州',@sex='男'

或直接在Navicat  上   运行过程函数并输入参数。  


#修改无加密的密码的存储过程,

CREATE PROCEDURE uppassword  @Uname char(20) ,  @upass varchar(20) ,  @newpass varchar(20)

  AS

      UPDATE   会员   set 密码=@newpass

           WHERE  登录名=@uname AND 密码=@upass


调用运行过程示例(注意观察是否修改成功):

SELECT * FROM [dbo].[会员]

EXECUTE    uppassword  @Uname='20232023' ,  @upass='88888888' ,  @newpass='66666666'

SELECT * FROM [dbo].[会员]


 EXECUTE    uppassword  @Uname='20232023' ,  @upass='99999999' ,  @newpass='66669999'

SELECT * FROM [dbo].[会员]


或直接在Navicat  上   运行过程函数并输入参数。


#修改用md5算法加密过的密码的存储过程

CREATE PROCEDURE upmd5password  @Uname char(20) ,  @upass varchar(20) ,  @newpass varchar(20)

    AS  UPDATE   会员   set 密码=sys.fn_varbintohexstr(HASHBYTES('MD5',@newpass))

           WHERE  登录名=@uname    AND  

                             密码=sys.fn_varbintohexstr(HASHBYTES('MD5',@upass))


调用运行过程 upmd5password  示例(注意观察是否修改成功):

SELECT * FROM [dbo].[会员]

EXECUTE    upmd5password  @Uname='20232023' ,  @upass='88888888' ,  @newpass='66666666'

SELECT * FROM [dbo].[会员]


EXECUTE    upmd5password  @Uname='20232023' ,  @upass='99999999' ,  @newpass='66669999'

SELECT * FROM [dbo].[会员]



练习:

创建过程,对会员表查询  根据登录名及密码合法才准查阅自己的信息

(下面程序若存在错误,请调试修正)

CREATE  PROCEDURE   sename   @uname varchar(20) , @upass varchar(20)

  AS

    SELECT  *   From  会员

       WHERE    登录名=@uname    AND  

      ( 密码=@upass  OR  密码=sys.fn_varbintohexstr(HASHBYTES('MD5',@upass)) )


调用运行过程示例(注意观察是否成功):

EXECUTE    seleuname  @Uname='20232023' ,  @upass='66669999'