删除用户。
drop user
conn system\liu621 转换用户)
在删除用户的时候注意。
如果要删除的用户已经创建了表了那么就需要带一个参数 cascade;带着它就把用户所涉及的表统统删除。
付权限的是:系统管理员 system 或 sys(他有create database 的功能而system没有其他类似)
付权限:(oracel有一百四十多种权限。分为一种系统权限【session属于系统权限】(指用户数据库的相关权限),一种是对象权限(指用户对其他用户的数据对象 (表视图过程)【select insert update delete all【所有权限】等等】操作的权限 ))
角色:有七种权限(分为两种,一种是预定义角色,另一种是自定义角色)
connect(属于预定义,它自身有一定的权限如 session 有它就可以登陆)
dba角色
resource角色。
dba角色包括connect resource
grant connect to liumaochang;
这样就可以登陆了可以连接到数据库了
grant resource to liumaochang;
这样就可以创建表了。
desc命令看表的结构。
一个用户去查询别的用户中的表需要授权。
grant select on emp to liumaochang;
system sys scott 都有这个权力 liumaochang本身没有。
撤销权限。revoke select on from liumaochang;
/对权限的维护。
希望刘茂昌把scott付给他的权限在付给别人。
-如果是对象权限就在后面加入with grant option
grant select on emp to liumaochang with grant option;(这样授权的话刘茂昌就可以授权给别人了)
-如果是系统权限
system 给liumaochang权限时;
grant connect to liumaochang with admin option ;
这样的话 liumaochang 就可以给别人付这个权限了。
若liumaochang的权限被收回那么他授权的人的权限也被收回。
使用profile 管理用户口令。
1)、账户锁定。
create profile aa limit failed_login_attempts 3 password_lock_time 2;
alter user liumaochang profile aa;
2)、解锁。
alter user liumaochang account unlock;
3)、终止口令(让用户定期修改密码)
create profile aa limit password_life_time 10 password_grace_time 2;
每十天修改一次宽限期两天)
alter user liumaochang profile aa;
口令历史:1 建立profile
create profile bb limit password_life_time 10 password_grace_time 2 password_reuse_time 10
指定口令可重用时间即10天后就可以重用)
2 分配给摸个用户。
删除profile
drop profile aa【cascade】
创建表:create table student(name char(2),sex varchar2(10));
字符型:char 定长最大符。
char(10)‘小明’前四位放‘小明’,后添6空格补满’小名 ’优点查询速度快,浪费空间。
varchar2(20) 自动变长最大符,查询速度慢,节省空间,’小汉’oracel 分配四个字符。
clob(charcter large objiect) 字符型大对象最大四g
数字型:number 范围 -10的38次方 10的38次方。
可以表示整数,也可以表示小数。
number (5,2)
表示一个小数有5位有效数字,两位小数。
范围-999.99 ~~999.99
number(5) 表示一个五位整数。
范围-99999~~99999
修改表:desc命令查看表
desc student
添加一个字段:
alter table student add (classid number(2));
修改字段长度。
alter table student modify (xm varchar2(30));
修改字段类型/是名字(不能有数据);
alter table student modify (xm char(30));不建议做这一个,若是一个空表可以,若有数据就麻烦了)
删除一个字段;(不建议去删)
alter table student drop column sal;
修改表名;rename student to stu
删除表。drop table student
添加数据:insert into student values(‘a001’,’张三’’男’,’28-9月-90’,’12’,2560) oracle 中日期输入必须这个样式,另外除非你这样更改一下就可以和中国的日期表达方式相似了,alter session set nls_date_fromat=’yyy-mm-dd’;
insert into student values(1,’李四’,’女’,’1990-9-28’)
添加一部分字段:
insert into student (xh ,xm,sex)values(‘a111’,’小红’,’女’)
插入空值:insert into student (xh,xm,sex,brithday)values (1,’qq’,’男’,null);
查找没生日的学生。
select * from student where brithday is null;
修改一个字段:
update student set sex=’女’ where xh=’1’;
修改性别为男的薪水,为原来的一半。
update student set xinshui=xinshui/2 where sex =’男’;
修改多个字段:
update student set set xinshui=xinshui/2,classid=’2’ where sex=’男’;
删除数据:delete from student 删除所有记录,表结构还在,写日志是可以恢复的,速度慢。
s**epoint(保存点) 【写日志】
rollback(回滚找回数据,回滚到保存点)
s**epoint aa;
delete from student
rollback to aa ;
select * from student;数据能找回。
drop table student 删除表的结构和数据。
delete from student where xh=’222’;删除一条记录。
truncate table student删除表中的所有记录,表结构还在,不写日志无法找删除回记录,速度快。
查询:查看表结构:
desc student;
查看所有列:
select * from student
这样速度有点慢,不提倡用select*)
查询指定列:
select name,sex from student;
如何取消重复行:
select distinct number from emp;
使用算数表达式:
如何显示员工的年工资?
select sal*12 ,tom from emp;
select sal*12”年工资” from emp; 这样更形象)
如何处理空值,null
算数表达式里若有一个空值那么结果就是一个空值。
select sal*12+nvl(comm,0)*12 ”年工资” ,name ,conn from emp;
nvl这个方法是若为空就取零,若不为空就是comm
使用where字句:
select name,date from student where date>’1-1月-1990’;
多个条件之间用and
如何使用like:
;表示0到多个字符。
:表示任意单个字符。
在where条件中使用in:
如何查询员工为 123,234,235的人
select * from student where in(123,234,235)
如何使用is null操作。
如何显示没有上级的员工。
select * from emp where mgr is null;
使用逻辑操作符号:
select * from emp where (sal>500 or job=”manager”) and name like ‘j%’;
使用order by 字句:
select * from emp order by sal;(默认从低到高)
select * from emp order by sal desc ;(从高到低)
select * from emp order by sal , yuangonghao desc ;
升序降序。使用列的别名排序;
select name ,(sal+nvl(comm.,0))*12 ”年薪” from emp order by “年薪”;
或。select name ,(sal+nvl(comm.,0))*12 as ”年薪” from emp order by “年薪”;
oracle笔记
1 查看表的结构 desc tabledescription 2 set timing on 打开操作表的时间记录。3 消除重复行 distinct 4 大小写不区分的是列名,而不是里面的数据。1 可以对某一列直接进行加减乘除。两列相加。2 如果有一列为null,所得结果也为空。使用nvl函数处理n...
Oracle笔记
第1页1.oracle 的使用 1.1.sqlplus 的命令 初始化表的位置 set nls lang american 设置编码才可以使用下面脚本 cd oracle home rdbms cd demo 我们目前使用的是oralce 9i 9201 版本 select from v versi...
oracle笔记
clear 清屏。col title for a20 设置title的字符最多有20个。oracle介绍。rdbsrdb 基本的存储结构是,二维表。表头。行。列。字段。sql的分类 dsl 关键字 select dml 操作 insert delete update ddl 定义 create dr...