xgcblog

USE master;
GO
IF DB_ID (N\'MicroblogDB\') IS NOT NULL

--N \'.... \'代表是Unicode   字符串

/*

删除数据库 数据库名一般放在master的sysdatabases中。
   方法一 用exists(存在)

   use master
   go

  if exists(select * from sysdatabases where name = \'数据库名\')
     drop database 数据库名
  go

  方法二 db_id存在sqlserver2000以后的版本
  use master
   go

  if db_id(N\'数据库名\') is not
    drop database 数据库名
   go

*/


DROP DATABASE MicroblogDB;
GO
-- Get the SQL Server data path.
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N\'master.mdf\', LOWER(physical_name)) - 1)
                  FROM master.sys.master_files
                  WHERE database_id = 1 AND file_id = 1);

 -- Execute the CREATE DATABASE statement.
EXECUTE (\'CREATE DATABASE MicroblogDB
ON
    (
    NAME = MicroblogDB_data
    ,FILENAME = \'\'\' + @data_path + \'MicroblogDB_data.mdf\'\'
    ,SIZE = 10MB
    ,MAXSIZE = 50MB
    ,FILEGROWTH = 15%
    )
LOG ON
    (
    NAME = Microblog_log
    ,FILENAME = \'\'\' + @data_path + \'MicroblogDB_log.ldf\'\'
    ,SIZE = 5MB
    ,MAXSIZE = 25MB
    ,FILEGROWTH = 5MB
    )\'
);
GO

USE MicroblogDB;
GO

