SQL数据库里面怎样设置表与表之间的关联

SQL数据库里面怎样设置表与表之间的关联,第1张

设置关联的两表或者多表、通过外键关联、外键字段是从表中的字段、外键(foreign

key)字段需要在主表做主键(primary

key)、

比如

学生表(学号

主键,姓名)

主表

课程表(课号

主键,课名)

主表

选了表(学号

外键,

课号

外键,成绩)

从表

这样三个表就关联了、记住建表顺序、先主表、再从表

然后可以使用代码或者图形界面管理器创建外键、创建完就关联了

外键的取值必须是主键的值

select from 表1,表2,表3 where 表1字段=表2字段 and 表1字段=表3字段。

结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

一、简介

(1)SQL语言1974年由Boyce和Chamberlin提出,并首先在IBM公司研制的关系数据库系统SystemR上实现。由于它具有功能丰富、使用方便灵活、语言简洁易学等突出的优点,深受计算机工业界和计算机用户的欢迎。

(2)1980年10月,经美国国家标准局(ANSI)的数据库委员会X3H2批准,将SQL作为关系数据库语言的美国标准,同年公布了标准SQL,此后不久,国际标准化组织(ISO)也作出了同样的决定。

SQL从功能上可以分为数据定义、数据 *** 纵和数据控制。SQL的核心部分相当于关系代数,但又具有关系代数所没有的许多特点,如聚集、数据库更新等。它是一个综合的、通用的、功能极强的关系数据库语言。其特点是:

1、数据描述、 *** 纵、控制等功能一体化。

2、两种使用方式,统一的语法结构。SQL有两种使用方式。一是联机交互使用,这种方式下的SQL实际上是作为自含型语言使用的。另一种方式是嵌入到某种高级程序设计语言(如C语言等)中去使用。

前一种方式适合于非计算机专业人员使用,后一种方式适合于专业计算机人员使用。尽管使用方式不向,但所用语言的语法结构基本上是一致的。

3、高度非过程化。SQL是一种第四代语言(4GL),用户只需要提出“干什么”,无须具体指明“怎么干”,像存取路径选择和具体处理 *** 作等均由系统自动完成。

4、语言简洁,易学易用。尽管SQL的功能很强,但语言十分简洁,核心功能只用了9个动词。SQL的语法接近英语口语,所以,用户很容易学习和使用。

二、功能

SQL具有数据定义、数据 *** 纵和数据控制。

1、SQL数据定义功能

