好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SQL中union运算操作的理解

column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2

在学习过程中,我产生了一个疑问,如果两个表的属性名称不同会出现什么情况呢?

直接模拟了一个例子,构建代码如下:

 create   table   employee
(empname       char ( 6  ),
numchildren      int  
)

  create   table   dependent
(depname       char ( 6  ),
age      int  
)

  insert   into  employee  values ( ‘  haohao  ‘ , 2  );
  insert   into  employee  values ( ‘  haohao  ‘ , 4  );
  insert   into  employee  values ( ‘  fgsd  ‘ , 5  );
  insert   into  employee  values ( ‘  hds  ‘ , 7  );
  insert   into  employee  values ( ‘  hauuo  ‘ , 9  );
  insert   into  employee  values ( ‘  hsao  ‘ , 4  );
  insert   into  employee  values ( ‘  hhao  ‘ , 5  );


  insert   into  dependent  values ( ‘  haohao  ‘ , 2  );
  insert   into  dependent  values ( ‘  hdgso  ‘ , 2  );
  insert   into  dependent  values ( ‘  hreo  ‘ , 2  );
  insert   into  dependent  values ( ‘  hjh  ‘ , 2  );
  insert   into  dependent  values ( ‘  haaao  ‘ , 2 );

这两个表的属性只是数据类型相同,测试效果如下:

( select    empname,numchildren
  from   employee)
  union  
(  select   depname,age
  from   dependent
) 

结果为:

"hjh ";2
"hhao ";5
"haohao";2
"hdgso ";2
"haohao";4
"fgsd ";5
"hds ";7
"hsao ";4
"haaao ";2
"hreo ";2
"hauuo ";9

可以看出,进行了合并,并且去除了重复。

后来在W3School中的SQL模块看到了对于并运算的定义:

  [请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。]

参考链接:http://HdhCmsTestw3school测试数据.cn/sql/sql_union.asp

2015-05-20

17:58:35

SQL中union运算操作的理解

标签:

查看更多关于SQL中union运算操作的理解的详细内容...

  阅读:29次

上一篇: SQL读取XML字段

下一篇:mysql 基础