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;  

    

    

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值