1、训练的技能点,掌握创建数据库并为数据表添加约束掌握创建数据表之间的关系使用T-SQL语句对数据进行综合管理使用管理器进行数据库的管理,任务概述模拟QQ在线聊天系统 后台数据库的创建 基本数据表的创建表约束、表间关系的添加进行数据增加、删除、修改、查询,任务描述,问题分析1:整体开发思路,开发步骤明确需求创建数据库创建数据表完善表结构完成数据的增、删、改、查,问题分析2:用户表,存储用户的基本信息:用户表QQUser,问题分析3:基本信息表,存储用户的个人信息,用户基本信息表BaseInfo,问题分析3:关系表,存储用户之间的关系,关系表Relation,难点分析1:理解关系表Relation,
2、QQID列与RelationQQID列的关系RelationStatus列的意义,如果表中存在如下2条记录,代表什么意思?,难点分析2:理解检查约束,QQ密码不得少于6位在线状态的值必须为0、1、20表示在线,1表示离线,2表示隐身用户关系只能是数字0、10表示好友,1表示黑名单人物性别允许为空值,如果输入值就必须为0或10表示男,1表示女用户等级默认值为0年龄必须是在1100之间的整数,Len(PassWord)=6,RelationStatus=0 OR RelationStatus=1,默认约束,Age=1 AND Age=100,难点分析3:表间关系,用户表与基本信息表用户表与关系表,
3、开发计划,用例1:创建QQ数据库及登录名 15分钟用例2:创建表结构 20分钟用例3:添加约束 20分钟用例4:建立关系 10分钟用例5:插入数据 25分钟用例6:查询数据 75分钟用例7:修改数据 45分钟用例8:删除数据 20分钟用例9:分离数据库 10分钟,用例1:创建QQ数据库及登录名,需求说明使用管理器创建QQ数据库,并为其创建登录名QQMaster要求:数据文件初始大小为10MB文件按15%自动增长最大文件大小不受限制日志文件初始大小为5MB文件按1MB自动增长最大文件大小为50MBQQMaster权限等同管理员权限自动创建关联数据库用户QQMaster,完成时间:15分钟,用例2
4、:创建表结构,需求说明按表结构创建相应的表用户表QQUser基本信息表BaseInfo关系表Relation,完成时间:20分钟,用例3:添加约束,需求说明QQ密码不得少于6位在线状态的值必须为0、1、20表示在线,1表示离线,2表示隐身用户关系只能是数字0、10表示好友,1表示黑名单人物性别允许为空值,如果输入值就必须为0或10表示男,1表示女用户等级默认值为0年龄必须是在1100之间的整数,完成时间:20分钟,用例4:建立关系,需求说明用户表与基本信息表用户表与关系表,完成时间:10分钟,共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,用例5:插入数据2-1,需求说
5、明使用T-SQL把表中的数据插入到对应的数据表中,用例5:插入数据2-2,需求说明使用T-SQL把表中的数据插入到对应的数据表中利用导入/导出向导将提供的文本文件数据导入到相对应的数据表中,完成时间:25分钟,共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,用例6:查询数据4-1,需求说明查询限定条件好友信息查询黑名单方面的信息查询用户信息方面的信息,用例6:查询数据4-2,难点提示查询QQ号码为88662753的用户的所有好友信息查询QQ号码为54789625的用户的好友中每个省份的总人数,并且总人数按由大到小排序,使用内联接实现:SELECT FROMINNER J
6、OIN ON,利用SELECT FROMWHEREGROUP BYORDER BY实现 :WHERE(Relation.QQID=54789625 AND Relation.RelationStatus=0 AND Relation.RelationQQID=BaseInfo.QQID),用例6:查询数据4-3,难点提示查询QQ号码为54789625的好友中等级为10级以上的“月亮”级用户信息 查询被当做黑名单人物次数排名前20的用户,使用三表内联接实现:SELECT FROM RelationINNER JOIN BaseInfo ON INNER JOIN QQUser ON ,利用分组查
7、询,按照关系用户QQ号码RelationQQID进行分组,用例6:查询数据4-4,需求说明查询限定条件好友信息 (20分钟)查询黑名单方面的信息 (25分钟)查询用户信息方面的信息(25分钟),完成时间:70分钟,共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,用例7:修改数据3-1,需求说明修改用户的个人信息修改限定条件关系用户的信息修改管理方面的信息,用例7:修改数据3-2,难点提示将好友数量超过20的用户等级提升1个级别,完成此需求分两步走:1、获取好友超过20个的用户QQ号码结果集 SELECT QQID FROM Relation2、利用IN关键字模糊匹配结果
8、集中的QQID进行更新 UPDATE QQUser SET WHERE QQID IN (SELECT QQID FROM Relation),用例7:修改数据3-3,需求说明修改用户的个人信息 (10分钟)修改限定条件关系用户的信息 (15分钟)修改管理方面的信息 (15分钟),完成时间:40分钟,共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,用例8:删除数据2-1,需求说明删除黑名单中的用户删除违规用户删除超过1000天没有登录过的QQ,用例8:删除数据2-2,难点提示删除超过1000天没有登录过的QQ,完成此需求分四步走:1、查询超过1000天没有登录过的QQI
9、D集2、删除Relation表中的数据,利用IN关键字模糊匹配QQID集 DELETE FROM Relation WHERE QQID IN() OR RelationQQID IN()3、删除BaseInfo表中的数据,同理利用IN关键字模糊匹配QQID集 4、删除QQUser表中的数据,完成时间:20分钟,共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,用例9:分离数据库,需求说明分离数据库QQ复制文件到教师指定的提交位置,完成时间:10分钟,项目总结,技能总结,管理器的使用创建库表创建登录名和数据库用户T-SQL 数据插入:INSERT 语句 数据修改:UPDATE语句条件查询:SELECT FROM 表名 WHERE 查询排序:SELECT FROM 表名 ORDER BY 模糊查询:SELECT FROM 表名 WHERE LIKE 内部函数:SELECT AVG()AS 分组查询:SELECT GROUP BY联接查询:SELECT FROM 表1 INNER JOIN 表2 ,作业,课后作业必做编写 QQ数据库管理项目感想,不少于500字选做教员备课时在此添加内容提交时间:xxx提交形式:xxx预习作业背诵英文单词教员备课时在此添加内容,