MySQL中多表操作和批处理详细介绍

   多表操作

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

  1、查看第一个表mytable的内容:

  mysql> select * from mytable;

  +----------+------+------------+-----------+

  | name | sex | birth | birthaddr |

  +----------+------+------------+-----------+

  | abccs | f | 1977-07-07 | china |

  | mary | f | 1978-12-12 | usa |

  | tom | m | 1970-09-02 | usa |

  +----------+------+------------+-----------+

  2、创建第二个表title(包括作者、文章标题、发表日期):

  mysql> create table title(writer varchar(20) not null,

  -> title varchar(40) not null,

  -> senddate date);

  向该表中填加记录,最后表的内容如下:

  mysql>

  select * from title;

  +--------+-------+------------+

  | writer | title | senddate |

  +--------+-------+------------+

  | abccs | a1 | 2000-01-23 |

  | mary | b1 | 1998-03-21 |

  | abccs | a2 | 2000-12-04 |

  | tom | c1 | 1992-05-16 |

  | tom | c2 | 1999-12-12 |

  +--------+-------+------------+

  5 rows in set (0.00sec)

  3、多表查询

  现在我们有了两个表: mytable 和 title。利用这两个表我们可以进行组合查询: 例如我们要查询作者abccs的姓名、性别、文章:

  mysql> SELECT name,sex,title FROM mytable,title

  -> WHERE name=writer AND name=′abccs′;

  +-------+------+-------+

  | name | sex | title |

  +-------+------+-------+

  | abccs | f | a1 |

  | abccs | f | a2 |

  +-------+------+-------+

  上面例子中,由于作者姓名、性别、文章记录在两个不同表内,因此必须使用组合来进行查询。必须要指定一个表中的记录如何与其它表中的记录进行匹配。

  注意:如果第二个表title中的writer列也取名为name(与mytable表中的name列相同)而不是writer时,就必须用mytable.name和title.name表示,以示区别。

时间: 2024-10-31 16:15:07

MySQL中多表操作和批处理详细介绍的相关文章

mysql中创建表、添加、修改介绍

建表:就是声明列的过程  代码如下 复制代码  create table 表名(   列名1 列2类型 列1参数,   列名2 列2类型 列2参数,   --   列n的声明 列n参数  )engine myisam/innodb/bdb charset utf8/gbk/latin1-; 修改表的语法:MySQL ALTER语法中ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...] 一张表创建完成后,有可能要增加或删除或修改列

Mysql中的count()与sum()区别详细介绍_Mysql

首先创建个表说明问题 复制代码 代码如下: CREATE TABLE `result` ( `name` varchar(20) default NULL, `subject` varchar(20) default NULL, `score` tinyint(4) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 插入一些数据, 复制代码 代码如下: insert into result values ('张三','数学',90), ('张三'

Swift中的指针操作和使用详细介绍_Swift

Apple期望在Swift中指针能够尽量减少登场几率,因此在Swift中指针被映射为了一个泛型类型,并且还比较抽象.这在一定程度上造成了在Swift中指针使用的困难,特别是对那些并不熟悉指针,也没有多少指针操作经验的开发者(包括我自己也是)来说,在Swift中使用指针确实是一个挑战.在这篇文章里,我希望能从最基本的使用开始,总结一下在Swift中使用指针的一些常见方式和场景.这篇文章假定你至少知道指针是什么,如果对指针本身的概念不太清楚的话,可以先看看这篇五分钟C指针教程(或者它的中文版本),应

浅谈mysql中多表不关联查询的实现方法_Mysql

大家在使用MySQL查询时正常是直接一个表的查询,要不然也就是多表的关联查询,使用到了左联结(left join).右联结(right join).内联结(inner join).外联结(outer join).这种都是两个表之间有一定关联,也就是我们常常说的有一个外键对应关系,可以使用到 a.id = b.aId这种语句去写的关系了.这种是大家常常使用的,可是有时候我们会需要去同时查询两个或者是多个表的时候,这些表又是没有互相关联的,比如要查user表和user_history表中的某一些数据

MySQL中管理表和索引的相关语句

1. 创建表 MySQL中创建表是通过create table语句实现的,语法这里就不介绍了,非常复杂,可以去官网上查询,所幸的是, 我们并不需要记住所有的选项,因为大部分都采用默认即可,下面介绍几个比较常用的选项. 1)指定存储引擎 默认的存储引擎由default-storage-engine指定,如果没有指定,则为MyISAM,如果建表时,你不想使用默认的存储 引擎,可以通过如下语句实现: create table table_name ( ... ) engine=engine_name;

数据-Mysql中设置表的外键的时候报错

问题描述 Mysql中设置表的外键的时候报错 这个是原句子: ALTER TABLE emp ADD CONSTRAINT id_fk FOREIGN KEY (deptno) REFERENCES Dept (deptno); 就是想把emp表的deptno设置为外键,该列的数据引用Dept表的主键列deptno的数据.然后,报错信息如下: Cannot add or update a child row: a foreign key constraint fails (emp.#sql-1a

.mer文件怎么生成mysql中的表

问题描述 .mer文件怎么生成mysql中的表 小弟在myeclipse中导入了一个别人的项目,其中有一个****.mer的文件,里面是创建表的一些语句,不过有点儿类似与html,都带有标签.我是编程新手,只知道sql文件可以生成表,对这个文件怎么生成数据库,不知道,哪位大神愿意帮忙解释下

JavaScript中property和attribute的区别详细介绍

 这篇文章主要介绍了JavaScript中property和attribute的区别详细介绍,本文总结了定义.相同这处.不同之处.浏览器兼容性上的差别等内容,并建议优先选择property,需要的朋友可以参考下     1. 定义 Property:属性,所有的HTML元素都由HTMLElement类型表示,HTMLElement类型直接继承自Element并添加了一些属性,添加的这些属性分别对应于每个HTML元素都有下面的这5个标准特性: id,title,lang,dir,className

MySQL中修改表结构时需要注意的一些地方_Mysql

MySql 在修改表结构的时候可能会中断产品的正常运行影响用户体验,甚至更坏的结果,丢失数据.不是所有的数据库管理员.程序员.系统管理员都非常了解Mysql能避免这种情况.DBA会经常碰到这种生产中断的情况,当升级脚本修改了应用层和数据库层,或者缺乏经验的管理员.开发在不是很了解Mysql内部工作机制的情况下修改了规范文件. 真相是: 直接修改表结构的过程中会锁表(在5.6版本之前) 在线的数据定义语言在5.6版本不总是在线的而且也会锁表 就算使用Percona工具包(在线修改定义文件)也会有若