能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式有叫做视图(View),全局模式简称模式( Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。

2、SQL数据 *** 纵功能

包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。

3、SQL的数据控制功能

主要是对用户的访问权限加以控制,以保证系统的安全性。

三、语句结构

结构化查询语言包含6个部分:

1、数据查询语言(DQL:Data Query Language)

其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有WHERE,ORDER BY,GROUP BY和HAVING。这些DQL保留字常与其它类型的SQL语句一起使用。

2、数据 *** 作语言(DML:Data Manipulation Language)

其语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除。

3、事务控制语言(TCL)

它的语句能确保被DML语句影响地表的所有行及时得以更新。包括COMMIT(提交)命令、SAVEPOINT(保存点)命令、ROLLBACK(回滚)命令。

扩展资料:

SQL的语言特点

1、SQL风格统一

SQL可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录入数据、建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列 *** 作,这就为数据库应用系统开发提供了良好的环境,在数据库投入运行后,还可根据需要随时逐步修改模式,且不影响数据库的运行,从而使系统具有良好的可扩充性。

2、高度非过程化

非关系数据模型的数据 *** 纵语言是面向过程的语言,用其完成用户请求时,必须指定存取路径。而用SQL进行数据 *** 作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无须了解存取路径,存取路径的选择以及SQL语句的 *** 作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。

3、面向集合的 *** 作方式

SQL采用集合 *** 作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新 *** 作的对象也可以是元组的集合。

参考资料来源:百度百科-结构化查询语言

首先我们打开Access数据库后,建立两个数据表来作为举例。

建立好数据表以后,点击表可以看到两个表中包含不同的字段内容,如果我们要查询任何一个字段的记录内容,就要将两个表建立起关系,相互关联。

选中任何一个表,然后点击工具栏上的视图图标。

现在切换到设计界面,点击工具栏上的关系按钮,打开关系窗口。

在关系窗口的添加表中,依次选择要添加的表,然后点击添加按钮,将表添加到关系窗口中。添加好以后点击关闭,回到关系窗口。

鼠标点击其中一个表的主键字段,即没有重复值的唯一字段。按住鼠标不放,然后拖动到另一个表的相同字段松开,在d出的窗口中点击确定。

现在两个表已经建立了以上岗证号为关联的关系。以后可以通过查询来显示任何一个表中的符合条件的字段记录。

select a

from 学员表 a

inner join 校区表 b on a所在学校=b所在学校

inner join 管理员表 c on b区域=c区域

where c用户名=@用户名 and c密码=@密码

注意:最好把登陆和列表查询分开来做,因为无论是从安全还是程序实现的角度来看,都比较好。

扩展资料:

mysql三张表联合查询总结

一、表结构

1、表(存放)

CREATE TABLE `tb_pic` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长 id',

`url` varchar(255) DEFAULT NULL COMMENT ' url 路径',

`description` varchar(255) DEFAULT NULL COMMENT '描述',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='表';

2、标签表(存放标签)

CREATE TABLE `tb_flag` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长 id',

`name` varchar(255) DEFAULT NULL COMMENT '标签名称',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='标签表';

3、标签链接表(、标签中间表)

CREATE TABLE `tb_pic_flag_link` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增长 id',

`pic_id` int(11) DEFAULT NULL COMMENT ' id',

`flag_id` int(11) DEFAULT NULL COMMENT '标签 id',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='标签链接表';

二、实现的效果

1、查询单张的描述

效果:

查询语句:

SELECT pid, purl, pdescription, GROUP_CONCAT(f`name`)

from tb_pic p, tb_pic_flag_link l, tb_flag f

where pid = lpic_id and lflag_id=fid and pid=1;

2、查询所有的描述

效果:

查询语句:

SELECT pid, purl, pdescription, GROUP_CONCAT(f`name`)

from tb_pic p, tb_pic_flag_link l, tb_flag f

where pid = lpic_id and lflag_id=fid GROUP BY pid;

关于反映这三张表中数据之间的联系,提供三方面信息以供参考:

1、表关系分析:学生表与课程表是多对多的关系,建立一张关联表也就是选课表来将学生表与程表产生关联。

2、数据库表分析:学生表包括学生相关信息,课程表包括课程相关信息,选课表放其他两张表的各一个字段(可以维护唯一性,比如说主键)。

3、实体分析:包含学生和课程两个实体,在每个实体中加入另外一个实体的集合。

建立5个表,前提是,歌手只与专辑有直接关系,与歌曲无直接关系。

首先是歌手的基本信息表,包括歌手的id,name等;专辑的基本信息表,包括专辑的id,name等信息;歌曲的基本信息表,包括歌曲id,name等信息。

然后建立歌手与专辑的关联表,以歌手id与专辑id为联合主键;

建立专辑与歌曲的关联表,以专辑id和歌曲id为联合主键。

问题里面说‘歌手 与专辑是 1:1’现实中歌手与专辑应该是1:n的关系,当然上述建表也是可以满足你的要求的。

但是“歌手与歌曲:1:1”这个条件是不是真的需要,若一个歌手出一张专辑,那么这个条件要求一个专辑里面只有一首歌,很明显不符合实际。

aid肯定显示多条啊,你只要a和b关联了,aid就是多条的,是按照b的条数来的,如果你想要直显示aid的不重复的,如下:

select distinct aid from a,b,c where aid = bid and bid = cid

或者 select distinct a from a,b,c where aid = bid and bid = cid

如果你想要用b,c表中的内容,比如你1对2,1对3,1对4,1为表中的,2,3,4为b或者c得都行的,那么你要指定是那条比如你要制定1对3,那么要在where后加上bid = 3,或者cid = 3,不然数据库无法判断你具体要c表中,或者b表中的哪条

---table1指的是第一张表,table2指的是第二张表,table3指的是第三张表,

select  auid,auname,aupsw,aurealname,autel,aremark,brname,brremark,cdeptname,cdeptremark from table1 a,table2 b, table3 c where asems_role_rid=brid and audeptid=cdeptid

以上就是关于SQL数据库里面怎样设置表与表之间的关联全部的内容,包括:SQL数据库里面怎样设置表与表之间的关联、SQL里3个表的连接查询的语句怎么写呀、怎么建立这三个表的表间关系access2010等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9506523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存