sql连接语句知讲解


  一、关于外连接

  内连接中,查询结果中所显示的仅是符合查询条件的行,而采用外连接时,它不仅包含符合连接条件的行,而且还包括左表或右表连接中的所有行.

  外连接操作符有*=和=*两种,采用*=连接时,查询结果中将包含第一个表中的所有行,而采用=*连接时,查询结果将包含=*操作符后面表中所有数据行.

  在进行一些统计时,需要使用外连接.例如,假定有两个表,一个表(PERSON)包含人员的姓名(NAME)及其标识(ID),另一个表(DESC)包含人员标识(ID)及其受奖惩情况(MEMO).在统计单位的所有人员及其奖惩情况时,使用外连接书写查询语句就特别简单,即:  

  SELECT name,memo

  FROM person,desc

  WHERE person.id*=desc.id

  二、等值连接和自然连接

  对于等值连接和自然连接,在WHERE子句中使用等于比较运算符,二者的区别在于等值连接的查询结果中列出所连接表中的所有列,包括它们之间的重复列.而自然连接的选择列表中删除被连接表间的重复列.

  例:

  (3)自连接

  自连接中,使用同一个表的相同列进行比较,这时,对于同一个表应给出不同的别名.

  例:使用自连接列出合着的图书标识及其作者姓名

  (4)不等连接

  不等连接使用除等于运算符以外的其他比较运算符,这些运算符包括>,>=,<=,<,!>,!<和<>等.