CREATE TABLE tbUser--用户表
(
 UserID nvarchar(64)PRIMARY KEY,--用户ID,主键
 Password nvarchar(64),--密码
 Question nvarchar(64),--密码问题
 Answer nvarchar(64),--密码问题答案
 NickName nvarchar(64),--昵称
 TrueName nvarchar(64),--真实姓名
 Sex nvarchar(8) check (sex in (\'男\',\'女\')),--性别
 Province nvarchar(16),--省份
 City nvarchar(16),--市
 BlogAddress nvarchar(64),--博客地址
 Email nvarchar(64),--电子邮件
 QQ nvarchar(32),--QQ
 MSN nvarchar(64),--MSN
 SelfIntroduction nvarchar(1024),--自我介绍
)
ALTER   TABLE   tbUser   ADD   Regdate   datetime  default   NULL  --给表添加一个字段
INSERT INTO tbUser
(
 UserID,
 Password,
 Question,
 Answer,
 NickName,
 TrueName,
 Sex,
 Province,
 City,
 BlogAddress,
 Email,
 QQ,
 MSN,
 SelfIntroduction
)
VALUES
(
 \'lianqidi\'/* UserID */,
 \'123456\'/* Password */,
 \'我叫什么?\'/* Question */,
 \'连齐俤?\'/* Answer */,
 \'独钓寒江雪\'/* NickName */,
 \'连齐俤\'/* TrueName */,
 \'男\'/* Sex */,
 \'福建省\'/* Province */,
 \'福州市\'/* City */,
 \'http://user.qzone.qq.com/89745607/\'/* BlogAddress */,
 \'lianqidi@sina.com\'/* Email */,
 \'89745607\'/* QQ */,
 \'lianqidi@hotmail.com\'/* MSN */,
 \'很好很强大?\'/* SelfIntroduction */
)
select getdate()
update tbUser set Regdate = getdate() where UserID = \'lin\'
SELECT * FROM tbUser
DELETE  FROM tbUser WHERE  UserID = \'lin\'
DROP TABLE tbUser;
SELECT top 15 U.UserID,I.ImageName FROM tbUser as U left join tbUserImage as I on(U.UserID=I.UserID)Order By Regdate DESC
CREATE TABLE tbUserImage --用户图片表
(
 UserID nvarchar(64)primary key,
 ImageName nvarchar(64),
 FOREIGN KEY (UserID) REFERENCES tbUser(UserID)on delete cascade on update cascade
)
drop table tbUserImage
select * from tbUserImage
Insert Into tbUserImage(UserID, ImageName)values(\'lianqidi\',\'123456.jpg\')
DELETE FROM tbUserImage WHERE UserID = \'lianqidi\'
SELECT TOP 3 *, NewID() as random  from tbUser order by random
SELECT TOP 5 *, NewID() as random  from tbUserImage order by random

CREATE TABLE tbMicroblog--微博表
(
 MicroblogID int identity(1,1) primary key,--微博编号
 UserID nvarchar(64),--微博主人
 Content nvarchar(300),--微博内容
 Pubdate datetime,--发布时间
 FOREIGN KEY (UserID) REFERENCES tbUser(UserID)on delete cascade on update cascade
)

INSERT INTO tbMicroblog(UserID,Content,Pubdate)VALUES(\'lianqidi\',\'你好\',getdate())
--取出最新发表的微博和作者照片文件名
select top 20 M.UserID, M.MicroblogID,M.Content,M.Pubdate,I.ImageName From tbMicroblog as M left join tbUserImage as I on(M.UserID = I.UserID) Order By Pubdate DESC 
--取出最新发表的微博和作者照片文件名(作者为我关注的人)
select M.UserID, M.MicroblogID,M.Content,M.Pubdate,I.ImageName From tbMicroblog as M left join tbUserImage as I on(M.UserID=I.UserID) WHERE M.UserID in(select distinct R.FocusID from tbUser as U left join tbRelation as R on (\'lianqidi\'=R.UserID)) Order By Pubdate DESC
select distinct R.FocusID from tbUser as U left join tbRelation as R on (\'lianqidi\'=R.UserID)
SELECT Content,Pubdate FROM tbMicroblog WHERE UserID = \'lianqidi\' Order By Pubdate DESC
SELECT * FROM tbMicroblog;
DELETE FROM tbMicroblog WHERE UserID = \'lianqidi\'
DROP TABLE tbMicroblog;

CREATE TABLE tbReview    --评论表
(
 ReviewID int identity(1,1) primary key,  --评论ID,由数据库自动增长
 UserID nvarchar(64),      --评论用户ID
 MicroblogID int,       --评论微博编号
 ReviewContent nvarchar(300),    --评论内容
 Pubdate datetime,       --评论时间
 FOREIGN KEY (MicroblogID) REFERENCES tbMicroblog(MicroblogID)on delete cascade on update cascade
)
insert into tbReview(UserID,MicroblogID,ReviewContent,Pubdate) values(\'lianqidi\',1,\'你好\',getdate())
DROP TABLE tbReview
SELECT * FROM tbReview

CREATE TABLE tbSms --短信表
(
 SmsID int identity(1,1) primary key, --短信编号
 Content nvarchar(2048),     --短信内容
 SendID nvarchar(64),     --发送账号
 ReceiveID nvarchar(64),    --接受账号
 SendTime datetime,     --发送时间
 HasRead  nvarchar(8) not null default \'no\', --是否阅读
 ReadTime datetime     --阅读时间
 FOREIGN KEY (SendID) REFERENCES tbUser(UserID) on delete cascade on update cascade
)
SELECT * FROM tbSms
INSERT INTO tbSms(Content,SendID,ReceiveID,SendTime,HasRead,ReadTime) values(\'你好。\',\'lianqidi\',\'123\',\'2010-03-26 13:35:50.140\',\'no\',\'2010-03-26 13:35:50.140\')
DROP TABLE tbSms
select getdate()

/* 此表已废弃
CREATE TABLE tbRelation--用户关系表
(
 RelationID int identity(1,1) primary key,--主键,关系编号
 UserID nvarchar(64),--用户ID
 FansID nvarchar(64) ,--粉丝
 FocusID nvarchar(64) ,--关注
 FOREIGN KEY (UserID) REFERENCES tbUser(UserID) on delete cascade on update cascade
)
SELECT * FROM tbRelation
INSERT INTO tbRelation(UserID,FocusID)values(\'lianqidi\',\'王建伟\')
Insert into tbRelation(UserID,FansID)values(\'\',\'\')
DROP table tbRelation
select count(*) from tbRelation where UserID = \'lianqidi\' AND FansID <> \'\'
*/
CREATE TABLE tbAttention  --关注表
(
 AttentionID int identity(1,1) primary key,--主键,关注编号
 MyID nvarchar(64),  --我的ID
 YourID nvarchar(64), --你的ID
 AttenTime datetime,  --关注时间
 FOREIGN KEY (MyID) REFERENCES tbUser(UserID) on delete cascade on update cascade
)
SELECT * FROM tbAttention WHERE MyID = \'lianqidi\'
DELETE FROM tbAttention WHERE YourID = \'lianqidi\'
INSERT INTO tbAttention(MyID,YourID,AttenTime)VALUES(\'lin\',\'lianqidi\',getdate())
SELECT count(*) FROM tbAttention WHERE YourID = \'lianqidi\'
SELECT Content,Pubdate FROM tbMicroblog WHERE UserID = \'lianqidi\' Order By Pubdate DESC
select UserID, MicroblogID,Content,PubDate From tbMicroblog Where UserID in(select distinct FocusID From tbUser as U join tbRelation as R on \'lianqidi\' = R.UserID) or UserID = \'lianqidi\'
select M.UserID, M.MicroblogID,M.Content,M.Pubdate,I.ImageName From tbMicroblog as M left join tbUserImage as I on(M.UserID=I.UserID) WHERE M.UserID in(select YourID from tbAttention where MyID = \'lianqidi\') Order By Pubdate DESC

CREATE TABLE tbManager --管理员表
(
 ManagerID nvarchar(64) PRIMARY KEY,--管理员编号
 Password nvarchar(64),--管理员密码
)

 

分类:

技术点:

相关文章:

  • 2021-11-17
  • 2021-11-17
  • 2021-11-18
  • 2021-11-17
  • 2021-12-12
  • 2021-09-27
  • 2021-11-27
  • 2021-11-17
猜你喜欢
  • 2021-11-17
  • 2021-12-27
  • 2021-07-25
  • 2021-11-17
  • 2021-08-31
  • 2021-10-10
相关资源
相似解决方案