欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

QQ管理

程序员文章站 2022-06-26 08:55:16
##用例1:查询数据 #01.查询QQ号码为54789625的所有好友信息,包括QQ号码,昵称,年龄 #02.查询当前在线用户的信息 #03.查询北京的、年龄在18至45岁之间的在线用户的信息 #04.查询昵称为青青草的用户信息 #05.查询QQ号码为54789625的用户的好友中每个省份的总人数, ......

QQ管理

QQ管理

QQ管理

##用例1:查询数据

#01.查询QQ号码为54789625的所有好友信息,包括QQ号码,昵称,年龄

 

#1
SELECT QQID,NickName,Age FROM baseinfo WHERE QQID =54789625
#2
SELECT `relation`.RelationQQID AS QQ号码,`baseinfo`.NickName AS 昵称,`baseinfo`.Age AS 年龄
 FROM BaseInfo,Relation
WHERE BaseInfo.QQID=Relation.RelationQQID
 AND Relation.QQID=54789625
 AND RelationStatus=0

 

 

#02.查询当前在线用户的信息

#1
SELECT *FROM qquser WHERE OnLine!=0
#2
SELECT NickName,`Province` FROM
BaseInfo,QQUser
WHERE BaseInfo.QQID=QQUser.QQID AND Online=0

 

#03.查询北京的、年龄在1845岁之间的在线用户的信息

 

SELECT *FROM baseinfo,qquser 
WHERE baseinfo.QQID =qquser.QQID 
AND baseinfo.Province='北京' 
AND baseinfo.Age BETWEEN 18 AND 45 
AND qquser.OnLine>0

 

#04.查询昵称为青青草的用户信息

SELECT * FROM `baseinfo` WHERE `NickName`='青青草'

 

 

#05.查询QQ号码为54789625的用户的好友中每个省份的总人数,并且总人数按由大到小排序。

#1
SELECT COUNT(Province) FROM baseinfo WHERE QQID IN (
SELECT QQID FROM relation WHERE RelationQQID
IN(
SELECT RelationQQID FROM relation WHERE QQID ='54789625' )
)
GROUP BY Province
#2
SELECT `baseinfo`.`Province`,COUNT(*) FROM `relation`,`baseinfo`
WHERE `relation`.`RelationQQID`=`baseinfo`.`QQID`
AND `relation`.`RelationStalus`=0
AND `relation`.`QQID`=54789625
GROUP BY `baseinfo`.`Province`
ORDER BY COUNT(*) DESC

 

#06.查询至少有150天未登录QQ账号的用户信息,包括QQ号码,最后一次登录时间、等级、昵称、年龄,并按时间的降序排列

 
#1
SELECT qquser.QQID, LastLogTime,LEVEL,NickName,Age FROM baseinfo,qquser 
WHERE baseinfo.QQID=qquser.QQID AND baseinfo.QQID IN(
SELECT QQID FROM qquser WHERE DATEDIFF(NOW(),LastLogTime)>=150 
)
GROUP BY LastLogTime

#2
SELECT QQUser.QQID,QQUser.LastLogTime,QQUser.Level,BaseInfo.NickName,BaseInfo.Age
FROM BaseInfo,QQUser
WHERE BaseInfo.QQID=QQUser.QQID
AND DATEDIFF(NOW(),lastLogTime)>=150
ORDER BY DATEDIFF(NOW(),lastLogTime) DESC

 

#07.查询QQ号码为54789625的好友中等级为10级以上的“月亮”级用户信息。

SELECT *FROM baseinfo WHERE QQID IN(
    SELECT QQID FROM qquser WHERE LEVEL>10 AND QQID IN(
        SELECT QQID FROM relation WHERE RelationQQID IN (
            SELECT RelationQQID FROM relation WHERE QQID ='54789625'
        )
    )
) 

 

#08.--查询QQ号码为54789625的好友中隐身的用户信息。

SELECT *FROM baseinfo WHERE QQID IN (
    SELECT QQID FROM qquser WHERE OnLine=0 AND QQID IN (
        SELECT QQID FROM relation WHERE RelationQQID IN (
            SELECT RelationQQID FROM relation WHERE QQID ='54789625'
        )
    )
)

 

#09.--查询好友超过20个的用户信息。

 

SELECT *FROM baseinfo WHERE QQID IN (
    SELECT QQID FROM relation WHERE RelationQQID IN(
        SELECT RelationQQID FROM relation GROUP BY QQID HAVING COUNT(RelationQQID)>20
    )
)

 

 

 

#10.为了查看信誉度,管理员需要查询被当做黑名单人物次数排名前3的用户

 

SELECT * FROM  baseinfo WHERE baseinfo.QQID IN(
    SELECT qquser.QQID FROM qquser WHERE baseinfo.QQID=qquser.QQID AND qquser.QQID IN(
    SELECT relation.QQID FROM relation WHERE relation.RelationStalus=1
)
ORDER BY qquser.Level DESC
)
         LIMIT 3

 

##用例2修改数据

#01.假设我的QQ号码为8855678,今天我隐身登录

 

UPDATE `qquser` SET `online`=0 WHERE `QQID`=8855678

 

 

 

#02.假设我的QQ号码为8855678,修改我的昵称为“被淹死的鱼”,地址为“解放中路号院123

UPDATE `baseinfo` SET `NickName`='被淹死的鱼',`Address`='解放中路号院123室' WHERE `QQID`=8855678

 

#03.假设我的QQ号码为54789625,将我的好友“青青草”拖进黑名单。

UPDATE relation SET RelationStalus =1 WHERE QQID ='54789625'UPDATE relation SET RelationStalus =1 WHERE QQID ='54789625'

 

#04.为了提高QQ用户的聊天积极性,把等级小于6级的用户的等级都提升1个级别。

 

UPDATE qquser SET LEVEL =LEVEL+1 WHERE LEVEL<6

 

 

 

#05.管理员将超过365天没有登录过的QQ锁定(即将等级值设定为-1)。

UPDATE qquser SET LEVEL =-1 WHERE DATEDIFF(NOW(),LastLogTime)>=365 

 

#06.为了奖励用户,将好友数量超过20的用户等级提升1个级别。

 

UPDATE qquser SET LEVEL=LEVEL+1  WHERE (
SELECT RelationQQID FROM relation GROUP BY QQID HAVING COUNT(RelationQQID)>20
)

 

 

 

#07.把QQ号码为54789625的用户的好友“嘟嘟鱼”拖进黑名单中。

UPDATE  relation SET RelationStalus =1 WHERE QQID ='54789625'

 

##用例3删除数据

#1.把QQ号码为54789625的用户黑名单中的用户删除。

DELETE  FROM relation WHERE QQID='54789625'

 

#2.QQ号码为54789625用户多次在QQ中发布违法信息,造成了很坏的影响,因此管理员决定将其删除。

DELETE FROM baseinfo WHERE QQID ='54789625'

 

#3.管理员将超过1000天没有登录过的QQ删除。

DELETE FROM qquser WHERE DATEDIFF(NOW(),LastLogTime)>=1000