韩顺平oracle笔记

发布 2021-05-11 23:36:28 阅读 4480

disc ;退出命令 conn连接命令 passw 用户修改用户密码需要sys/system登录。

show user 显示当前用户 exit断开与数据库的连接

start和@ 运行sql脚本如start d:\

edit 编辑指定的文本 edit d:\

spool 可以将sql*plus屏幕上的内容输出到指定文件中去spool d:\

spool off;

控制输出的各种格式 set show 如果希望永久保存相关配置可以去修改。

linesize 设置显示行的宽度,默认是80个字符。

show linesize

set linesize 90

pagesize 设置每页显示的行数目 ,默认是14,用法和linesiz一样。

系统权限用户对数据库的相关权限 connect,dba ,resource;

对象权限用户对其他用户的数据对象的操作的权限(如select ,insert update ,delete, all)

数据对象比如表,视图,过程

角色分为自定义角色和预定义角色。

如果xiaomign也可以建表那么需要把resource权限赋予xiaoming

除外权限有resource,dba是最高的权限,还有connect登录权限。

创建xiaoming用户,修改用户密码只需要把create改成alter即可。

create user xiaoming identified by xiaoming ;

create user xiaoming identified by xiaohong ;

grant connect to xiaoming ;/赋予权限。

revoke connect to xiaoming;//收回权限。

希望小明可以去查询scott用户的emp表。

grant select on emp to xiaoming;

希望xiaoming用户可以去修改empbiao

grant update on emp to xiaoming;

如果是对象权限就在后面加上with grant option

grant all on emp to xiaoming with grant option;

xiaoming把emp表的查询权限给xiaohong

grant select on to xiaominge;

如果是系统权限。

grant connect to xiaoming with admin option;意味着xiaoming可以将这种权限继续传递。

一旦收回权限,则赋予权限的下级也被收回,诛九族式的;

账户锁定。使用profile管理文件。

创建profile文件。

create profile chen limit failed_login_attempts 3

password_lock_time 2;

alter user xiaoming profile chen;

alter user xiaoming account unlock;//解锁。

创建个profile文件,要求该用户每隔10天修改自己的登录密码,宽限期市两天。

create profile myprofile limit password_life_time 10 password_grace_time 2;

alter user xiaoming profile myprofile;

口令历史如果希望用户在修改密码时,不能使用以前使用过的密码,可以使用口令历史。

当发现旧密码一样时提示用户重新输入。

create profile myprfile limit password_life_time 10

password_grace_time 2 password_reuse_time 10;

注意password_reuse_time 是指口令可以重用的时间是10天后就可以重用。

删除profile文件。

drop profile chen[cascade];

表名必须以字母开头,长度不能超过30个字符,不能使用oracle保留字。

char 定长最大两千字符,varchar2(10) 变长最大是四千字符。

clob 字符型对象最大4g

number(3,2) 一共有3位有效数字2位小数 number(2)表示一个两位整数 number范围10的-38次方到10的38次方。

date 时间类型。

timestamp 较为精确的时间。

** blob类型 4g 可以存放**声音(通常处于安全的考虑会把**声音放入数据库中)

建表。create table student(

xh number(4),xm varchar2(20),sex char(2),birthday date,sal number(4,2)-

insert into student values(001,'admin','男',01-03月-1990',4000.50);

create table class(

classid number(2),cname varchar2(20)

添加一个字段 alter table student add(classid number(2));

修改字段长度 alter table student modify (xm varchar2(19));

修改字段类型或名字 alter table student modify (xm char(20));

删除一个字段 alter table student drop column sal;

修改表的名字 rename student to stu;

删除表 drop table student;

修改日期的默认格式 alter session set nls_date_format='yyyy-mm-dd';

insert into student values(2,'小红','男','1990-04-10',3260.50,11);

insert into student values(1,'小陈','女','1980-07-10',3310.50,12);

insert into student values(3,'小龙','男','null',2330.50,11);

设置保存点s**epoint a;

delete from student;删除所有记录,表的结构还在,记录删除了,写日志,可以恢复的,速度慢。

drop table student ; 删除表的结构和数据。

truncate table student; 删除表中的所有记录,表的结构还在,不写日志无法找回删除的记录,速度快。

delete from student where xh=1;删除一条记录。

rollback to a;

clear;清屏命令。

8讲查询。mgr字段是指员工上级的编号; comm是指奖金; loc 指部门所在地点。

desc dept查看表结构

取消重复行 select distinct deptno,job from emp;

查询smith(注意名字区分大小写)的薪水,工作,所在部门 select ename,sal,job,dname from emp,dept where and ename='smith';

如何显示雇员的年工资(但此种方法会出现年薪空值) select ename ,12*sal+12*comm "年薪" from emp;(必须是"" 不能'')

如何处理null值 select ename,nvl(comm,0)*13+sal*13 "年薪" from emp;

如何显示工资高于三千的员工 select * from emp where sal>3000;

显示1980-01-01以**职的员工 select * from emp where hiredate>'1982-01-01';

工资高于2000低于2500的员工 select * from emp where sal>2000 and sal<2500;

表示多个字符 _表示任意单个字符。

显示首字母为s的员工 select * from emp where ename like's%';

显示第三个字符时大写o的select * from emp where ename like'__o%';

显示雇员编号是123,3445,800的雇员信息 select * from emp where empno in(7839,7876,7934);

显示没有上级的员工 select * from emp where mgr is null;

查询工资高于500或者是岗位是manager 的雇员,同时还有满足他们的姓名首字母为大写j

select * from emp where (sal>500 or job='manager') and ename like'j%';

工资从高到低排列 select * from emp order by sal desc ;默认是asc从低到高。

部门号升序而雇员工资降序排列select * from emp order by deptno ,sal desc;

使用列的别名排序 select ename,sal*12+nvl(com,0)*12 "年薪" from emp order by "年薪" desc;

复杂查询:显示所有员工的平均工资和工资总和select sum(sal) as "工资总和" ,**g(sal) as "平均工资" from emp;

韩顺平Oracle笔记

如果scott把xiaoming权限收回,则xiaohong 权限也被撤销收回。用户管理。使用profile管理用户。账户锁定。创建profile文件。sql create profile lock account limit failed login attempts 3 password loc...

韩顺平Oracle笔记

将登陆的角色给某个用户。grant connect to xiaosi 授予用户在任意表空间建表的权限。grant resource to xiaosi 授予用户对某些用户下某个表操作的权限,分为select,insert,update,delete,all,create index 要在授权用户的...

oracle笔记

1 查看表的结构 desc tabledescription 2 set timing on 打开操作表的时间记录。3 消除重复行 distinct 4 大小写不区分的是列名,而不是里面的数据。1 可以对某一列直接进行加减乘除。两列相加。2 如果有一列为null,所得结果也为空。使用nvl函数处理n...