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

 

posted @ 2018-03-03 09:13  岔气的猫  阅读(921)  评论(0编辑  收藏  举报