求SQL语句 100
table:user(id,name)table:friend_ship(user_id,friend_id,relation)table:chat_message(fr...
table: user(id,name)
table:friend_ship(user_id,friend_id,relation)
table:chat_message(from_id,to_id,text,createDate,unread)//unread 未读消息
其中 from_id,to_id,user_id,friend_id 都是user表中的id
求怎样查询最近10个好友的的消息(relation==1),及未读消息数量(unread == true),及最新的一条消息
friend_id ,friend_name ,unread_count ,msg_text, msg_date
1 ,jason, 10, "在" 2015-12-12
(若可以,假如去掉friend_ship 表,以存在聊天记录,表示是好友,又怎么查询) 展开
table:friend_ship(user_id,friend_id,relation)
table:chat_message(from_id,to_id,text,createDate,unread)//unread 未读消息
其中 from_id,to_id,user_id,friend_id 都是user表中的id
求怎样查询最近10个好友的的消息(relation==1),及未读消息数量(unread == true),及最新的一条消息
friend_id ,friend_name ,unread_count ,msg_text, msg_date
1 ,jason, 10, "在" 2015-12-12
(若可以,假如去掉friend_ship 表,以存在聊天记录,表示是好友,又怎么查询) 展开
展开全部
1、说明:创建数据库
Create DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice ‘disk‘, ‘testBack‘, ‘c:\mssql7backup\MyNwind_1.dat‘
--- 开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、说明:删除新表
drop table tabname
6、说明:增加一个列
Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键: Alter table tabname add primary key(col)
说明:删除主键: Alter table tabname drop primary key(col)
8、说明:创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:create view viewname as select statement
删除视图:drop view viewname
10、说明:几个简单的基本的sql语句
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料。
排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
Create DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice ‘disk‘, ‘testBack‘, ‘c:\mssql7backup\MyNwind_1.dat‘
--- 开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、说明:删除新表
drop table tabname
6、说明:增加一个列
Alter table tabname add column col type
注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键: Alter table tabname add primary key(col)
说明:删除主键: Alter table tabname drop primary key(col)
8、说明:创建索引:create [unique] index idxname on tabname(col….)
删除索引:drop index idxname
注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:create view viewname as select statement
删除视图:drop view viewname
10、说明:几个简单的基本的sql语句
选择:select * from table1 where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料。
排序:select * from table1 order by field1,field2 [desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
展开全部
你问题说得不是很清楚,你看看下面sql
select * from (select * from (select f.friend_id,u.name,10,c.text,c.createDate
from user u,friend_ship f,chat_message c where
u.id=f.user_id and u.id=f.friend_id and
u.id=c.from_id and u.id=c.to_id and
f.relation=1 and f.unread=true) order by createDate desc)
where rownum <=10;
你第二个问题,看起来很简单呀,但是我不知道你是不是问的这个问题
select name from user where id in (select to_id from chat_message);
select * from (select * from (select f.friend_id,u.name,10,c.text,c.createDate
from user u,friend_ship f,chat_message c where
u.id=f.user_id and u.id=f.friend_id and
u.id=c.from_id and u.id=c.to_id and
f.relation=1 and f.unread=true) order by createDate desc)
where rownum <=10;
你第二个问题,看起来很简单呀,但是我不知道你是不是问的这个问题
select name from user where id in (select to_id from chat_message);
追问
额,表示我描述的有歧义。大概实现这样的功能
像qq聊天列表中显示好友的最近的一条聊天记录(可能是自己发送的,或者是从好友发送的),以及要查到好友的相关信息,及未读消息数量。数据库刚开始学(我目前是冗余出了一张表 来存储最新的一条消息)。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询