Oracle day 03

tech2022-07-08  141

Oracle day 03

< !-- 菜鸟的学习笔记 -->

8.5数据去重

将重复的数据去除掉

​ 语法: select distinct 字段1,字段2 from 表名;

​ 例子: 去除表中重复的名字 ​ select distinct name from table;

​ 注意: distinct关键词只能放在select关键词后面。

​ 思考: 如果distinct后面跟了多个列名,那么如何去重?

​ 只有当多个列名都相同的情况下,才会被去除。

8.6数据排序

把查询出来的数据,进行展示

注意: 是先查询出来之后才能子排序展示。且排序不改变变表里面的数据。

语法:

​ select col_name,… from tb_name

​ order by col_name [asc|desc],…

​ 1.排序使用order by子句,asc升序,desc降序 默认升序

​ 2.该子句支队查询记录显示调整,并不改变查询结果,所以执行权最低,即最后执行

例子: 查询员工的工资和name,对工资进行升序排序

​ select salary,name from tables

​ order by salary asc;

​ order by后面还可以跟数字,表示使用select后面的第几个列进行排序。

null值排序规则(排序是无限大)

​ 升序排列,默认情况下,null值排后面

​ 降序排序,默认情况下,null值排前面

8.7限制查询

限制查询指的是根据一些特定的条件对数据进行筛选。

​ 语法:

​ select col_name,… from tb_name

​ where col_name 比较操作符表达式

​ 逻辑操作符(and|or)

​ col_name 比较操作表达式;

​ 比较符:

​ = > < >= <=

​ 不等于:三个都表示不等于的意思

​ != <> ^=

​ 例子: 查看员工工资小于1000的员工id和名字

​ select id,name from tables

​ where salary < 1000;

​ 逻辑比较符

​ between…and…

​ between x and y:在什么范围之内[x,y]

8.5数据去重

将重复的数据去除掉

​ 语法: select distinct 字段1,字段2 from 表名;

​ 注意: distinct关键词只能放在select关键词后面。

​ 思考: 如果distinct后面跟了多个列名,那么如何去重?

​ 只有当多个列名都相同的情况下,才会被去除。

8.6数据排序

​ 把查询出来的数据,进行展示

注意: 是先查询出来之后才能子排序展示。且排序不改变变表里面的数据。

语法:

​ select col_name,… from tb_name

​ order by col_name [asc|desc],…

​ 1.排序使用order by子句,asc升序,desc降序 默认升序

​ 2.该子句支队查询记录显示调整,并不改变查询结果,所以执行权最低,即最后执行

例子: 查询员工的工资和name,对工资进行升序排序

​ select salary,name from tables

​ order by salary asc;

​ order by后面还可以跟数字,表示使用select后面的第几个列进行排序。

null值排序规则(排序是无限大)

​ 升序排列,默认情况下,null值排后面

​ 降序排序,默认情况下,null值排前面

8.7限制查询

限制查询指的是根据一些特定的条件对数据进行筛选。

​ 语法:

​ select col_name,… from tb_name

​ where col_name 比较操作符表达式

​ 逻辑操作符(and|or)

​ col_name 比较操作表达式;

​ 比较符:

​ = > < >= <=

​ 不等于:三个都表示不等于的意思

​ != <> ^=

​ 例子: 查看员工工资小于1000的员工id和名字

​ select id,name from tables

​ where salary < 1000;

​ 逻辑比较符

​ between…and…

​ between x and y:在什么范围之内[x,y]

​ 例子: 查看员工工资在700到1500之间的员工id和名字

​ select id,name from tables where salary between 700 and 1500;

IN(list)

​ 在一个列表中筛选

​ 例子: 查看员工工号1,3,5,7,9员工的工资

​ select id,name from tables

​ where id in(1,3,5,7,9);

LIKE

​ 即值不是很精确的时候使用

​ 通配符 即可以代替任何内容的符号

​ %:通配0到多个字符

​ _:当且仅当通配一个字符

​ 转义字符:

​ 默认为\,可以指定 指定的时候要用escape符号知名即可,转义字符只能转义后面的一个字符

​ 例子: 查看员工的名字以C字母开头的员工的id,工资

​ select id,salary,name from tables

​ where name like ‘C%’;

​ 例子: 查看员工名字长度不小于5,且第四个字母为n的员工id和工资

​ select id,salary,name from tables

​ where name like ‘__n%’;

​ 例子: 查看员工名字中包含一个_员工的id和工资

​ select id,salary from tables

​ where name like ‘%_%’ escape ‘’;

is null

​ 对null值操作特定义的操作符,不能使用=

逻辑操作符

​ and:且逻辑

​ or:或逻辑

注意: and优先级比or优先级要高

not: 非逻辑

​ NOT BETWEEN AND

​ NOT IN

​ NOT LIKE

​ IS NOT NULL 查看员工工资在700到1500之间的员工id和名字

​ select id,name from tables where salary between 700 and 1500;

IN(list)

​ 在一个列表中筛选

​ 例子: 查看员工工号1,3,5,7,9员工的工资

​ select id,name from tables

​ where id in(1,3,5,7,9);

LIKE

​ 即值不是很精确的时候使用

​ 通配符 即可以代替任何内容的符号

​ %:通配0到多个字符

​ _:当且仅当通配一个字符

​ 转义字符:

​ 默认为\,可以指定 指定的时候要用escape符号知名即可,转义字符只能转义后面的一个字符

​ 例子: 查看员工的名字以C字母开头的员工的id,工资

​ select id,salary,name from tables

​ where name like ‘C%’;

​ 例子: 查看员工名字长度不小于5,且第四个字母为n的员工id和工资

​ select id,salary,name from tables

​ where name like ‘__n%’;

​ 例子: 查看员工名字中包含一个_员工的id和工资

​ select id,salary from tables

​ where name like ‘% \ _%’ escape ’ \ ';

is null

​ 对null值操作特定义的操作符,不能使用=

逻辑操作符

​ and:且逻辑

​ or:或逻辑

注意: and优先级比or优先级要高

not: 非逻辑

​ NOT BETWEEN AND

​ NOT IN

​ NOT LIKE

​ IS NOT NULL

最新回复(0)