数据库编程测试机试 QQ
创建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的更多相关文章
- 运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库
运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运 ...
- 提高你的数据库编程效率:Microsoft CLR Via Sql Server
你还在为数据库编程而抓狂吗?那些恶心的脚本拼接,低效的脚本调试的日子将会与我们越来越远啦.现在我们能用支持.NET的语言来开发数据库中的对象,如:存储过程,函数,触发器,集合函数已及复杂的类型.看到这 ...
- VB.NET数据库编程基础教程
关键词:作者罗姗 众所周知,VB.NET自身并不具备对数据库进行操作的功能,它对数据库的处理是通过.NET FrameWork SDK中面向数据库编程的类库和微软的MDAC来实现的.其中,ADO. ...
- java面向对象下:Java数据库编程
19.Java数据库编程: JDBC概述: JDBC(Java Database Connection)是java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类 ...
- Java数据库编程、XML解析技术
数据库编程 JDBC概述 是Java Database Connecive,即数据库连接技术的简称,它提供了连接各种常用数据库的能力. 是一种用于执行SQL语句的Java API,可以为多种关系数据库 ...
- .Net程序员学用Oracle系列(3):数据库编程规范
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.书写规范 1.1.大小写风格 1.2.缩进风格 1.3.换行 1.4.其它 2.命名规范 2.1.数据库对象命名 2.2.变 ...
- java 数据库编程 学习笔记 不断更新
最近开始学习java,感觉java的数据库编程需要发个随笔记录一下,话不多说 切入正题. 一.数据库访问技术的简介 应用程序 → 执行SQL语句 →数据库 → 检索数据结果 → 应用程序 ( ...
- Windows数据库编程接口简介
数据库是计算机中一种专门管理数据资源的系统,目前几乎所有软件都需要与数据库打交道(包括操作系统,比如Windows上的注册表其实也是一种数据库),有些软件更是以数据库为核心因此掌握数据库系统的使用方法 ...
- JAVA数据库编程、JAVA XML解析技术
JDBC概述 JDBC是JAVA中提供的数据库编程API curd :数据库增删改 链接字符串:String url = "mysql :/localhost :3306/jdbc/&quo ...
随机推荐
- python三级菜单实例(傻瓜版和进阶版)
程序: python三级菜单 要求: : 1.打印省.市.县三级菜单 2.可返回上一级 3.可随时退出程序 方案一:傻瓜版(其实傻瓜版考察的主要是思路!思路清楚了,那才不是傻瓜!O(∩_∩)O哈哈~) ...
- centos 7 安装TensorFlow
查看linux版本 uname -a 查看磁盘大小 准备好python 2.7 查看python版本 import sysprint sys.version print sys.version_in ...
- 宿主iis部署wcf
WCF学习笔记(4)——宿主iis部署wcf 本文将部署一个wcf+silverlight简单实例,以下是详细步骤: (环境:服务端win2003,iis6.0,asp.net4.0:客户端winXP ...
- InputSream转为String
public static String convertStreamToString(InputStream is) { /* * To convert the InputStream to Stri ...
- ubuntn 安装python3 及 django及pip3
1.sudo apt-get install python3-pip 安装pip3 2.sudo pip3 install django 通过pip3安装django 3. sudo apt ...
- 通过selenium控制浏览器滚动条
目的:通过selenium控制浏览器滚动条 原理:通过 driver.execute_script()执行js代码,达到目的 driver.execute_script("window.sc ...
- 牛客练习赛32-D-MST+tarjin割边
链接:https://ac.nowcoder.com/acm/contest/272/D来源:牛客网 题目描述 小p和他的朋友约定好去游乐场游玩,但是他们到了游乐场后却互相找不到对方了. 游乐场可以看 ...
- Linux在shell中输入历史命令
在Linux的shell中,经常输入的命令有很多雷同,甚至是一样的, 如果是长命令,再次敲一遍效率真的是很低, 不过可以通过Ctl+r, 查找history中以前输入的命令,很是好用. 按Ctrl+ ...
- C# 3.0 / C# 3.5 隐式(推断)类型 var
概述 你可能对隐式类型(或隐式推断类型)这个名称比较陌生,但是 var 这个关键字应该很熟悉. 在 C# 中使用 var 声明一个对象时编译器会自动根据赋值语句推断这个局部变量的类型. 赋值以后,这个 ...
- myeclipse debug模式 报错source not found
myeclipse debug模式下,启动报错 source not found:SignatureParser.current() line: 解决方法:将debug视图下的右上方的jar有断点的地 ...