网上书店系统 第二天 数据库设计啊




数据库设计的简单小结:

数据库介绍

数据库的命令开启方式:

一:打开cmd

键入net startmssqlserver  开启数据库的相关服务

键入net stopmssqlserver  关闭数据库的相关服务

二:控制面板\所有控制面板项\管理工具\服务中选择关于SQL的选项

数据库 一般采用的是SQL身份验证

可以通过localwindows登入更改SQL身份验证的密码

1 采用master数据库

2 删除与要建的数据库重名的数据库

3 建立数据库

4 切换已建立的数据库

5 删除要建立表格重名的表格

6 建立表格

7插入测试数据

8 查找数据

9 生成视图

参照class diagram 进行数据库的设计


用sql sever2008 建立数据库关系图的





下面贴出新建查询代码


USE MASTER   --在主数据库中建立数据表
GO

IF EXISTS (SELECT * FROM SYSDATABASES WHERE NAME='BBS')  --在所有的数据库中删除重名的数据库
DROP DATABASE BBS
GO

CREATE DATABASE BBS   --建立数据表
ON(
   NAME='BBS_DATA.MDF',        --数据库
   FILENAME='G:\YSH\BBS_DATA.MDF',   --数据库的物理存储地址 
   SIZE=10,                          --初始值大小  以下数据以兆计算
   MAXSIZE=1000,                     --最大数据容量
   FILEGROWTH=5                      --每次增长值
)
LOG ON(              --建立数据日志
   NAME='BBS_LOG.LDF',
   FILENAME='G:\YSH\BBS_LOG.LDF',   
   SIZE=10,
   MAXSIZE=100,
   FILEGROWTH=5
);
GO

USE BBS                                    --切换到建立后的数据库
GO

IF EXISTS (SELECT *FROM SYSOBJECTS WHERE NAME='users')    --在所有的数据表中删除重名的数据表
 DROP TABLE users
GO

IF EXISTS (SELECT *FROM SYSOBJECTS WHERE NAME='section') 
 DROP TABLE section
GO

IF EXISTS (SELECT *FROM SYSOBJECTS WHERE NAME='topic') 
 DROP TABLE topic
GO

IF EXISTS (SELECT *FROM SYSOBJECTS WHERE NAME='reply') 
 DROP TABLE reply
GO

CREATE TABLE users
(
     uid int primary key not null identity(1000,1),  -- 用户编号 定义主键 采用非空 起始初始化
     uname varchar(40) not null,                     --用户名
     pwd   varchar(40) not null default '123456',    --用户密码 非空 存在默认值
     sex   char(8) not null default '男',            --性别 非空 默认男
     regTime datetime,                               --注册时间 调用时间函数
     pic   varchar(20) not null                     --头像
)
GO

CREATE TABLE section
(
     sid int primary key not null identity(1,1),    --版块编号   
     sname varchar(40) not null                     --版块名
)
GO

CREATE TABLE topic
(
   tid int primary key not null identity(1,1),  --主帖编号 主键 非空 初值
   tname varchar(40) not null,                  --标题名
   content varchar(4000) not null,              --内容
   postime datetime,                            --发表时间 调用库时间
   modtime datetime,                            --更新时间
   uid int references users(uid),               --用户编号 外键
   sid int references section(sid)                --版块编号 外键         
) 
GO

CREATE TABLE reply
(
   rid int primary key not null identity(1,1),  --跟帖编号 主键 初值
   rname varchar(40) not null,                  --标题名
   content varchar(1000) not null,              --内容
   postime datetime,                            --发表时间 调用库时间
   modtime datetime,                            --更新时间
   uid int references users(uid),               --用户编号 外键
   tid int references topic(tid)                --主帖编号 外键
)
GO
----------------------------------------------------------
--插入测试数据
INSERT INTO users values('张三',default,default,GETDATE(),'1.jpg');
INSERT INTO users values('李四','0311','女',GETDATE(),'2.jpg');
GO
select *from users;

INSERT INTO section values('新闻'); 
INSERT INTO section values('娱乐'); 
INSERT INTO section values('军事');
INSERT INTO section values('计算机');
GO
select *from section;

INSERT INTO topic values('航母style','请看下面报道',GETDATE(),GETDATE(),1000,3);
GO
select *from topic;

INSERT INTO reply values('顶','顶起航母style',GETDATE(),GETDATE(),1001,1);
GO
select *from reply;

SELECT tid,tname,content,postime,modtime,topic.uid,uname,section.sid,sname  --发帖信息 人和栏目
FROM topic,users,section
WHERE topic.uid=users.uid and topic.sid=section.sid;  
GO 

SELECT rid,rname,reply.content,reply.postime,reply.modtime,reply.rid,users.uname,reply--.tid--,tname
FROM reply,users--,topic
WHERE reply.uid=users.uid --and users.uid=topic.uid --and users.uid=topic.uid;
GO

CREATE VIEW SHOW      --建立视图
as
SELECT tid,tname,content,postime,modtime,topic.uid,uname,section.sid,sname  --发帖信息 人和栏目
FROM topic,users,section
WHERE topic.uid=users.uid and topic.sid=section.sid;  
GO 

SELECT * FROM SHOW;

还可以用 inner join 的形式进行查询 更简便



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值