1、 阶段项目案例 第一部分 案例描述 案例目的 学习Sql server数据库的基本概念、建库、建表、基本增删改查,复杂查询(条件、关联、复合),,同时学习数据库对象:视图、索引的使用,培养学生关于数据库的设计能力与数据的操作能力。 案例难度 ★★★ 案例覆盖技能点 1、 Sql server数据库基本概念 2、 建库、建表、建约束 3、 实现基本增删改查等数据的操作 1) 对数据库进行增加 2) 删除 3) 修改 4、 根据业务的需要建视图、索引、序列和同义词 1) 建视图 2) 建索引 5、 高级查询技术 1) 会使用 group by、关键字
2、2) 会使用CASE…WHEN…THEN… 3) 会使用关联查询 4) 会使用子查询 推荐案例完成时间 1天 第二部分 需求和开发环境 使用技术和开发环境 Sql server 背景 随着社会的发展,电子产品的更新换代的步伐日益加大,手机成了我们生活的必需品,要想买的自己喜欢的手机而且足不出户,就可以通过手机商城来实现。当然手机销售商为了满足广大消费者的这种需求,必须提供线上销售的方式来为消费者服务。 案例需求 手机商城主要的功能就是提供在线的手机销售,要想使消费者买到自己喜欢的手机,就必须把各种不同的手机提供给消费者以备选择,对于销售商来说就必须对手机的各种品牌和
3、型号进行管理。消费者通过浏览网页找到自己满意的手机之后就可以通过网络下订单进行购买。销售商接到订单之后就可以按照订单进行发货,以保证按时的和消费者达成交易。 1. 手机管理 “现在的手机,不但品牌繁多,而且型号、规格、样式等也是多种多样,而且还经常出来一些新特性,你们看看,想个什么办法,能够把这些信息方便地管理起来。” 以上是张总的原话,的确,现在的手机,品牌、样式、型号以及各项参数真是令人目不暇接。随便打开一个介绍手机的网站,就能让人看花眼。手机的品牌有三星、摩托罗拉、诺基亚、LG、夏新、波导、中兴等,每个品牌内又都有各种各样的型号。外观样式以前是直板,后来出了翻盖、滑盖、旋转屏等,网
4、络制式有G网(GSM)、C网(CDMA)和小灵通,新的又出了双卡、双模等。 要描述一款手机,最基本的信息除了上面所说的品牌、型号、外观样式、网络制式外,还有手机的重量、体积、市场价和库存量等,一般还会有一张手机的图片。除此之外,各种参数还有很多,如理论待机时间、理论通话时间、屏幕参数、是否有蓝牙功能、是否带摄相功能、摄相头像素、是否带收音机功能、是否为触摸屏等等,实在是太多了。在系统中,需要对这些信息方便地进行管理。 1) 品牌的管理 表1:品牌表 表名 t_brand(品牌表) 列名 描述 数据类型(精度范围) 空/非空 约束条件 b
5、randid 品牌编号 INT 非空 主键 brandname 品牌名称 NVARCHAR(20) 非空 唯一 手机品牌有:诺基亚、三星、飞利浦、索爱、苹果、摩托罗拉、黑莓、LG、HTC、多普达、联想、天语、夏普等 2) 型号的管理 每种品牌提供若干种系列的产品,每种系列又提供很多型号。每种型号又包括:外观样式、制式、重量、论待机时间、理论通话时间、屏幕参数、是否有蓝牙功能、是否带摄相功能、摄相头像素、是否带收音机功能、是否为触摸屏等等。但外观一般也就分:直板、滑盖、翻盖、侧滑盖和旋转。而制式也仅有:GSM、CDMA、3G、双模和双卡。 表2:外观表 表名 t_a
6、pptype(外观样式表) 列名 描述 数据类型(精度范围) 空/非空 约束条件 apptypeid 样式编号 INT 非空 主键 apptypename 样式名称 NVARCHAR(20) 非空 唯一 手机的外观有:直板、翻盖、滑盖、侧滑盖和旋转。 表3:制式表 表名 t_nettype(网络制式表) 列名 描述 数据类型(精度范围) 空/非空 约束条件 nettypeid 制式编号 INT 非空 主键 nettypename 制式名称 NVARCHAR(20) 非空 唯一 手机制式有:GSM、CDMA、3G、双模和双卡。
7、 表4:手机型号表 表名 t_mobilephone(手机型号) 列名 描述 数据类型(精度范围) 空/非空 约束条件 type 型号 NVARCHAR(20) 非空 主键 apptypeid 外观样式 INT 非空 外键 nettypeid 网络制式 INT 非空 外键 weight 重量 DECIMAL(8,2) Size 尺寸(长宽厚) NVARCHAR(20) picture 图片 NVARCHAR(30) price 市场价 DECIMAL(8,2) IsBlue-tooth 蓝
8、牙 Char(1) 1有 0无 Camera-Pix 摄像头像素 NVARCHAR(20) TouchScreen 触摸屏 NVARCHAR(50) ScreenSize 屏幕尺寸 NVARCHAR(30) Mainscreen 主屏分辨率 NVARCHAR(30) OperationSystem 操作系统 NVARCHAR(30) Battery 标配电池 NVARCHAR(30) Theorykeeptime 理论通话时间 INT Videokeeptime 视频通话时间 INT
9、 Theorywaittime 理论待机时间 INT Cpu CPU NVARCHAR(30) Memory 内存 INT bell 手机铃声 NVARCHAR(50) Is3G 是否支持3G Char(1) 1是 0 否 IsExpansion 是否支持扩展卡 Char(1) 1有 0无 remark 备注 Text 3) 手机 表5:手机明细表 表名 t_mobilephone(手机表) 列名 描述 数据类型(精度范围) 空/非空 约束条件 mobid 手机编号 I
10、NT 非空 主键 brandid 品牌 INT 非空 外键 type 型号 NVARCHAR(20) 非空 外键 Color 颜色 NVARCHAR(10) 第三部分 问题分析和推荐步骤 1. 创建数据库和相应的表 1) 创建数据库 Ø 创建数据库(可以尝试使用命令或者在企业管理器里) 2) 创建数据表 Ø 创建品牌表、外观样式表、网络制式表、手机型号表、手机明细表 3) 创建表主键的约束 Ø 五个表各创建自己的主键 Ø 手机型号表有两个外键分别对应外观样式表、网络制式表 Ø 手机型号表的Is3G 、IsExpansion、IsBl
11、ue-tooth增减check约束,只允许添加0或1 Ø 手机明细表有两个外键,分别对应品牌表、手机型号表 2.. 增加数据表的数据 1) 增加品牌表数据 增加诺基亚、苹果、三星三个品牌 2) 增加制式表数据 增加手机网络的所有制式:GSM、CDMA、3G、双模和双卡 3) 增加外观样式表数据 增加手机的外观的所有样式:直板、翻盖、滑盖、侧滑盖和旋转 4) 增加手机型号表数据 增加4条数据:诺基亚两条、苹果一条、三星一条。增加的时候一定要保证制式和外观样式来自于“手机制式表”和“外观样式表”,因为这两个字段都是外键 5) 增加手机明细表数据 A. 增加手机明细5条。增加
12、的时候一定要保证品牌和手机型号来自于“品牌表”和“手机型号表”。这两个字段是外键。 6) 对增加的数据就行修改、删除已保证数据的正确性 3.创建视图、索引、同义词 1) 纵观手机大全网站和其他的一些手机查询网站,人们的查询习惯是按品牌、价格区段、型号查询的偏多,为了是常用的查询变得简单,我们将常用的查询做成视图,以简化以后的操作。 品牌表、外观样式表和网络制式表的数据量都很小,不设计索引。 2) 手机表中数据量会很大,且以后会以查询操作为主,因此应该考虑在经常进行查询的列上创建索引。经过分析,将来基于品牌、型号、外观样式、网络制式和市场价的查询会比较多,因此,在这几列上设计索引 4
13、.数据的查询 1) 按照品牌+型号进行查询 2) 按照品牌、价格区间进行查询 Between。。。 and 3) 按照手机外观分品牌得出每种外观有多少种 Case。。。when。。或decode函数 实现交叉表查询的结果样式 4) 第四部分 考核评价点 序号 功能列表 功能描述 分数 说明 1 正确设计数据库/数据表,添加约束 根据题目要求正确创建数据库、数据库,并正确添加所有约束 30 必做 2 考核品牌表、外观样式表、网络制式表数据的管理 正确对品牌表中的数据进行添加、修改和删除功能 5 必做 3 考核手机型号表数据管理 正确对手机型号表中的数据进行添加、修改和删除功能 5 必做 4 考核手机明细表数据管理 正确对手机明细表中的数据进行添加、修改和删除功能,并且会使用序列插入 10 必做 5 考核视图、索引 正确对考核项表中的数据进行添加功能 10 必做 6 考核综合查询 根据题目要求及显示格式要求,实现对数据的综合查询功能 30 必做 7 数据库命名规范 数据库中的表名,列名,都要符合规范要求,不能任意命名 10 必做






