创建表结构。并且添加约束。

create table QQUser(
QQID bigint primary key,
PassWord varchar(50) check(len(PassWord)>=6) not null,
LastLogTime datetime not null,
Online int check(Online=‘1’ or Online=‘2’ or Online=‘0’),
Level int default(0)
)
go
create table BaseLnfo(
ID int identity(1,1) primary key,
QQID bigint not null,
NickName varchar(50) not null,
Sex int check(Sex=1 or Sex=0) not null,
Age int check(Age>0 and Age<100) not null,
Province varchar(50) not null,
City varchar(50) not null,
Address varchar(50) not null,
Phone char(30) not null
)
go
create table Relation(
QQID bigint not null,
RelationQQID bigint not null,
RelationStatus int check(RelationStatus=0 or RelationStatus=1) not null
)
go

建立关系。

alter table Relation
add constraint Fk_rel_use foreign key(QQID) references QQUser(QQID);
go
alter table Relation
add constraint Fk_rel_user foreign key(RelationQQID) references QQUser(QQID);
go
alter table Baselnfo
add constraint Fk_bas_use foreign key(QQID) references QQUser(QQID);
go

插入数据。

insert QQUser
(QQID,PassWord,LastLogTime,Online,Level)
select ‘54789625’,‘add512#&’,‘2013-2-16 17:01:35’,‘2’,‘1’ union
select ‘88662753’,‘admin0219’,‘2013-02-19 21:08:50’,‘0’,‘5’ union
select ‘8855678’,‘guest0221’,‘2013-02-21 16:28:20’,‘1’,‘6’
go

insert BaseLnfo
(QQID,NickName,Sex,Age,Province,City,Address,Phone)
select ‘54789625’,‘蝴蝶飞飞’,‘1’,‘16’,‘北京市’,‘北京’,‘亚运村’,‘37547388157668’ union
select ‘88662753’,‘秋芙蓉’,‘0’,‘20’,‘河南省’,‘南阳’,‘方城博望’,‘88715783657725’ union
select ‘8855678’,‘双眼皮&猪’,‘1’,‘38’,‘北京市’,‘北京’,‘双榆树东里’,‘65796548876143’
go

insert Relation
(QQID,RelationQQID,RelationStatus)
select ‘54789625’,‘88662753’,‘0’ union
select ‘88662753’,‘54789625’,‘1’ union
select ‘54789625’,‘8855678’,‘0’
go

查询数据。

–查询qq号码为88662753用户的所有好友信息。
select a.QQID as 账号 , a.NickName as 昵称,a.Age as 年龄
from BaseLnfo as a
inner join Relation as b
on b.RelationQQID=a.QQID
where b.QQID=‘54789625’
go
–查询当前在线用户的信息。
select b.QQID as 账号,b.NickName as 昵称,b.Sex as 性别,b.Age as 年龄,b.Province as 省份,b.City as 城市,b.Address as 地址,b.Phone as 电话
from QQUser as a
inner join BaseLnfo as b
on a.QQID=b.QQID
where a.Online=‘0’
go
–查询河南省年龄在18岁到45岁的在线用户信息。
select b.QQID as 账号,b.NickName as 昵称,b.Sex as 性别,b.Age as 年龄,b.Province as 省份,b.City as 城市,b.Address as 地址,b.Phone as 电话
from BaseLnfo as b
inner join QQUser as a
on a.QQID=b.QQID
where (b.Age>18 and b.Age<45) and b.Province=‘河南省’ and a.Online=0
go
–查询昵称为蝴蝶的用户信息。
select*from
BaseLnfo
where NickName like ‘蝴蝶%’
go
–查询qq号码为54789625的用户,好友中每个省份的总人数,并且按总人数由大到小排序。
select Province as 省份,count (1) as 人数
from BaseLnfo
inner join Relation as a
on BaseLnfo.QQID=a.RelationQQID
where (a.QQID=‘54789625’ and a.RelationStatus=0 and a.RelationQQID=BaseLnfo.QQID)
group by Province
order by count(1) desc
go
–查询至少有150天未登录qq账号的用户信息。包括qq号码最后一次登陆时间等级,年龄并按时间顺序排列。
select a.QQID as 账号,a.LastLogTime as 登录时间,a.Level as 等级,b.NickName as 昵称 ,b.Age as 年龄
from QQUser as a
inner join BaseLnfo as b
on a.QQID=b.QQID
where datediff(dd,a.LastLogTime,getdate())>150
order by a.LastLogTime desc
go
–查询qq号码为54789625的好友中等级为一级以上的用户信息。
select c.RelationQQID as 账号,b.NickName as 昵称,b.Age as 年龄,a.Level as 等级
from QQUser as a
inner join BaseLnfo as b on(a.QQID=b.QQID)
inner join Relation as c on(b.QQID=c.RelationQQID)
where c.QQID=‘54789625’ and a.Level>1 and c.RelationStatus=0
go
–查询qq号码为54789625好友中隐身的用户信息。
select c.RelationQQID as 账号,b.NickName as 昵称,b.Age as 年龄,a.Level as 等级
from QQUser as a
inner join BaseLnfo as b on(a.QQID=b.QQID)
inner join Relation as c on(b.QQID=c.RelationQQID)
where c.QQID=‘54789625’ and a.Online=2
go
–查询好友超过1个的用户,qq号码极其好友总数。
select QQID as 账户, count(1) as 好友数
from Relation
group by QQID
having count(1)>=1
go
–为了查看信誉度,管理员需要查询被当做黑名单人物次数排名前三的用户。
select top 3 RelationQQID as 账号,count(1) 被拉黑次数
from Relation
where RelationStatus=1
group by RelationQQID
order by count(1) desc
go

