6、oracle之查询

2018-08-24  本文已影响0人  如果不是废物谁又愿混吃等死

设置查询输出的格式:

修改查询字段的名字:

col  col_name heading col_name_new;

修改字段的输出精度:

字符:col  col_name  format a10

数字:col  col_name   format  $9999.9(使用9作为通配格式)

清除格式:

col  col_name clear;

.查询所有字段:

select * from table_name;

2.查询指定字段:按顺序显示出来

select column1, ...  from table_name;

给字段设置别名:

select 字段名 as(可省略) 别名, ...from 表名;

去掉表中重复的数据:

select distinct 字段名 as(可省略) 别名, ...from 表名;

运算符和表达式

算数运算符:+、-、*、/

比较运算符:>、>=、<、<=、=、<>(<>是不等于)

逻辑运算符:and、or、not

在select语句中使用运算符

在SELECT 语句中使用算术运算符:

例如:SELECT id,username,salary+200 FROM users;(给公司里面的每一个人的工资都增加了200块钱。)

注:使用此类运算符的时候,是更改了显示的结果,并不是更改了表的数据,若想更改表中的数据,则需使用update语句。

在SELECT 语句中使用比较运算符:

例如:SELECT username FROM user WHERE SALARY>800 AND SALARY <>1800.5;

查询公司员工工资大于800,不等于1800.5 的姓名。

比较运算符级别高于逻辑运算符

逻辑预算符 not> and >or

模糊查询:LIKE

通配符:_(只能代表一个字符)

            %(可代替0到多个任意字符)

例:select * from users where username like 'a%';查询用户名以a开头的用户信息

select * from users where username like '_a%';;查询用户名第二个字符是a的用户信息

select * from users where username like '%a%';;查询用户名含有a的用户信息

范围查询:

BETWEEN...AND

例如:查询800到2000之间的员工工资

          SELECT * FROM users WHERE salary>=800 AND salary<=2000

或者:SELECT * FROM users WHERE salary (NOT)BETWEEN 800 AND 2000

IN/NOT IN

注:BETWEEN...AND...,查询的是一个闭合区间的结果,包含头也包含尾。

例如:查询用户名是aaa或者是bbb的用户信息

           SELECT * FROM users WHERE username (NOT) IN('aaa',''bbb);

对查询结果进行排序:

SELECT ... FROM ... [WHERE...]

ORDER BY (order by 放在最后)column1 (字段的名字)DESC(降序排列)/ASC(升序排列),column2 DESC, column3 ASC,...

例如按照ID 从大到小排序:

SELECT * FROM users ORDER BY ID DESC;

两种通过用户名查出部门的方法:

CASE column_name  WHEN  value1 THEN result1,... ELSE result]  (当前面的结果都不满足条件的时候,若想给出一个值,就添加上ELSE result)END

SQL> select username,case username when 'aaa' then '计算机部门'

  2  when 'bbb' then '市场部门' else '其他部门' end as 部门

  3  from users;

USERNAME            部门

-------------------- ----------

aaa                  计算机部门

bbb                  市场部门

ccccc                其他部门

aaa                  计算机部门

CASE WHEN column_name=value1 THEN result1,...[ELSE result] END

SQL> select username, case when username='aaa' then '计算机部门'

  2  when username='bbb' then '市场部门' else '其他部门' end as 部门

  3  from users;

USERNAME            部门

-------------------- ----------

aaa                  计算机部门

bbb                  市场部门

ccccc                其他部门

aaa                  计算机部门

decode函数的应用:

SQL> select username,decode(username,'aaa','计算机部门','bbb','市场部门','其他'

)as 部门

  2  from users;

USERNAME            部门

-------------------- ----------

aaa                  计算机部门

bbb                  市场部门

ccccc                其他

aaa                  计算机部门

上一篇下一篇

猜你喜欢

热点阅读