查看当前数据库监听状态命令:lsnrctl status/stop/status
服务端监听文件 Listener.ora
客户端网络配置文件 tnsnames.oa
条数统计数量函数:count
去掉重复行:distinct
事务提交命令:commit
设置保存:savepoint
空值转换符:nvl
Oracle中切换用户:conn+用户
赋权限grant/revoke
---Inster into 表名(列名,列名) values (值,值)
---delete from表名 where 条件
---update 表名 set 列名=值 [where条件]
---select * from 表名;
//alter table 表名 add 列名 数据类型 给表增一列
//alter table 表名drop column 列名 给表删一列
//alter table 表名alter column 列名 列属性 修改列属性
--外连接 左外连接、右外连接和全外连接
作用:把不满足连接条件的数据也查询出来
---查询哪个部门没有员工(只要这个部门的部门编号)
select d.deptno from emp e right outer join dept d on e.deptno = d.deptno where empno is null; ---右外
--查询哪个部门没有员工
select * from emp,dept where emp.deptno(+) = dept.deptno; --右(外)连接
select * from emp,dept where emp.deptno = dept.deptno(+); --左(外)连接
---外连接的另一种写法(推荐)
select * from emp e right outer join dept d on e.deptno = d.deptno; ---右外
select * from emp e left outer join dept d on e.deptno = d.deptno; ---左外
select * from emp e full outer join dept d on e.deptno = d.deptno; ---全外连接
开锁:select t.,rowid from emp t;(开锁修改数据打钩关锁;点击望远镜输出查询内容再次点击望远镜查询)
数据库:access/sql server/mysql/Sybase/oracle/db2/Informix
小型数据库:access/mysql;大型数据库:oracle/db2/sql server
默认端口:
oracle:1521/sql server:1433/mysql:3306/Apache:8080/fcp:22/email:25
数据库三大文件:.ctl(控制文件);.dbf(数据文件);.log(日志文件)
dos监听命令:lsnrctl status/stop/start 查看oracle监听端口的状态/停止监听/开始监听
通配符:%:代表多个字符;_:代表一个字符。配合like使用:where ename like ‘s%’;
order by:
select * from emp order by deptno,sal:先按部门排序,再按薪水排序。
order by语句始终在select语句中的最后位置。
补充介绍:
oracle中的关键字执行顺序:from,where,group by,having,select,order by;
where必须在group by之前,否则报错。
多张表联合查询的时候需要加上约束条件避免笛卡尔结果。
查看有多少条记录:select count(1)/count() from emp;
使用group by时:select后只能跟:1.用来分组的列2.组函数。
当条件中含有组函数时用having代替where。
多行子查询,使用in(),any(),all()连接。
创建一张表保存现有的表:
create table emp_bak as select * from emp;
事务机制:防止不同用户修改同一东西的冲突(类似svn的commit)。
commit:提交;rollback:回滚;
直接rollback会刷新整个数据库到上一次commit的状态。
savepoint a; rollback to a;一旦rollback到a,在a之后的保存点都失效。
事务:一组DML语句/一个DDL语句/一个DCL语句,DDL和DCL都直接触发commit。
增加列:sql>alter table dept30 add (job varchar(9));
修改列属性:sql>alter table dept30 modify (job int);
truncate table student = delete student
创建视图:
create view emp10 as select * from emp where deptno=10;
scott用户没有创建视图的权限。
视图:视图的优点:限制数据的访问;简化查询;提供独立的数据;允许过个视图访问相同数据;删除时不影响基表。
索引:优点:提高系统的性能,提高数据检索速度;缺点:占用磁盘空间,降低DML速度。
存储过程:优点:提高执行效率,增加系统编程能力,减少网络通信量,保证系统安全性;
缺点:可修改性差,可移植性差。
添加注释:表:comment on table t1 is ‘this is a table’;字段:comment on column t1.id is ‘id’;
创建角色:create role rolename
修改密码:alter user username identified by password;
赋权限:grant … to username 回收权限: revoke … from username
PL/SQL:
开启数据库打印命令:set serveroutput on;
pl/sql语句总体结构:
declare
变量定义
begin
语句
exception
异常处理
end;
打印命令:dbms.output.put_line();
异常处理:
when no_data_found then
dbms.output.put_line(‘the empno does not exist!’);
&+变量名:执行语句的时候手动输入变量值;
%type:变量名+%type,复制数据类型。
存储过程:
结构:
create procedure cjs(参数代入) is
--定义部分
begin
--执行部门
end;
调用存储过程: exec cjs();
查看错误提示:show errors;
存储过程参数类型:in,out,inout;
3的2次方:3**2;
自定义变量:可接受一行记录。
type 变量名 is record();
游标cursor:可接受多行多列。
触发器:两张表建立触发器,一张表变动带动另一张表跟着变动。
我感觉对于一个测试而言,会基本的增删改查就够了.
网友评论