码迷,mamicode.com
首页 > 数据库 > 详细

数据库编程测试机试 QQ

时间:2018-03-02 20:39:49      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:因此   col   lastlog   创建   ons   在线用户   from   锁定   删除   

创建QQ数据库

 

技术分享图片

#创建数据库
CREATE     DATABASE QQ
#创建表名 并且添加列
DROP TABLE IF EXISTS `dbo.BaseInfo`;
CREATE TABLE `student`(
QQID INT PRIMARY KEY AUTO_INCREMENT,
NickName VARCHAR(32),
Sex INT,
Age INT ,
Province VARCHAR(256),
City VARCHAR(32),
Address VARCHAR(32),
Phone INT
)
#修改表名
ALTER TABLE student RENAME BaseInfo
#添加BaseInfo表qq表的信息数据
INSERT INTO student (QQID,NickName,Sex,Age,Province,City,Address,Phone)VALUES 
(8855678,独行侠,1,38,北京,海淀区,上地,003),
(54789625,蝴蝶飞飞,1,16,北京,朝阳区,亚运村,001),
(88662753,青青草,0,20,河南省,安阳,汤阴,002);

#创建QQUser表并且添加列
CREATE TABLE `QQUser`(
QQID INT PRIMARY KEY AUTO_INCREMENT,
PASSWORD VARCHAR(32),
LastLogTime DATETIME,
OnLine INT ,
LEVEL INT
)
#添加QQUser表的信息数据
INSERT INTO QQUser (QQID,PASSWORD,LastLogTime,OnLine,LEVEL)VALUES 
(8855678,guest0221,2008-02-21 16:28:20:000,1,6),
(54789625,add521#&,2008-02-16 17:01:35:000,2,1),
(88662753,admin0219,2008-02-19 21:08:35:000,0,5);

#删除表名
 DROP TABLE QQUser
#创建QQUser表并且添加列
CREATE TABLE `Relation`(
QQID INT ,
RelationQQID INT,
RelationStalus INT
)
#添加QQUser表的信息数据
INSERT INTO Relation (QQID,RelationQQID,RelationStalus)VALUES 
(54789625,88662753,0),
(88662753,8855678,1),
(54789625,8855678,0);
01.查询QQ号码为54789625的所有好友信息,包括QQ号码,昵称,年龄
SELECT QQID,NickName,Age FROM baseinfo WHERE QQID =54789625

#02.查询当前在线用户的信息
SELECT *FROM qquser WHERE OnLine!=0

#03.查询北京的、年龄在18至45岁之间的在线用户的信息
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的用户的好友中每个省份的总人数,并且总人数按由大到小排序。
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

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

 
#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

#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删除。
UPDATE  FROM qquser WHERE DATEDIFF(NOW(),LastLogTime ) >=1000 

 

数据库编程测试机试 QQ

标签:因此   col   lastlog   创建   ons   在线用户   from   锁定   删除   

原文地址:https://www.cnblogs.com/3020815dzq/p/8494525.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!