SQL文(UNION)

    【2014/10/14 0:20】

    数据库软件到期了,但是又想记忆一下UNION ~ORDER BY的用法。

    连接数据库

 start mysql -u root (没有设置密码)

    查看数据库中的数据库 

show databases;

    选择test数据库 

use test;

   

 创建一个数据库(这样写好看点)

String SQl="CREATE TABLE milk("+
					" ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,"
					+" NAME VARCHAR(30) NOT NULL ,"
					+" NUMBER INT DEFAULT 0 ,"
					+" PRICE DOUBLE(6,2) DEFAULT 0.00 ,"
					+" ID_SHOP INT NOT NULL"
					+ ")";

显示数据表结构

describe milk


向数据库中插入数据:

insert into milk values(1,'mengniu',20,3.00,12); insert into milk values (2, 'yili',30,30.1,12);insert into milk values(3,'sanyuan',20,1.22,13)

显示数据库中的数据

select * from milk;




使用union语句进行查询

select id from milk where number=20 union select id from milk where number=30


使用order by 进行排序

    错误语句

select id from milk where number=20 order by id desc union select id from milk where number=30
    提示信息:



    正确语句:

select id from milk where number=20  union select id from milk where number=30 order by id desc


  1. 能在union的最后一个子查询中使用order by,而这个order by是针对的是整个union后的结果集。

    2.  所union的各个子查询要有相同数量的列,且对应位置的列必须具有相同的数据类型,但列的名字可以不同。


    下面的例子从其他地方借鉴:

    II  使用列序号代替实际列名, 序号从1开始,如果指定的序号不在允许的范围内,系统会报出一个异常。这里也可以使用ORDER BY supplier_name进行

select supplier_id, supplier_name   
			from suppliers   
			UNION  
			select company_id, company_name   
			from companies   
			ORDER BY 2;  

    

    III 为unoin的各个子查询使用相同的列名

select supplier_id as id, supplier_name as name  
	from suppliers   
	UNION  
	select company_id as id, company_name as name  
	from companies   
	ORDER BY name;  

    

    

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。