oracle 用sql语句管理数据库
基础sql语句
- 创建数据库 :create database database_name;
- 创建表:create table(字段名 字段类型 字段为空约束 ,字段名 字段类型 字段为空约束,,,, 主键约束primary key(字段名多个字段用逗号隔开));
常用语句解析
-
group by
- group by 的用法:group by 是分组函数 oracle 的group by 和 mysql 的group by 的执行结果是不一样的,oracle 要求更严格一些,在select 中显示的结果必须用聚合函数包裹否则就会报不是group by 语句 ,但是在mysql 中 会返回给你最小的值或者是分组后的第一个值。
- 怎么理解oracle group by 用select 查询的字段必须用聚合函数?数据分组之后就会存在一对多的关系,一行记录即有一条数据又有多条数据,所以必须要用聚合函数将多条数据转化成一条数据,才展示出来
- group by 的使用 具体看场景:
场景一:对主键分组,为什么主键还要分组?就这涉及到多表关联了,A 表的主键 是B表的外键 A 和 B 的关系是一对多的关系 ,对A表的主键进行分组 ,然后 select 后的字段都可以用min 这种聚合函数将数据查出来,并且达到想要的结果
那B 表中 被对应的多条记录怎么办 可以用wmsys.wm_concat(B.b) 函数将其转化成一条数据,数据之间用逗号隔开 1,2,3,4
场景二:当要进行分组的不是唯一的字段,可以先将分组的查询出来,再在外层包含select 语句将数据查询出来