1>2个数值处理函数 2>5个字符处理函数 3>2个类型转换函数 4>5个分组函数 5>1个空值转换函数 6>常见数据库对象 7>内连接与外连接
1、数值处理函数: round(参数1,参数2):进行四舍五入,参数1,需要处理的数据(原数据),参数2,截取位数;参数2>0,向右,<0,向左,=0,小数点位置 trunc(参数1,参数2):直接截取,参数1,需要处理的数据(原数据),参数2,截取位数;参数2>0,向左,=0,小数点位置 select count(*),round(avg(sal),0),deptno from emp group by deptno; select count(*),trunc(avg(sal),-2),deptno from emp group by deptno;
2、字符处理函数: lower(参数):将所有字母都变成小写; upper(参数):将字母都变成大写; initcap(参数):首字母大写,其余小写 length(参数):求字符串长度 substr(参数1,参数2,参数3):取子串 ,参数1,被截取的字符串;参数2,从哪里开始截取;参数3,截取几位,截取的位数;
参数:可以是字符串,也可以字符串类型的列名,普通字符串 例如:查询员工的姓名和岗位,姓名要小写; select ename,lower(ename),job from emp; 普通字符串:‘HELlo wOrLd!‘
select lower(‘HELlo wOrLd!‘),upper(‘HELlo wOrLd!‘),initcap(‘HELlo wOrLd!‘),length(‘HELlo wOrLd!‘),substr(‘HELlo wOrLd!‘,2,6) from dual; 虚表:dual 作用:处理跟查询表数据,表结构没有直接关系查询操作; select 456*789 from dual; select sysdate from dual;
3、转换函数:to_char,to_date to_char(参数1,参数2):主要是将日期类型的数据转换成字符串类型的数据,还可以规范日期格式; 参数1,是日期类型的列名或者数据;参数2 是格式,常用的格式:“yyyy-mm-dd hh24:mi:ss” 用法:to_char(参数1,参数2):参数1,待转换列名;参数2:转换成格式 用途一:单纯的规范日期数据的格式 select ename,hiredate,to_char(hiredate,‘yyyy-mm-dd hh24:mi:ss‘),job from emp; 用途二:用在查询条件中,根据日期类型的列来查询; 例如:查询在1981年10月1日之前入职的员工信息? select * from emp where to_char(hiredate,‘yyyy-mm-dd‘)<‘1981-10-01‘; to_date(参数1,参数2):主要是将字符串类型的日期数据转换成日期类型的;主要用在插入insert语句中 用法:to_date(参数1,参数2):参数1,待转换的字符串;参数2:转换成格式
例如:插入入职日期是1999-10-10的员工; insert into emp values(2222,‘sunsun‘,‘CLERK‘,7902,‘1999-10-10‘,2000,100,10); --》报错,格式不匹配 insert into emp values(2223,to_date(‘1999-10-10‘,‘yyyy-mm-dd‘),10); select * from emp where ename=‘sunsun‘; 4、分组函数 count(参数):统计查询语句返回的行数; max(参数):最大 min(参数):最小 avg(参数):平均值 sum(参数):求和
注意:参数一般是列名
5、空值转换函数 nvl(参数1,参数2) 功能:转换空值为一个特定的值 参数1:需要转换到列名,参数2:需要指定的特定的值
6、常见的数据库对象
①表(table):由行和列组成的二维表格;表格中的行也叫记录,列也叫属性; ②视图(view):用来简化查询语句的,可以让一个复杂的查询语句变得简单; 例如: create view v0726 as select cname,chour,tname from course where cid in (select cid from score where sid=(select sid from student where sname=‘王五‘)); select * from v0726; 可见创建视图的语法create view 视图名 as + select 语句;
创建备份表:create table 表名 as select 语句 create table empbf as select * from emp; 赋系统权限grant 权限1,权限2... to 用户名; 例如: 普通用户没有创建view的权限,需要sys授权,命令:grant create view to scott; create session ----登录数据库,创建会话; create table ----创建表的权限 create view ---创建视图的权限 create sequence ---创建序列的权限 create procedure ---创建存储过程的权限 create synonym ----创建同义词的权限 create tablespace ---创建表空间的权限
③索引(index):提高查询效率;如果有索引,可以查询的快一些,主要用在表中数据量很大的情况才有效果; select * from student where sphone=18183929386 ; 创建索引语法:create index 索引名 on 表名(列名);
注意:索引不宜多建,索引会占用表空间,牺牲了空间换取了效率... ④存储过程:数据库里编程;数据库中写代码(procedure),别名:存过 ,过过 作用:将业务当中的业务逻辑、企业规则、公用的部分写成存储过程或者函数保存到数据库中,以便其他模块调用,简化程序开发和维护,提高效率和性能。 create [or replace] procedure 存储过程名称 (
[arg1 [IN|OUT|IN OUT]] 数据类型,
[arg2 [IN|OUT|IN OUT]] 数据类型, ... )
is|as
声明部分;
begin
执行部分;
exception
异常处理部分;
end;
7、内连接、外连接 内连接:多表联合查询的另外一种写法;表名1 inner join 表名2 on 连接条件; select * from student,department where student.did=department.did; select * from student inner join department on student.did=department.did;
注:外连接,并非主外键关系 左外连接:left outer join;先将符合条件的数据查询出来,再将左表中不符合条件的数据查询出来; 右外连接:right outer join;先将符合条件的数据查询出来,再将右表中不符合条件的数据查询出来; 全外连接:full outer join;先将符号条件的数据查询出来,再将左表不符合查询出来,再将右表不符合查询出来;
8、删除主键约束: alter table 表名 drop constraint 约束名; 查找主键约束名语句: select owner,constraint_name,column_name from user_cons_columns where table_name=‘SALGRADE‘;
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|