35-博客网站数据库-博文信息数据操作(二)
项目描述
当今网上微博、博客发布信息已经成为主要的信息发布、传播的系统,如何对这些数据进行管理,本项目主要是对博客网站中的博文分类信息表、博文信息表进行操作。
博客网站数据库数据库操作要求如下:
1)创建数据库BlogDB。
2)创建分类信息表categories,表结构如表J2-35-1所示。
表J2-35-1 categories表
字段名 | 字段说明 | 数据类型 | 允许为空 | 备注 |
---|---|---|---|---|
CategoryID | 分类ID | 整型 | 否 | 主键,自增(增量为1) |
CategoryName | 分类名称 | 字符(20) | 否 | |
ArticlesNum | 分类文章数目 | 整型 | 否 |
3)创建博文信息表article,表结构如表J2-35-2所示。
表J2-35-2 article表
字段名 | 字段说明 | 数据类型 | 允许为空 | 备注 |
---|---|---|---|---|
ID | 文章ID | 整型 | 否 | 主键,自增(增量1) |
C_ID | 分类ID | 整型 | 否 | 外键 |
Title | 文章标题 | 字符(100) | 否 | |
Content | 内容 | 文本类型(text) | 是 | |
CommentsNum | 评论数 | 整型 | 否 | |
Postdate | 发表日期 | 日期时间 | 否 |
4)两个表之间建立关联,article的C_ID与categories的CategoryID关联。
5)表categories基础数据如J2-35-3所示。
表J2-35-3 categories表基础数据
CategoryID | CategoryName | ArticlesNum |
---|---|---|
1 | 历史 | 2 |
2 | 科技 | 1 |
3 | 军事 | 3 |
4 | 新闻 | 8 |
5 | 旅游 | 2 |
6 | 软件下载 | 9 |
6)表article基础数据如表J2-35-4所示。
表J2-35-4 article表基础数据
ID | C_ID | Title | Content | CommentsNum | Postdate |
---|---|---|---|---|---|
1 | 4 | 学生军训为何晕倒一片? | 日前,在南开大学召开的全国高校体育工作座谈会上,教育部体育卫生与艺术教育司司长、第九届大运会组委会秘书长王登峰列举一个令人惊讶的数字:半个月前,他出席北京大学2011级学生军训结业典礼时了解到,两周军训期间,近3500名学生累计看病超过6000人次,特别是第一周,晕倒者众多。王登峰透露,为了弥补学校体育的薄弱环节,我国将把学生体质情况纳入对高校的评价体系中。 (中国广播网9月17日) | 0 | 2011-7-2 |
2 | 2 | 推迟入校,能解决“男孩危机”吗? | “鉴于男女儿童智力发育速度不同,男童普遍晚于女童2年左右,同性学童之间也有智力发育差异,因此全国统一规定男女儿童7周岁入学违反教育规律。建议女童可在6~7岁入学,男童可在7~8岁入学。现在大学招生女生普遍高分于男生,需反思。”9月24日,北京大学教授吴必虎在新浪微博上公开发表观点,认为男孩应该比女孩晚入学。(现代快报9月27日) | 1 | 2011-8-3 |
3 | 4 | 一纸洋大学录取通知书不算什么 | 近来,美国旧金山大学商学院副院长黛尔·史密斯(Dayle Smith)的一封辞职信,给中国的留学热泼了一盆冷水。据《旧金山纪事报》9月23日报道,商学院主任韦伯在对员工的信中说,史密斯的辞职是鉴于外国学生的“大幅增加”。史密斯在信中写道:“鉴于有如此多的学生英语能力差,且生源国比例不平衡,我们将会面临一些独特的教育及文化挑战。”而学生英语能力差却被录取,源于“有条件录取”政策。 | 8 | 2011-9-4 |
4 | 6 | 大学不要追求成为“排行榜中的大学” | 英国泰晤士报高等教育特刊3日公布2012-2013世界最佳大学排行榜报告,美国加州理工学院蝉联第一名,去年第二名的哈佛大学退居到第四名。 北京大学从去年第49名升到46名,清华大学更劲升19名,从71名升到52名;香港大学与香港科技大学排名都较去年下滑,分别成为35和65名。 (中国新闻网10月5日) | 2 | 2011-8-23 |
(1)任务描述
任务1:用SQL语言创建博客网站数据库BlogDB
1)主数据库文件初始值10MB,最大20MB,按1MB进行递增。
2)日志文件初始值为5MB,最大为10MB,按10%进行递增。
IF DB_ID('BlogDB') IS NOT NULL DROP DATABASE BlogDB
GO
CREATE DATABASE BlogDB
ON PRIMARY
(
NAME=BlogDB,
FILENAME='D:\xxxx\BlogDB.mdf',
SIZE=10MB,
MAXSIZE=20MB,
FILEGROWTH=1MB
)
LOG ON
(
NAME=BlogDB_log,
FILENAME='D:\xxxx\BlogDB_log.ldf',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=10%
)
任务2:用SQL语言创建分类信息表categories、博文信息表article
1)按照提供的表J2-35-1、J2-35-2结构创建数据库表,并设主键、外键。
CREATE TABLE categories
(
CategoryID INT NOT NULL PRIMARY KEY IDENTITY(1,1),
CategoryName NVARCHAR(20) NOT NULL,
ArticlesNum INT NOT NULL,
)
CREATE TABLE article
(
ID INT NOT NULL PRIMARY KEY IDENTITY(1,1),
C_ID INT NOT NULL,
Title NVARCHAR(100) NOT NULL,
Content TEXT,
CommentsNum INT NOT NULL,
Postdate DATETIME NOT NULL,
FOREIGN KEY(C_ID) REFERENCES categories(CategoryID)
)
任务3:用SQL语言对分类信息表categories、博文信息表article进行操作
1)按照表J2-35-3、J2-35-4提供的数据,把数据添加到表格中。
2)根据表categories,统计出博文数量。
3)删除“软件下载”类别以及其类别的博文。
INSERT INTO categories VALUES('历史',2),('科技',1),('军事',3),('新闻',8),('旅游',2),('软件下载',9)
INSERT INTO article VALUES(4,'学生军训为何晕倒一片?','日前,在南开大学召开的全国高校体育工作座谈会上,教育部体育卫生与艺术教育司司长、第九届大运会组委会秘书长王登峰列举一个令人惊讶的数字:半个月前,他出席北京大学2011级学生军训结业典礼时了解到,两周军训期间,近3500名学生累计看病超过6000人次,特别是第一周,晕倒者众多。王登峰透露,为了弥补学校体育的薄弱环节,我国将把学生体质情况纳入对高校的评价体系中。 (中国广播网9月17日)',0,'2011-7-2'),
(2,'推迟入校,能解决“男孩危机”吗?','“鉴于男女儿童智力发育速度不同,男童普遍晚于女童2年左右,同性学童之间也有智力发育差异,因此全国统一规定男女儿童7周岁入学违反教育规律。建议女童可在6~7岁入学,男童可在7~8岁入学。现在大学招生女生普遍高分于男生,需反思。”9月24日,北京大学教授吴必虎在新浪微博上公开发表观点,认为男孩应该比女孩晚入学。(现代快报9月27日)',1,'2011-8-3'),
(4,'一纸洋大学录取通知书不算什么','近来,美国旧金山大学商学院副院长黛尔·史密斯(Dayle Smith)的一封辞职信,给中国的留学热泼了一盆冷水。据《旧金山纪事报》9月23日报道,商学院主任韦伯在对员工的信中说,史密斯的辞职是鉴于外国学生的“大幅增加”。史密斯在信中写道:“鉴于有如此多的学生英语能力差,且生源国比例不平衡,我们将会面临一些独特的教育及文化挑战。”而学生英语能力差却被录取,源于“有条件录取”政策。',8,'2011-9-4'),
(6,'大学不要追求成为“排行榜中的大学”','英国泰晤士报高等教育特刊3日公布2012-2013世界最佳大学排行榜报告,美国加州理工学院蝉联第一名,去年第二名的哈佛大学退居到第四名。 北京大学从去年第49名升到46名,清华大学更劲升19名,从71名升到52名;香港大学与香港科技大学排名都较去年下滑,分别成为35和65名。 (中国新闻网10月5日)',2,'2011-8-23')
UPDATE categories SET ArticlesNum=(SELECT COUNT(*) FROM article WHERE C_ID=(SELECT CategoryID FROM categories WHERE CategoryName='历史')) WHERE CategoryName='历史'
UPDATE categories SET ArticlesNum=(SELECT COUNT(*) FROM article WHERE C_ID=(SELECT CategoryID FROM categories WHERE CategoryName='科技')) WHERE CategoryName='科技'
UPDATE categories SET ArticlesNum=(SELECT COUNT(*) FROM article WHERE C_ID=(SELECT CategoryID FROM categories WHERE CategoryName='军事')) WHERE CategoryName='军事'
UPDATE categories SET ArticlesNum=(SELECT COUNT(*) FROM article WHERE C_ID=(SELECT CategoryID FROM categories WHERE CategoryName='新闻')) WHERE CategoryName='新闻'
UPDATE categories SET ArticlesNum=(SELECT COUNT(*) FROM article WHERE C_ID=(SELECT CategoryID FROM categories WHERE CategoryName='旅游')) WHERE CategoryName='旅游'
UPDATE categories SET ArticlesNum=(SELECT COUNT(*) FROM article WHERE C_ID=(SELECT CategoryID FROM categories WHERE CategoryName='软件下载')) WHERE CategoryName='软件下载'
SELECT * FROM categories
DELETE FROM article WHERE C_ID=(SELECT CategoryID FROM categories WHERE CategoryName='软件下载')
DELETE FROM categories WHERE CategoryName='软件下载'