35-博客网站数据库-博文信息数据操作(二)

简介: 35-博客网站数据库-博文信息数据操作(二)

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='软件下载'
相关文章
|
1月前
|
存储 人工智能 Cloud Native
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
在9月20日2024云栖大会上,阿里云智能集团副总裁,数据库产品事业部负责人,ACM、CCF、IEEE会士(Fellow)李飞飞发表《从数据到智能:Data+AI驱动的云原生数据库》主题演讲。他表示,数据是生成式AI的核心资产,大模型时代的数据管理系统需具备多模处理和实时分析能力。阿里云瑶池将数据+AI全面融合,构建一站式多模数据管理平台,以数据驱动决策与创新,为用户提供像“搭积木”一样易用、好用、高可用的使用体验。
云栖重磅|从数据到智能:Data+AI驱动的云原生数据库
|
1月前
|
存储 监控 数据处理
flink 向doris 数据库写入数据时出现背压如何排查?
本文介绍了如何确定和解决Flink任务向Doris数据库写入数据时遇到的背压问题。首先通过Flink Web UI和性能指标监控识别背压,然后从Doris数据库性能、网络连接稳定性、Flink任务数据处理逻辑及资源配置等方面排查原因,并通过分析相关日志进一步定位问题。
172 61
|
3天前
|
前端开发 JavaScript 数据库
获取数据库中字段的数据作为下拉框选项
获取数据库中字段的数据作为下拉框选项
28 5
|
1月前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
144 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
1月前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
1月前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。
|
2月前
|
人工智能 Cloud Native 容灾
云数据库“再进化”,OB Cloud如何打造云时代的数据底座?
云数据库“再进化”,OB Cloud如何打造云时代的数据底座?
|
4天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
18 3
|
4天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
23 3
|
4天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
28 2