创建QQ数据库

#创建数据库
CREATE DATABASE QQ
#创建表名 并且添加列
DROP TABLE IF EXISTS `dbo.BaseInfo`;
CREATE TABLE `student`(
QQID INT PRIMARY KEY AUTO_INCREMENT,
NickName VARCHAR(),
Sex INT,
Age INT ,
Province VARCHAR(),
City VARCHAR(),
Address VARCHAR(),
Phone INT
)
#修改表名
ALTER TABLE student RENAME BaseInfo
#添加BaseInfo表qq表的信息数据
INSERT INTO student (QQID,NickName,Sex,Age,Province,City,Address,Phone)VALUES
(,'独行侠',,,'北京','海淀区','上地',),
(,'蝴蝶飞飞',,,'北京','朝阳区','亚运村',),
(,'青青草',,,'河南省','安阳','汤阴',); #创建QQUser表并且添加列
CREATE TABLE `QQUser`(
QQID INT PRIMARY KEY AUTO_INCREMENT,
PASSWORD VARCHAR(),
LastLogTime DATETIME,
OnLine INT ,
LEVEL INT
)
#添加QQUser表的信息数据
INSERT INTO QQUser (QQID,PASSWORD,LastLogTime,OnLine,LEVEL)VALUES
(,'guest0221','2008-02-21 16:28:20:000',,),
(,'add521#&','2008-02-16 17:01:35:000',,),
(,'admin0219','2008-02-19 21:08:35:000',,); #删除表名
DROP TABLE QQUser
#创建QQUser表并且添加列
CREATE TABLE `Relation`(
QQID INT ,
RelationQQID INT,
RelationStalus INT
)
#添加QQUser表的信息数据
INSERT INTO Relation (QQID,RelationQQID,RelationStalus)VALUES
(,,),
(,,),
(,,);
.查询QQ号码为54789625的所有好友信息,包括QQ号码,昵称,年龄
SELECT QQID,NickName,Age FROM baseinfo WHERE QQID = #.查询当前在线用户的信息
SELECT *FROM qquser WHERE OnLine!= #.查询北京的、年龄在18至45岁之间的在线用户的信息
SELECT *FROM baseinfo,qquser
WHERE baseinfo.QQID =qquser.QQID AND baseinfo.Province='北京' AND baseinfo.Age BETWEEN AND AND qquser.OnLine> #.查询昵称为青青草的用户信息
SELECT *FROM baseinfo WHERE NickName='青青草' #.查询QQ号码为54789625的用户的好友中每个省份的总人数,并且总人数按由大到小排序。
SELECT COUNT(Province) FROM baseinfo WHERE QQID IN (
SELECT QQID FROM relation WHERE RelationQQID
IN(
SELECT RelationQQID FROM relation WHERE QQID ='' )
)
GROUP BY Province #.查询至少有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 ) >=
)
GROUP BY LastLogTime #.查询QQ号码为54789625的好友中等级为10级以上的“月亮”级用户信息。
SELECT *FROM baseinfo WHERE QQID IN(SELECT QQID FROM qquser WHERE LEVEL> AND QQID IN(
SELECT QQID FROM relation WHERE RelationQQID IN (
SELECT RelationQQID FROM relation WHERE QQID =''
))) #.--查询QQ号码为54789625的好友中隐身的用户信息。
SELECT *FROM baseinfo WHERE QQID IN (SELECT QQID FROM qquser WHERE OnLine= AND QQID IN (
SELECT QQID FROM relation WHERE RelationQQID IN (
SELECT RelationQQID FROM relation WHERE QQID =''
))) #.--查询好友超过20个的用户信息。
SELECT *FROM baseinfo WHERE QQID IN (
SELECT QQID FROM relation WHERE RelationQQID IN(
SELECT RelationQQID FROM relation GROUP BY QQID HAVING COUNT(RelationQQID)>)
) #.为了查看信誉度,管理员需要查询被当做黑名单人物次数排名前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=
)
ORDER BY qquser.Level DESC
)
LIMIT ##用例2:修改数据
#.假设我的QQ号码为8855678,今天我隐身登录
UPDATE qquser SET OnLine='' WHERE QQID ='' #.假设我的QQ号码为8855678,修改我的昵称为“被淹死的鱼”,地址为“解放中路号院123室”
UPDATE baseinfo SET NickName='被淹死的鱼',Address ='解放中路号院123室' WHERE QQID='' #.假设我的QQ号码为54789625,将我的好友“青青草”拖进黑名单。
UPDATE relation SET RelationStalus = WHERE QQID ='' #.为了提高QQ用户的聊天积极性,把等级小于6级的用户的等级都提升1个级别。
UPDATE qquser SET LEVEL =LEVEL+ WHERE LEVEL< #.管理员将超过365天没有登录过的QQ锁定(即将等级值设定为-)。
UPDATE qquser SET LEVEL =- WHERE DATEDIFF(NOW(),LastLogTime ) >= #.为了奖励用户,将好友数量超过20的用户等级提升1个级别。
UPDATE qquser SET LEVEL=LEVEL+ WHERE (
SELECT RelationQQID FROM relation GROUP BY QQID HAVING COUNT(RelationQQID)>) #.把QQ号码为54789625的用户的好友“嘟嘟鱼”拖进黑名单中。
UPDATE relation SET RelationStalus = WHERE QQID ='' ##用例3:删除数据
#.把QQ号码为54789625的用户黑名单中的用户删除。
DELETE FROM relation WHERE QQID='' #.QQ号码为54789625的用户多次在QQ中发布违法信息,造成了很坏的影响,因此管理员决定将其删除。
DELETE FROM baseinfo WHERE QQID ='' #.管理员将超过1000天没有登录过的QQ删除。
UPDATE FROM qquser WHERE DATEDIFF(NOW(),LastLogTime ) >=

