1. 程式人生 > >數據庫編程測試機試 QQ

數據庫編程測試機試 QQ

del 年齡 tab 安陽 AD 積極 表名 pos 超過

創建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