修改数据。

–假设我的qq号码为8855678今天我隐身登陆。
update QQUser set Online=‘2’ where QQID=‘8855678’
selectfrom QQUser
go
–假设我的qq号码为8855678,修改我的昵称为被淹死的鱼。地址为解放中路六号院160室
update BaseLnfo set NickName=‘被淹死的鱼’,Address=‘解放中路6号院106室’ where QQID=‘8855678’
select
from BaseLnfo
go
–假设我的qq号码为8855678,将我的好友54789625拉入黑名单。
update Relation set RelationStatus=‘1’ where QQID=‘8855678’ and RelationQQID=‘54789625’
selectfrom Relation
go
–为了提高qq用户的积极聊天,把等级小于六级的用户等级都提高一个级别。
update QQUser set Level=Level+1 where Level<=6
select
from QQUser
go
–管理员将超过365天没有登陆过的qq锁定将等级值设定值为负一。
update QQUser set Level=’-1’ where datediff(dd,LastLogTime,getdate())>365
selectfrom QQUser
go
–为了奖励用户,将好友数量超过4的用户等级提升一个级别。
update QQUser set Level=Level+1
where QQID in(select QQID from Relation
where Relationstatus=0
group by QQID
having count(1)>4)
select
from QQUser
go
–把qq号码为54789625的用户的好友。被淹死的鱼拖进名单。
update Relation set RelationStatus=‘1’
where QQID=‘54789625’ and RelationQQID=
(select QQID from BaseLnfo where NickName=‘被淹死的鱼’)
select*from Relation
go

删除数据库。

–把qq号码为54789625的用户黑名单中的用户删除。
delete from Relation
where QQID=‘54789625’ and RelationStatus=‘1’
selectfrom Relation
go
–QQ号码为88662753用户多次在qq中发布违法信息造成了很坏的影响,因此管理员决定将其删除。
delete from Relation where QQID=‘88662753’ or RelationQQID=‘88662753’
delete from BaseLnfo where QQID=‘88662753’
delete from QQUser where QQID=‘88662753’
go
–管理员将超过1000天没有登录的QQ号删除
delete from Relation where QQID in
(select QQID from QQUser
where datediff(dd,LastLogTime,getdate())>=1000)
or RelationQQID in
(select QQID from QQUser
where datediff(dd,LastLogTime,getdate())>=1000)
go
delete from BaseLnfo where QQID in
(select QQID from QQUser
where datediff(dd,LastLogTime,getdate())>=1000)
go
delete from QQUser where QQID in
(select QQID from QQUser
where datediff(dd,LastLogTime,getdate())>=1000)
go
select
from QQUser,BaseLnfo,Relation

