在Mysql中操作多个表,第1张

在Mysql中操作多个表,第2张

在一个数据库中,可能有多个表,所有这些表都是相互关联的。我们继续用前面的例子。上表包含员工的一些基本信息,如姓名、性别、出生日期和出生地。我们再创建一个表,用来描述员工发表的文章,包括作者姓名、文章标题和发表日期。

1.检查第一个表mytable的内容:
MySQL > select * from my table;
+-+-+-+
|姓名|性别|出生|出生地|
+-+-+-+
| abccs | f | 1977-07-07 |中国|
| Mary | f | 1978-12-12 | USA |
| Tom | m | 1970-09-02 | USA |
+-+-+

2.创建第二个表标题(包括作者、文章标题和发表日期):
MySQL >创建表标题(writer varchar (20) not null,
--> title varchar(40)not null,
--> senddate date);

向表中添加记录,最终表如下:
MySQL > select * from title;
+--+-+
| writer | title | senddate |
+-+-+-+
| ABCs | a1 | 2000-01-23 |
| Mary | B1 | 1998-03-21 |
| ABCs | a2 | 2000-12-04 |
| Tom | C1 | 1992-05-16 |[/br

3.多表查询
现在我们有两个表:mytable和title。有了这两个表,我们就可以进行组合查询:
比如我们要查询作者的姓名、性别、文章abccs:
MySQL >从我的表中选择姓名、性别、书名,title
-->其中name = writer,name = ' ABCCS
+-+-+
|姓名|性别|头衔|
+--+-+
| ABCs | f | a1 |
| ABCs | f | a2 |
+-+--+

在上面的例子中,由于作者的姓名、性别和文章记录在两个不同的表中,所以必须使用组合来查询。您必须指定一个表中的记录如何匹配其他表中的记录。
注意:如果第二个表的标题中的writer列也命名为name(与mytable表中的name列相同)而不是writer,则必须用mytable.name和title.name表示,以示区别。

再比如查询文章a2的作者,出生地,出生日期:
mysql > select title,writer,Birthaddr,birth from my table,title
-->其中my table.name = title.writer,title = ' a2
+-+-+-+
| title | writer | birth addr | birth |
+-+-+-+
| a2 | abccs | China | 1977-07-07 |
+-+-+-+-+

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 在Mysql中操作多个表

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情