学会sql数据库关系图(Petshop)

 更新时间:2012年08月15日 09:41:27   作者:  
花了这么多时间最终还是回到了数据库,但是数据库中一张一张的表格找不到脚本,也不是自己设计的数据库,完全没有一点头绪,后来突然想起来sql有个数据库关系图,可以很快的适合数据库程序员很快的掌握数据库表之间的关系

很久以前就知道微软的Petshop的很经典,昨天抽出时间去学习,一开始还真的不适应,什么成员资格,还真的看不太懂,运行petshop想从登陆学起,但是用户名和密码都不知道,后来发现有更注册的页面,自己注册了一个页面,才发现还得从数据库出发。花了这么多时间最终还是回到了数据库,但是数据库中一张一张的表格找不到脚本,也不是自己设计的数据库,完全没有一点头绪,后来突然想起来sql有个数据库关系图,可以很快的适合数据库程序员很快的掌握数据库表之间的关系。于是开始了我的百度之旅,关于数据库的关系图的文章还真的很少,于是我开始根据petshop,然后建立数据库关系图,开始掌握数据库关系图。我点击MSPetShop4Services这个数据库,存放着用户的信息。但是原版的是没有数据库关系图。

  首先我们自己动手来新建一张数据库关系图吧,找到相应的数据库(图1),在第一行中有个数据库关系图,我们右击选择新建数据库关系图(N),如图2:

 

      (图1)              (图2)

  这个时候会跳出一个添加表对话框,这里我们可以选择我们想要的表,如果想要全部选中,则这样操作,先鼠标点重第一个然后按住shift+鼠标点重最后一个,来完成操作。最后表格位子整理一下,然后ctrl+s保存一下,数据关系图的名字,那么数据库关系图基本建立好了。接下来就是分析了。

          (添加表对话框图)                          (选中表对话框图)

  整个MSPetShop4Services数据库的关系图。整个这幅图,是不是看着一张一张的表格了解表之间的关系舒服多了,当然我们还是要看懂整个表的意思,首先最上面的是表名,下面的都是字段,有些字段左边有个钥匙,那是主键的意思。在表之间有个线连着就说明这两个表之间存在主键和外键的关系,其中一半都有钥匙的指的是主键,一个无穷大的符号表示的外键。但是不知道细心的朋友有没有发现一个问题,比如说aspnet_Paths和aspnet_PersonalizationAllUsers表之间的线的两端都是钥匙的,我也找了很久资料没有找到,于是自己写代码测试了,到底是什么意思。

通过自己的代码了解图中线的含义:

我自己定义是一个学生选课的关系图:

sql脚本代码如下:

复制代码 代码如下:

CREATE TABLE Student
(
[Sid] INT NOT NULL PRIMARY KEY, --学生编号
SNAme VARCHAR(10)   NOT NULL --学生姓名
)

CREATE TABLE Course(
[Cid] INT NOT NULL PRIMARY KEY, --课程编号
CName VARCHAR(10) NOT NULL --课程名
)

CREATE TABLE SC(
[Sid] INT NOT NULL,
[Cid] INT NOT NULL,
Grade INT NOT NULL, --成绩
FOREIGN KEY([SID]) REFERENCES Student2([Sid]),
FOREIGN KEY([CID]) REFERENCES Course2([Cid])
)

出来的关系图如下:

  这个数据图是我们知道的主键外键的关系,也是符合我们思维的。

  接着我在代码里面改了一行代码,图就变调了,代码如下:

复制代码 代码如下:

CREATE TABLE Student2
(
[Sid] INT NOT NULL PRIMARY KEY, --学生编号
SNAme VARCHAR(10) NOT NULL --学生姓名
)

CREATE TABLE Course2(
[Cid] INT NOT NULL PRIMARY KEY, --课程编号
CName VARCHAR(10)      NOT NULL      --课程名
)

