数据库编程测试机试 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 ...
随机推荐
- 关于怎么在CSDN中修改代码行中字体的颜色
先吐槽一下自己的心路历程吧,自己现在也是在CSDN中发表了自己好几篇的原创博文,但每一篇博文自己总感觉怪怪的,就是说不出自己哪里有毛病呢,知道今天恍然大悟,原来自己的代码行真心丑的要死,没有呈现出在编 ...
- js获取url传递得参数
方法一:正则法 function getQueryString(name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(& ...
- 图片路径转base64字节码
package product; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOE ...
- 在项目中使用react
1. 运行 ’cnpm i react react-dom -S' 安装包 react:专门用于创建组件和虚拟DOM,同时组件的生命周期都在这个包中 react-dom:专门进行DOM操作,主要应用场 ...
- 关于react16.4——转发refs和片段Fragment
1.转发refs Ref 转发是一种自动将 ref 通过组件传递给子组件的技术. 一些组件倾向于以与常规 DOM button 和 input 类似的方式在整个应用程序中使用, 并且访问他们的 DOM ...
- 在react+redux+axios项目中使用async/await
Async/Await Async/Await是尚未正式公布的ES7标准新特性.简而言之,就是让你以同步方法的思维编写异步代码.对于前端,异步任务代码的编写经历了 callback 到现在流行的 Pr ...
- leetcode-algorithms-30 Substring with Concatenation of All Words
leetcode-algorithms-30 Substring with Concatenation of All Words You are given a string, s, and a li ...
- 安装docker No package docker available
安装docker 时候出现以下问题 yum -y install dockerLoaded plugins: fastestmirrorDetermining fastest mirrors * ba ...
- 70. Climbing Stairs爬楼梯
网址:https://leetcode.com/problems/climbing-stairs/ 其实就是斐波那契数列,没什么好说的. 注意使用3个变量,而不是数组,可以节约空间. class So ...
- 基本数据类型list,tuple
一. 列表 1. 列表是一个可变的数据类型 列表由[]来表示, 每一项元素使用逗号隔开. 列表什么都能装. 能装对象的对象. 列表可以装大量的数据 列表是有序的 2. 列表的索引和切片 列表和字符串一 ...