
-- =============================================
-- ylb;仿QQ短信
-- development time:11:35 2012-04-18
-- =============================================
use master
go
IF EXISTS (SELECT *
FROM master..sysdatabases
WHERE name = N'QQMessage')
DROP DATABASE QQMessage
GO
CREATE DATABASE QQMessage
GO
use QQMessage
go
-- =============================================
-- ylb;1,Users
-- remark:用戶表
-- =============================================
create table Users
(
userId int primary key identity(100,1), --編號[PK]
nickname varchar(200) not null, --昵稱
userpass varchar(200) not null, --密碼
headImage varchar(200), --頭像地址
username varchar(200), --備注姓名
flag int default(0) check(flag in(0,1)) --標識,flag=1,說明此用戶已注銷,0:正常
)
go
-- =============================================
-- ylb;2,Note
-- remark:短信表
-- =============================================
create table Message
(
msgId int primary key identity(200,1), --編號[PK]
toUserId varchar(200) not null, --收信人編號[FK]
content varchar(500) not null, --發(fā)新內(nèi)容
pubdate datetime default(getdate()), --發(fā)送時間
sendUserId int --發(fā)送用戶編號[FK]
)
-- =============================================
-- ylb;3,Friend
-- remark:好友表
-- =============================================
create table Friend
(
userId int not null, --用戶編號
friendId int not null --用戶好友編號
)
print '數(shù)據(jù)創(chuàng)建成功!'
-- =============================================
-- ylb;仿QQ短信
-- development time:11:35 2012-04-18
-- =============================================
use QQMessage
go
--InsertData
insert into Users(nickname,userpass,headImage) values('sunshine','m123','default.jpg')
insert into Users(nickname,userpass,headImage) values('rain','m123','default.jpg')
insert into Users(nickname,userpass,headImage) values('lanchong','m123','default.jpg')
insert into Users(nickname,userpass,headImage) values('sun','m123','default.jpg')
select * from Users
go
--修改備注
update Users set username='袁博' where userId=102
go
--登錄
select count(*) from Users where userId=100 and userpass='m123'
go
--刪除一組會話
delete Message where toUserId=100 and sendUserId=101 or toUserId=101 and sendUserId=100
go
--1,發(fā)送信息
--1,outBox
insert into Message(toUserId,content,sendUserId) values(100,'I is sunshie',101)
--2,inBox
insert into Message(toUserId,content,sendUserId) values(101,'Who are you?',100)
insert into Message(toUserId,content,sendUserId) values(100,'sunshie',101)
go
--2,我的收信列表
--2_1,List
select userId,nickname,headImage,username from Users
where userId in(select sendUserId from Message where toUserId=100)
or userId in(select toUserId from Message where sendUserId=100)
go
--2_2,附屬最近的一條短信
select top 1 msgId,toUserId,content,pubdate,sendUserId from Message
where toUserId=100 and sendUserId=101 or toUserId=101 and sendUserId=100
order by msgId desc
--最新的回復(fù)
select top 1 content from Message where toUserId=101 and sendUserId=100
order by msgId desc
go
select userId,nickname,headImage,username from Users
where userId in(select sendUserId from Message where toUserId=100)
select userId,nickname,headImage,username,content from Users u left join Message m
on u.userId=m.toUserId
go
--3,單機看詳細
select * from Users
select * from Message
go
--3_1,獲取備注
select nickname from Users where userId=1
go
--3_2,獲取列表
select * from Users u left join Message m
on u.userId=m.toUserId
go
--結(jié)論
select userId,nickname,headImage,username,msgId,content,pubdate,sendUserId from Users u
left join Message m on u.userId=m.toUserId
where toUserId=100 and sendUserId=101 or toUserId=101 and sendUserId=100
