[Oracle]基本操作-2
继Oracle基本操作-1该篇文章的后续与补充!
select语句
1.查询全部列
select * from a_table[caption id="" align="aligncenter" width="296"] a_table[/caption]
2.查询特定的列
select b_id,b_name,a_id from b_table[caption id="" align="aligncenter" width="224"] b_table[/caption]
3.别名
在查询中,给查询结果的列起一个自定义名称。select a_money as "月薪" from a_table
4.算术运算符
运算符 | 描述 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
select a_id,a_name,a_age,a_money*12 as "年薪" from a_table
5.字符串连接
能将指定的列进行连接。select a_id,a_name ||'-'|| a_money as "姓名与工资" from a_table
6.消除重复行
先查询下a_table表select a_money from a_table
能看到有相同的数额,现在使用关键字distinct
select distinct a_money from a_table
7.where限定
我们可以使用where进行过滤。1).查询工资大于4000的所有信息。
select * from a_table where a_money>4000
2).查询姓名为“wangwu”的信息。
select * from a_table where a_name='wangwu'
除了常用的>、<、>=等等这类比较运算符还包括下列的:
操作符 | 含义 |
BETWEEN ...AND... | 在两个值之间 (包含边界) |
IN(set) | 等于值列表中的一个 |
LIKE | 模糊查询 |
IS NULL | 空值 |
3).查询年龄在20-28之间的信息。
select * from a_table where a_age between 20 and 28
4).查询金额是3400与3500。
select * from a_table where a_money in(3400,3500)
5).模糊查询姓名以w开头的人的信息。
select * from a_table where a_name like 'w%'
6).模糊查询倒数第二个字母的姓名为o的人的信息。
select * from a_table where a_name like '%o_'
7).查询姓名中包含0的所有人的信息。
select * from a_table where a_name like '%o%'
8).查询是否为空和不为空。
select * from a_table where a_name is null select * from a_table where a_name is not null
8.逻辑运算
操作符 | 含义 |
AND | 逻辑并 |
OR | 逻辑或 |
NOT | 逻辑否 |
1).查询年龄大于20并且工资大于4000的人。
select * from a_table where a_age > 20 and a_money > 4000
2).查询年龄为20或者工资大于4000的人。
select * from a_table where a_age = 20 or a_money > 4000
9.排序查询
使用 ORDER BY 子句排序 – ASC: 升序 – DESC: 降序 • ORDER BY 子句在SELECT语句的结尾
select * from a_table order by a_money desc
10.等值连接
可以从多张表中取出数据,但是表中必须要有所关联。select * from b_table b,a_table a where b.a_id=a.a_id
11.子查询
查询谁的工资高于wangwu。select a_name from a_table where a_money>( select a_money from a_table where a_name='wangwu' )
分组函数
1.统计函数
• AVG • COUNT • MAX • MIN • STDDEV • SUM
select max(a_money),min(a_money),avg(a_money),sum(a_money) from a_table
查询年龄大于20的人数。( COUNT(DISTINCT expr) 返回 expr非空且不重复的记录总数 )
select count(*) from a_table where a_age>20
2.分组查询
select a_id,avg(a_money) from a_table group by a_id
3.过滤分组
havingselect a_id,max(a_money) from a_table group by a_id having max(a_money) >= 3500
视图
1.创建视图
create view a_view as( select a.a_id,a.a_name,a.a_age,a.a_money from a_table a )
2.查询视图
select * from a_view
3.删除视图
drop view a_view
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 xiaoxin1218@qq.com
文章标题:[Oracle]基本操作-2
文章字数:773
本文作者:周信
发布时间:2019-10-09, 23:02:51
最后更新:2023-05-03, 10:25:35
原始链接:http://zx21.xyz/2019/10/09/Oracle-基本操作-2/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。