【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;
时间: 2024-10-05 12:13:02