数据库编程测试机试 QQ的更多相关文章

  1. 运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库

    运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运 ...

  2. 提高你的数据库编程效率:Microsoft CLR Via Sql Server

    你还在为数据库编程而抓狂吗?那些恶心的脚本拼接,低效的脚本调试的日子将会与我们越来越远啦.现在我们能用支持.NET的语言来开发数据库中的对象,如:存储过程,函数,触发器,集合函数已及复杂的类型.看到这 ...

  3. VB.NET数据库编程基础教程

    关键词:作者罗姗   众所周知,VB.NET自身并不具备对数据库进行操作的功能,它对数据库的处理是通过.NET FrameWork SDK中面向数据库编程的类库和微软的MDAC来实现的.其中,ADO. ...

  4. java面向对象下:Java数据库编程

    19.Java数据库编程: JDBC概述:        JDBC(Java Database Connection)是java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类 ...

  5. Java数据库编程、XML解析技术

    数据库编程 JDBC概述 是Java Database Connecive,即数据库连接技术的简称,它提供了连接各种常用数据库的能力. 是一种用于执行SQL语句的Java API,可以为多种关系数据库 ...

  6. .Net程序员学用Oracle系列(3):数据库编程规范

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.书写规范 1.1.大小写风格 1.2.缩进风格 1.3.换行 1.4.其它 2.命名规范 2.1.数据库对象命名 2.2.变 ...

  7. java 数据库编程 学习笔记 不断更新

    最近开始学习java,感觉java的数据库编程需要发个随笔记录一下,话不多说 切入正题. 一.数据库访问技术的简介 应用程序  →  执行SQL语句 →数据库 → 检索数据结果 → 应用程序   ( ...

  8. Windows数据库编程接口简介

    数据库是计算机中一种专门管理数据资源的系统,目前几乎所有软件都需要与数据库打交道(包括操作系统,比如Windows上的注册表其实也是一种数据库),有些软件更是以数据库为核心因此掌握数据库系统的使用方法 ...

  9. JAVA数据库编程、JAVA XML解析技术

    JDBC概述 JDBC是JAVA中提供的数据库编程API curd :数据库增删改 链接字符串:String url = "mysql :/localhost :3306/jdbc/&quo ...

随机推荐

  1. Python splinter 环境搭建

    今天无意间看到了splinter. Splinter是一个使用Python开发的开源Web应用测试工具.它可以帮你实现自动浏览站点和与其进行交互. Splinter对已有的自动化工具(如:Seleni ...

  2. p1470 Longest Prefix

    原本就想到dp,可是是我的思路是在串的各个位置都遍历一次set,看dp[i-st[k]]是否为1且前length(st[k])是st[k].这样200000*200*10会超时.更好的办法是在i位取前 ...

  3. js新打开页面

    var a = document.createElement("a"); a.setAttribute("href", href); a.setAttribut ...

  4. 小程序点击事件改变样式(普通js鼠标点击事件)

    1.wxml中 <view class="column"> <view class="body-view {{num==1?'active':''}}& ...

  5. windows系统文件和linux系统文件

    windows系统文件和linux系统文件 1.单用户操作系统和多用户操作系统 单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源 Windows ...

  6. chrome 自动加载flash

    class Login(unittest.TestCase): #初始 def setUp(self): chromeOpitons = Options() prefs = { # "pro ...

  7. json -- dump load dumps loads 简单对比

    json.dumps是将一个Python数据类型列表进行json格式的编码解析, 示例如下: >>> import json #导入python 中的json模块>>&g ...

  8. SWUST OJ(955)

    单链表上查找算法的实现 #include <stdio.h> #include <stdlib.h> typedef struct LinkNode //单链表节点结构的定义 ...

  9. 『流畅的Python』第9章笔记_对象

    一.Python风格 以一个二元素向量对象为例 import math from array import array class Vector2d: typecode = 'd' def __ini ...

  10. 【Java】【2】String和List相互转换

    正文: 1,String转List //常见的为逗号分隔 String str = "a,b,c"; List<String> list1 = Arrays.asLis ...