05 2016 档案

摘要:1.例子:select name,salary from emp group by name,salary(正确) 使用group by时,group by后面必须包含select后面出现的所有字段名 否则会出错ORA-00979: 不是 GROUP BY 表达式;group by的使用不需要whe 阅读全文
posted @ 2016-05-18 11:48 YunMan 阅读(179) 评论(0) 推荐(0) 编辑
摘要:1.什么是PL/SQL,有什么用 Procedure Language+SQL PL/SQL是Oracle数据库特有的编程语言。 PL/SQL程序是以SQL为基础,引入了 编程语言特点,例如变量,分支判断, 循环等语法。 PL/SQL可以存储在Oracle数据中, 可以重复使用或被外界调用。 PL/ 阅读全文
posted @ 2016-05-16 13:54 YunMan 阅读(1077) 评论(0) 推荐(0) 编辑
摘要:1.编写一段PL/SQL,实现计算个人 所得税计算逻辑。(参考图例的扣除方法) 3500免征 如果超过3500,按以下阶段方式扣除 --小于1500时,税率按3%,速算扣除数0 --在1500到4500区间时,税率10%,速算扣除数105 --在4500到9000区间时,税率20%,速算扣除数555 阅读全文
posted @ 2016-05-16 13:54 YunMan 阅读(167) 评论(0) 推荐(0) 编辑
摘要:*2.PL/SQL基本语法 1)匿名块 一段不能在数据库存储的PL/SQL。 基本结构如下: DECLARE //变量的声明定义区域(可省略) BEGIN //业务处理区域 EXCEPTION //异常处理区域(可省略) END 2)注释 --单行注释内容 /* 多行注释内容 */ 3)控制台打印输 阅读全文
posted @ 2016-05-16 13:53 YunMan 阅读(201) 评论(0) 推荐(0) 编辑
摘要:5)变量 基本类型:建表时前面所学类型 复合类型:记录类型,表类型 //定义一个变量并给初值 变量名 类型 := 初值; //定义变量,初值为null 变量名 类型; DECLARE msg varchar2(20) := 'Hello'; BEGIN dbms_output.put_line(ms 阅读全文
posted @ 2016-05-16 13:52 YunMan 阅读(116) 评论(0) 推荐(0) 编辑
摘要:第3种 FOR ... in ... LOOP END LOOP; BEGIN FOR i IN 1..10 LOOP dbms_output.put_line(i); END LOOP; END; FOR循环使用要点: --FOR后面的循环变量不需要声明, 会自动定义 --FOR循环只能用于数值集 阅读全文
posted @ 2016-05-16 13:49 YunMan 阅读(4300) 评论(0) 推荐(0) 编辑
摘要:6)if判断语句 if ... then else end if; if ... then elsif ... then elsif ... then else end if; declare sex char(1) := 'M'; begin if sex='M' then dbms_output 阅读全文
posted @ 2016-05-16 13:49 YunMan 阅读(137) 评论(0) 推荐(0) 编辑
摘要:第2种 WHILE ... LOOP END LOOP; declare n number(3) :=1; begin WHILE n<=10 LOOP dbms_output.put_line(n); n:=n+1; END LOOP; end; declare str varchar2(50): 阅读全文
posted @ 2016-05-16 13:48 YunMan 阅读(521) 评论(0) 推荐(0) 编辑
摘要:8)DML语句的使用 在PL/SQL中,DML语句与前面学习的 相同。 begin --执行插入操作 insert into t001(id) values(1); --执行一个删除 delete from t001 where id>1; --执行一个更新 update t001 set id=5 阅读全文
posted @ 2016-05-16 13:47 YunMan 阅读(320) 评论(0) 推荐(0) 编辑
摘要:7)循环语句 第1种 LOOP ... END LOOP; declare n number(3) := 1; begin LOOP dbms_output.put_line(n); n := n+1; EXIT WHEN n>10; END LOOP; end; / //有一个字符串"abcdef 阅读全文
posted @ 2016-05-16 13:47 YunMan 阅读(2454) 评论(0) 推荐(0) 编辑
摘要:10)游标使用 用于执行多行记录查询. a.游标使用方法 --在declare部分定义游标 在begin部分使用游标 --open 游标 --fetch 游标 into 变量 --close 游标 b.游标使用示例 declare CURSOR c_emp_cursor IS select enam 阅读全文
posted @ 2016-05-16 13:46 YunMan 阅读(169) 评论(0) 推荐(0) 编辑
摘要:9)DQL查询语句使用 SELECT语句在PL/SQL中使用,必须 采用下面用法: select id INTO 变量 from t001 where id=5; 将记录字段值取出,然后给变量赋值。 提示:select适用于有且只有一行记录 返回的情况。如果是多行查询需要使用 游标技术访问。 dec 阅读全文
posted @ 2016-05-16 13:46 YunMan 阅读(278) 评论(0) 推荐(0) 编辑
摘要:11)变量定义方法 //定义一个v_name变量, //类型大小与EMP表ENAME字段一致 v_name emp.ename%TYPE; //定义一个v_emp变量,是记录类型 //可以存储一行记录信息 v_emp emp%ROWTYPE; declare v_emp emp%ROWTYPE;-- 阅读全文
posted @ 2016-05-16 13:45 YunMan 阅读(393) 评论(0) 推荐(0) 编辑
摘要://动态编译:在程序执行过程中, 将字符串格式的编译成SQL执行指令。 begin execute immediate 'drop table p001'; execute immediate 'create table p001(id number(3))'; end; begin execute 阅读全文
posted @ 2016-05-16 13:44 YunMan 阅读(115) 评论(0) 推荐(0) 编辑
摘要:2.函数 Oracle提供了一些内置函数,例如 字符串处理,日期处理等。开发者也 可以采用PL/SQL自定义函数。 create or replace function 函数名 (参数名 类型...) return 返回类型 IS --变量定义 begin --主处理区 exception --异常 阅读全文
posted @ 2016-05-16 13:43 YunMan 阅读(128) 评论(0) 推荐(0) 编辑
摘要:3.过程 过程可以封装对数据表增删改查操作。 需要对表增删改操作时,需要使用 过程(存储过程)。 create or replace procedure 过程名 (参数名 类型) is --变量定义 begin --主处理 exception --异常处理 end; 案例:编写一个存储过程,按给定员 阅读全文
posted @ 2016-05-16 13:42 YunMan 阅读(146) 评论(0) 推荐(0) 编辑
摘要:触发器 触发器不用显式调用,是由一些 数据库操作自动触发。例如insert, update,delete等动作触发,也可以 由登录或登出等事件触发。 触发器分类: *a.DML触发器 由DML语句操作触发.DML触发器 又分为语句级触发器和行级触发器。 语句级:对表执行insert,delete, 阅读全文
posted @ 2016-05-16 13:41 YunMan 阅读(138) 评论(0) 推荐(0) 编辑
摘要:rollup(),cube(),grouping sets() 上面这几个函数,是对group by分组功能做的功能扩展。 rollup(),cube(),grouping sets() 上面这几个函数,是对group by分组功能做的功能扩展。 a.rollup() 功能:在原结果基础上追加一行总 阅读全文
posted @ 2016-05-16 13:40 YunMan 阅读(468) 评论(0) 推荐(0) 编辑
摘要:decode(字段或计算表达式, 条件值1,结果值1, 条件值2,结果值2[,默认值] ) if(字段或计算表达式 == 条件值1){ return 结果值1; }else if(字段或计算表达式 == 条件值2){ return 结果值2; }else{ return 默认值; } //将查询的s 阅读全文
posted @ 2016-05-16 11:48 YunMan 阅读(151) 评论(0) 推荐(0) 编辑
摘要:sign函数介绍(补充) sign(n):判断n>0返回1;n=0返回0;n<0返回-1. select sign(10),sign(0),sign(-2) from dual; select ename,sign(sal-2000) from emp; 阅读全文
posted @ 2016-05-16 11:47 YunMan 阅读(156) 评论(0) 推荐(0) 编辑
摘要:case函数 (适合区间,>,<判断) case when 判断表达式 then when 判断表达式 then ..... end select deptno,count(*) total, sum(case when sal>=2000 then 1 end) great, sum(case w 阅读全文
posted @ 2016-05-16 11:46 YunMan 阅读(177) 评论(0) 推荐(0) 编辑
摘要:*3.分页查询 不同数据库分页查询方法不同,Oracle采用rownum列实现 分页查询;而MySQL采用的是limit实现。 1)rownum列 rownum列是Oracle自动添加的。默认是隐藏的, 一般被称为伪列。该列值记录的是记录的行编号。 在建表或执行一个select查询后,Oracle都 阅读全文
posted @ 2016-05-16 11:45 YunMan 阅读(139) 评论(0) 推荐(0) 编辑
摘要:row_number(),rank(),dense_rank() 使用格式: row_number() over(partition by 字段1 order by 字段2) 作用:按将查询结果按字段1分组,然后按字段2排序, 再调用row_number(),rank(),dense_rank()编 阅读全文
posted @ 2016-05-16 11:45 YunMan 阅读(132) 评论(0) 推荐(0) 编辑
摘要:4)自连接 关联双方的表是同一个表。 //查询员工编号,员工名,上级编号,上级名称 select e.empno,e.ename,e.mgr,e1.ename from EMP e left outer join EMP e1 on(e.mgr=e1.empno); //查询员工编号,员工名,所在部 阅读全文
posted @ 2016-05-16 11:44 YunMan 阅读(114) 评论(0) 推荐(0) 编辑
摘要:3)外连接 等值连接,需要两个表的关联字段等值才将结果返回。 如果需要将某一个表记录全部返回,即使另一个表找不到 对等字段记录,此时可以使用外连接。 *a.左外连接 使用LEFT OUTER JOIN...ON...语法 select e.ename,e.sal,e.deptno,d.dname f 阅读全文
posted @ 2016-05-16 11:43 YunMan 阅读(157) 评论(0) 推荐(0) 编辑
摘要:*2)等值连接 参与等值条件的两个字段值,相等时才作为结果返回。 select ja.id,ja.name,jb.name //3.提取显示的字段 from ja,jb //1.形成笛卡尔积结果 where ja.id=jb.id; //2.返回id相等的记录 使用[INNER] JOIN...ON 阅读全文
posted @ 2016-05-16 11:42 YunMan 阅读(332) 评论(0) 推荐(0) 编辑
摘要:(1)登录mysql mysql -uroot; (2)查看当前有哪些数据库 show databases; (3)创建一个新的数据库 比如,创建一个名称为jsd1310db的 数据库,并指定缺省的字符集为utf-8 create database jsd1310db default charact 阅读全文
posted @ 2016-05-16 11:40 YunMan 阅读(151) 评论(0) 推荐(0) 编辑
摘要:SELECT使用子查询 SELECT使用子查询,该子查询会执行多次, 次数是由记录数量决定。效率比较低,不推荐使用。 //查询部门编号,工资大于等于2000的人数, //工资小于2000的人数 select distinct deptno, (select count(*) from emp whe 阅读全文
posted @ 2016-05-16 11:39 YunMan 阅读(432) 评论(0) 推荐(0) 编辑
摘要:create table t_emp( id int primary key auto_increment, name varchar(50), salary double, age int )type=innodb; 说明: type=innodb,让该表支持事务。 auto_increment: 阅读全文
posted @ 2016-05-16 11:39 YunMan 阅读(147) 评论(0) 推荐(0) 编辑
摘要:HAVING使用子查询 //查询各部门平均工资,显示平均工资大于 //公司整体平均工资的记录 select deptno,avg(sal) from emp group by deptno having avg(sal)>(select avg(sal) from emp); 阅读全文
posted @ 2016-05-16 11:38 YunMan 阅读(887) 评论(0) 推荐(0) 编辑
摘要:FROM使用子查询 子查询结果充当一个临时表。 //子查询形成的临时表字段为NO,NAME,SAL select no,name from( select empno no,ename name,sal from emp ); //子查询形成的临时表字段为DEPTNO,AVG select dept 阅读全文
posted @ 2016-05-16 11:37 YunMan 阅读(845) 评论(0) 推荐(0) 编辑
摘要:b.多行子查询(适用于in,any,all条件) //查询与SCOTT和MARTIN在同一个部门的同事的编号和名称 select empno,ename from emp where deptno in ( select deptno from emp where ename in ('SCOTT' 阅读全文
posted @ 2016-05-16 11:36 YunMan 阅读(767) 评论(0) 推荐(1) 编辑
摘要:a.单行子查询(适用于>,<,=,>=,<=等条件) //查询工资最高的员工编号和员工名 select empno,ename from emp where sal=(select max(sal) from emp); //查询最新入职的员工编号和员工名 select empno,ename fr 阅读全文
posted @ 2016-05-16 11:36 YunMan 阅读(470) 评论(0) 推荐(0) 编辑
摘要:max():求最大值 min():求最小值 avg():求平均值 sum():求和 count():统计数量 //查询员工的最高工资 select max(sal) from emp; //查询员工的最低工资和平均工资 select min(sal),avg(sal) from emp; //查询所 阅读全文
posted @ 2016-05-16 11:35 YunMan 阅读(202) 评论(0) 推荐(0) 编辑
摘要:10.ORDER BY排序子句 用于指定将查询结果排序的字段。 //查询emp表所有记录,结果按ename升序排列 select empno,ename from emp order by ename asc;//asc可以省略,默认为asc //查询emp表所有记录,结果按sal降序排列 sele 阅读全文
posted @ 2016-05-16 11:34 YunMan 阅读(420) 评论(0) 推荐(0) 编辑
摘要:9.过滤查询结果的重复记录 //查询员工职位类型,过滤重复结果 select distinct job from emp; //查询员工名字和职位,如果名字+职位都相同才过滤 select distinct ename,job from emp; //查询10部门员工从事哪些类型的职位 select 阅读全文
posted @ 2016-05-16 11:33 YunMan 阅读(246) 评论(0) 推荐(0) 编辑
摘要:8.在WHERE中使用ANY和ALL条件 字段 >ANY(值1,值2,值3...):字段值大于集合任何一个 值就算满足条件。 字段 >ALL(值1,值2,值3...):字段值大于集合中所有 值才算满足条件。 上述也可以用<ANY,>=ANY,<=ANY. <ALL,>=ALL,<=ALL //查询工 阅读全文
posted @ 2016-05-16 11:32 YunMan 阅读(153) 评论(0) 推荐(0) 编辑
摘要:7.在WHERE中使用in和not in条件 字段 in (值1,值2,值3...):字段值在指定的集合元素中 //查询10,20,30,40这些部门的员工信息 select empno,ename from emp where deptno=10 or deptno=20 or deptno=30 阅读全文
posted @ 2016-05-16 11:30 YunMan 阅读(150) 评论(0) 推荐(0) 编辑
摘要:3.WHERE中使用is null和is not null //查询工资是null空值的人 select * from person where salary is null; //查询工资不为null的人 select * from person where salary is not null; 阅读全文
posted @ 2016-05-16 11:29 YunMan 阅读(191) 评论(0) 推荐(0) 编辑
摘要:4.WHERE中使用AND,OR连接多个过滤条件 AND:并且的关系,要求条件同时满足 OR:或者的关系,要求条件满足某一个就可以 //查询10部门,基本工资大于2000的员工名和工资额 select ename,sal from emp where deptno=10 and sal>2000; 阅读全文
posted @ 2016-05-16 11:29 YunMan 阅读(100) 评论(0) 推荐(0) 编辑
摘要:6.在WHERE中使用between...and... 用于区间值的条件判断(包含边界值) //查询工资在2000(包含)到3000(包含)之间的员工信息 select empno,ename,sal from emp where sal>=2000 and sal<=3000; //采用betwe 阅读全文
posted @ 2016-05-16 11:28 YunMan 阅读(191) 评论(0) 推荐(0) 编辑
摘要:5.在WHERE中使用like做模糊查询 %符号表示0到多个任意字符 _符号表示1个任意字符 //查询名字中含有O字符的员工信息 select empno,ename from emp where ename like '%O%'; %O% : 匹配O字符可以在开始,中间和结束位置. %O : 匹配 阅读全文
posted @ 2016-05-16 11:28 YunMan 阅读(131) 评论(0) 推荐(0) 编辑
摘要://查询工资大于等于2000的人 select * from person salary >= 2000; //查询名字等于scott的人 select * from person name='scott' //查询不属于10这个部门的人 select * from person deptno != 阅读全文
posted @ 2016-05-16 11:28 YunMan 阅读(702) 评论(0) 推荐(0) 编辑
摘要:1.查询语句基本结构 SELECT ...//要提取哪些字段显示 FROM ...//数据源(条件字段,显示字段) WHERE ...//条件过滤 GROUP BY ...//按哪些字段分组 HAVING ...//分组函数过滤条件 ORDER BY...//按哪些字段将结果排序 阅读全文
posted @ 2016-05-16 11:27 YunMan 阅读(566) 评论(0) 推荐(0) 编辑
摘要:create user 用户名//创建用户 grant DBA to 用户名//授权 revoke //撤销权限 阅读全文
posted @ 2016-05-16 11:26 YunMan 阅读(441) 评论(0) 推荐(0) 编辑
摘要:确认提交DML操作:commit; 撤销DML操作:rollback; 提示:rollback撤销的是与上一个commit之间 所做的DML操作。注意:仅对DML语句有效。 事务控制目的是用来将多个DML操作封装成一个整体, 要么一起成功;要么一起失败,回滚到最初位置。 阅读全文
posted @ 2016-05-16 11:25 YunMan 阅读(616) 评论(0) 推荐(0) 编辑
摘要:select *或字段1,字段2... from 表名 【where 条件】 提示:*符号表示取表中所有列;没有where语句表示 查询表中所有记录;有where语句表示查询出符合 where条件的记录。 select * from person;//查询person中所有列所有记录 select 阅读全文
posted @ 2016-05-16 11:25 YunMan 阅读(182) 评论(0) 推荐(0) 编辑
摘要:a.添加记录(一次插入一行记录) insert into 表名(字段名,字段名...) values (字段值,字段值...) insert into person (id,name,age) values (1,'wangfeng',40);//字符串用''单引号 insert into pers 阅读全文
posted @ 2016-05-16 11:24 YunMan 阅读(391) 评论(0) 推荐(0) 编辑
摘要:1)NULL值写入的操作 create table j010( id number(7), name varchar2(20), salary number(7,2)); //插入时指定null insert into j010(id,name,salary) values(101,'scott', 阅读全文
posted @ 2016-05-16 11:21 YunMan 阅读(206) 评论(0) 推荐(0) 编辑
摘要:*1)创建表 create table 表名( 字段名 类型, .... ); //以现有表复制一个新表 create table j012 as select id,name,salary from j010 where 1<>1; 2)删除表 drop table 表名;//删除,放入回收站 d 阅读全文
posted @ 2016-05-16 11:19 YunMan 阅读(2075) 评论(0) 推荐(0) 编辑
摘要:最近研究了使用loadrunner做接口测试,刚开始一直不成功,后来加了QQ群,遇到大神了,经指导终于成功 下面是具体实例代码: //{"signIOS":1,"sign":1,"totalCount":"0","value":"619,wgy123,2,files/wgy123/2016-02-1 阅读全文
posted @ 2016-05-13 10:21 YunMan 阅读(1354) 评论(0) 推荐(0) 编辑
摘要:Unique:主要是强调取值的唯一性,如果到最后没有该值了,LR提供了其他解决方案,如图所示: 此处的下拉列表中提供了三种方式,具体如下: About Vuser,当取值次数超过参数的行数时,忽略脚本的运行 Continue in a cyclic manner,取值超过时,启用循环扫描,扫描那些还 阅读全文
posted @ 2016-05-11 15:35 YunMan 阅读(694) 评论(0) 推荐(0) 编辑
摘要:1.Random+Each iteration,跟顺序读取的结果唯一不同的就是这里是随机读取,取值是每次迭代取值 2.Random+Each occurrence,随机取值更新方式 3.Random+Once,随机取一行数据,然后重复迭代读取这一行数据 阅读全文
posted @ 2016-05-11 15:34 YunMan 阅读(407) 评论(0) 推荐(0) 编辑
摘要:1.Sequential+Each iteration(顺序方式+每次迭代更新取值),设置Run—Logic中action循环迭代11次,并运行以上脚本,结果如下: 2.Sequential+Each occurrence(顺序方式+每次取值更新),设置Run—Logic中action循环迭代11次 阅读全文
posted @ 2016-05-11 15:32 YunMan 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2016-05-11 15:19 YunMan 阅读(214) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示