Bootstrap

asp多表查询并显示_Oracle查询语句

5b30c44dfc1926e2f576b50648e973cc.png

java030

转换函数

1)to_number

将字符串转换为数字。

例如:select to_number('¥123,123,123.00', 'L999,999,999.00')+1 from dual;

2)to_date

将字符串转换为日期

例如:select to_date('2022-12-12 23:20:20', 'YYYY-MM-DD HH24:MI:SS') from dual;

3)to_char

将数字或日期转换为字符串

select to_char(1231231231, 'L999,999,999,999.99') from dual;

多表查询:

当查询的数据并不是来源一个表时, 需要使用多表链接操作完成查询。根据不同表中的数据之间的关系查询相关联的数据。

通用函数

1)nvl

用来处理空值, 如果某个字段为空, 则使用对应的数据进行替换

注意: 两者的数据类型必须一致。

例:select ename, sal, comm, sal+nvl(comm, 0) total from emp;

2)nvl2

有三个参数, 如果第一个参数不为空, 则使用第二个参数, 如果为空, 则使用第三个参数。

例:select ename, sal, comm, nvl2(comm, sal+comm, sal) total from emp;

3)decode

类似于switch...case...,

组函数

组函数也称为聚合函数,用来对行的集合进行操作,对每组给出一个结果,这些集合可能是整个表或者是表分成的组。

1.组函数与单行函数的区别:

1)单行函数对查询到的每个结果集做处理,而组函数只对分组数据做处理。

2)单行函数对每个结果集返回一个结果,而组函数对每个分组返回一个结果。

2.组函数的分类

1) AVG平均值

2) COUNT 计数

select avg(sal) from emp;

3) MAX最大值

select max(sal) from emp;

4) MIN最小值

select min(sal) from emp;

5) SUM求和

select sum(sal) from emp;

3.使用组函数的原则

1)函数函数的数据类型可以是CHAR, VARCHAR2, NUMBER或DATE

2)所有组函数忽略空值,可以使用NVL, NVL2或COALESCE函数

4.AVG对分组数据做平均值运算(参数只能是数字类型)

SUM对分组数据求和(参数只能是数字类型)

示例: select avg(salary),sum(salary) from employees;

5.MIN求分组中最小数据(参数可以是字符、数字或日期)

MAX求分组中最大数据(参数可以是字符、数字或日期)

示例: select min(salary),max(salary) from employees;

group by

进行分组排序查询, group by子句可以将数据分为若干个组。

带where的分组排序查询:group by子句要写到where子句的后面。

带having的分组查询:

>where子句中不允许使用分组函数, 用于分组前过滤。

> having用于过滤分组后的条件。

select语句的执行顺序:from-->where-->group by-->select-->having-->order by

cross join(交叉连接)

交叉连接会产生一个笛卡尔积

natural join(自然连接)

natural join用于针对多张表的同名字段进行等值连接

特点:

a) 在自然连接时, 自动进行所有同名列的等值连接, 不需要写连接的条件

b) 同名列只显示一列, 而且在使用时, 不能加表前缀查询所有员工的姓名, 部门编号和部门名称。

多表连接查询

当目标数据分布在不同表中,可以通过多表连接操作来完成查询。根据不同表中的数据之间的关系查询相关联的数据。

多表查询的语法:

select 表名1.列名1,表名2.列名2... from表名1,表名2.. where 子语句。

多表连接时需要注意的原则:

1)在where子句中至少包含一个有效的连接条件。

2)为了连接n个表在一起,至少需要n-1个连接条件。

1)等值连接

通过等号来判断条件中的数据是否匹配。

--1.查询员工的编号,姓名,薪水和所在部门名称

SQL99连接查询_外连接

外连接:

不仅能显示满足连接条件的数据以外, 还能显示不满足连接条件的数据。

外连接有的分类:

1)左外连接;

左外连接(left [out] join) :两种表分别是A表和B表相关联,使用左外连接查询以”左表为主”(左边的表记录将全部展现,右边只展示与左边向关联的数据)

a)方法1: left join实现左外连接(推荐)

select e. employee_ id, e. first_ name, d. depar tment_ id, d. depar tment_ name
departments d on(e. department_ id=d. department_ id)

b)方法2: (+)结合等值连接,实现左外连接。

select 

2)右外连接;

可以显示右表中不满足连接条件的数据和左表中满足条件的数据。

a)方法1: right join实现右外连接(推荐)

select 

b)方法2: (+)结合等值连接实现右外连接

select 

3)全外连接。

full [outer] join, 表示全外连接, 可以显示左右两表中不满足连接条件的数据。

SQL99_自连接

发生在同一个表格的连接。

注意:

自连接中要注意始终包含一个有效的连接条件。

SQL99_cross join_natural join

1)交叉连接:导致两个表的交叉乘积,该连接和两个表之间的笛卡尔乘积是一样的。

2)自然连接:natural join用于针对多张表的同名字段进行等值连接。

笛卡尔积:

一个集合中的每一个成员都与另一个集合中的任意一个成员有关联。

笛卡尔乘积(总记录数=A表的总记录*B表的总记录数),出现大量的冗余数据(无用的数据)。

SQL99_using_on

1)using在查询语句中的作用:

当有多个列匹配时,用using子句匹配唯一的列。

2)on子句与内连接结合使用。

;