CREATE TABLE SC2(
[Sid] INT NOT NULL PRIMARY KEY,
[Cid] INT NOT NULL,
Grade INT NOT NULL, --成绩
FOREIGN KEY([SID]) REFERENCES Student2([Sid]),
FOREIGN KEY([CID]) REFERENCES Course2([Cid])
)

  对应的关系图如下:

  我相信你们看到了吧,两个钥匙的线段。好了那我们应该了解了吧,我们可以得出这样的结论,如果一个表中是主键,而另一个表中却是普通的字段,那显示的效果是一个钥匙一个无穷大,钥匙指向主键,无穷大指向外键,但是当外键在另一张表中也作为主键,那此时无穷大也变为了钥匙。此时我们不能看线了。那要怎么分析主键和外键呢?别急往下看。这里介绍两个方法,第一个比较简答,我们把鼠标放到这个线上面,他会跳出一行提示,在前面的表名是主键,后面的是外键,最后的是关系的名字(这个是我自己看表得出的结论),还有一个方法,但是我们事先也要用这个方法,知道这个关系的名字,然后点击两个表中随便的哪一张表,右击选择关系,找到相应的关系名,然后选择右边的表和列规范,里面就写明了主外键的关系了。好了就写到这里了。

  总结:
  遇到难的我们先不要怕,从最基本的做起,也可以自己建立测试数据来验证遇到的新的知识。

相关文章

  • SQL设置SQL Server最大连接数及查询语句

    SQL设置SQL Server最大连接数及查询语句

    今天遇到了关于Sql Server最大连接数(Max Pool Size)的问题,后来通过查找一些资料解决了,所以想着总结下关于SQL Server最大连接数的内容,所以这篇文章主要介绍了SQL设置SQL Server最大连接数与查询语句,有需要的朋友们可以参考借鉴。
    2016-12-12
  • sql with as用法详解

    sql with as用法详解

    这篇文章详细介绍了SQL中with as的用法,有需要的朋友可以参考一下
    2013-10-10
  • MSSQL 监控数据/日志文件增长实现方法

    MSSQL 监控数据/日志文件增长实现方法

    今天就想实现这么一个功能,每天(频率可以调整)去收集一下数据文件的信息,放到一个表里面,这样方便我们分析数据文件的增长演变例程,甚至你可以将数据文件的增长幅度和业务变化关联起来分析
    2013-08-08
  • SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例

    SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例

    这篇文章主要介绍了SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • sqlserver数据库优化解析(图文剖析)

    sqlserver数据库优化解析(图文剖析)

    这篇文章主要介绍了sql数据库查询数据慢,针对如何优化sqlserver数据库做介绍,需要的朋友可以参考下
    2015-07-07
  • SQL Server 总结复习 (二)

    SQL Server 总结复习 (二)

    SQL Server 总结复习,学习sqlserver的朋友可以参考下
    2012-08-08
  • sql server数据库中raiserror函数用法的详细介绍

    sql server数据库中raiserror函数用法的详细介绍

    这篇文章主要介绍了sql server数据库中raiserror函数用法的详细介绍,raiserror用于抛出一个异常或错误,让这个错误可以被程序捕捉到。对此感兴趣的可以了解一下
    2020-07-07
  • SQL Server删除重复数据只保留一条的实现步骤

    SQL Server删除重复数据只保留一条的实现步骤

    在进行数据处理和数据分析的过程中,我们经常会遇到重复记录的问题,重复记录可能会导致数据不准确,也会增加数据处理的工作量,这篇文章主要给大家介绍了关于SQL Server删除重复数据只保留一条的实现步骤,需要的朋友可以参考下
    2024-01-01
  • sqlserver 函数、存储过程、游标与事务模板

    sqlserver 函数、存储过程、游标与事务模板

    SQL 函数、存储过程、游标与事务模板,学习sqlserver的朋友很多情况下都需要用得到。
    2010-08-08
  • 查看sql server服务器日志流程步骤

    查看sql server服务器日志流程步骤

    这篇文章主要为大家介绍了查看sql server服务器日志流程步骤详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01

最新评论