第十二章项目案例:QQ数据库管理相关推荐

  1. C#第十二章 项目案例:QQ数据库管理

    QQ数据库管理 --用户表INSERT dbo.QQUser(QQID,PassWord,LastLogTime,Online,Level)SELECT '54789625','add512#& ...

  2. IT项目管理总结:第十二章 项目采购管理

    第十二章 项目采购管理 项目采购管理的重要性 –外包的好处: A)获得技能和技术 B)降低固定和周期性成本 C)使客户组织集中在自己的核心业务上 D)提供灵活性 E)提高可追责性 –项目采购管理(Pr ...

  3. 项目案例:qq数据库管理_2小时元项目:项目管理您的数据科学学习

    项目案例:qq数据库管理 Many of us are struggling to prioritize our learning as a working professional or aspir ...

  4. 信息系统项目管理师---第十二章 项目采购管理

    信息系统项目管理师-第十二章项目采购管理 采购管理过程说明: •规划采购管理:决定采购什么,何时采购.还包括制定采购 SOW,评价标准等 •实施采购.从潜在的供应商处获取适当的信息.报价.投标书或建议 ...

  5. PMP 考点 第十二章 项目采购管理

    PMP 第十二章 项目采购管理 章节 序号 知识点 考点级别 备注 第十二章 项目采购管理 12.1 采购活动的职责和典型步骤.供方选择分析.采购管理计划.采购策略 3 12.2 合同类型.采购文件. ...

  6. 项目管理笔记-第十二章 项目采购管理

    1.项目采购管理包括从项目团队外部采购或获取所需产品.服务或成果的各个过程,包括编制和管理协议所需的管理和控制过程,例如:合同.订购单.协议备忘录(MOA).服务水平协议(SLA).被授权采购的可以是 ...

  7. 第十二章 项目采购管理

    基本概述 概述:采购管理是项目组从项目外部获取产品.服务或成果来满足项目的需求.由于项目的复杂度,将项目的一些工作以外包(合同)的形式给一些组织.一个项目可能有多个执行组织.在采购管理中,项目团队是甲 ...

  8. PMP第十二章 项目采购管理

    常见的合同类型及使用场景 1.总价合同:总价合同对于买方风险最小,如果签订总价合同,卖方特别关注范围的变化 2.固定总价合同(FTP):买方喜欢,买方在签订合同时需要提供准确范围,范围变更,成本很大 ...

  9. [go学习笔记.第十一章.项目案例] 2.客户信息管理系统

    一.基本介绍 1.需求说明 项目需求分析 1.模拟实现基于文本界面的 < 客户信息管理软件 > 2.该软件实现对客户对象的插入.修改和删除(用切片实现),并能够打印客户明细表 2.界面设计 ...

最新文章

  1. 尹中立:“人造牛市”的结局可能会非常悲惨
  2. 数组的定义格式二_静态初始化
  3. 2/3 常用符号:格式说明符
  4. LINQ to SQL语句(7)之Exists/In/Any/All/Contains
  5. discuz邮件设置PHP,Discuz!6.0—如何配置发送邮件的参数
  6. centos踩坑指南之安装composer
  7. 重磅开源|AOP for Flutter开发利器——AspectD
  8. 简单易上手的微信电子名片的制作方法!
  9. NFC技术 (二) -硬件设计
  10. Avatarify-人脸驱动项目在Linux环境中的实现
  11. Windows多用户配置,不同用户不同访问权限
  12. 暴力破解--利用计算机执行速度
  13. Linux环境搭建基础(二)
  14. 美团Java后台开发面经
  15. 2022广东省安全员C证第三批(专职安全生产管理人员)考试题库及模拟考试
  16. 强化学习、GAN与多巴胺对撞:阿里AI 智能体认知研讨会干货
  17. 咸鱼笔记:适合小白的Anaconda下载和安装步骤及使用教程
  18. Java内存之本地内存分析神器: NMT 和 pmap
  19. 记录一次wls2上ubuntu20.04版本中安装docker
  20. 伪彩色图片中光标颜色的自动算法

热门文章

  1. 断言工具类AssertUtil的使用
  2. 场面话,多学学[不错、有空的时候看一下] .
  3. efcore 实体配置_C# 数据操作系列 - 7. EF Core 导航属性配置
  4. 少儿Python每日一题(8):最大公约数和最小公倍数
  5. 怎么把图片调整到合适大小?如何快速调整图片尺寸?
  6. 敏感词审查工具类—DFA算法
  7. wp伪静态设置nginx
  8. J4125 和 I3-6100U性能对比
  9. 机器学习算法 - 朴素贝叶斯分类器
  10. mysql+默认sql+mode_【MySQL】sql_mode引起的一个问题和总结