0.序:管理员:system;密码:orasys
1.一般使用普通账号scott。
给scott改密码
alter user scott identified by tiger;
执行查询,查其默认表emp
->设置窗口大小
set linesize 500
2.切换用户
conn system;
或conn system/orasys;
3.问在system下如何访问EMP
select * from scott.EMP;
4.切换回scott
请插入一条数据;再删除你插入的纪录;
5.新建用户:xiaoming 密码:123
create user xiaoming identified by 123
->修改密码
pasword xiaoming
->断开连接
disconnect
但新建的xiaoming不能登录的。要用sys授权限,权限共二种:系统权限,对像权限
系统权限:对数据库使用,create table等等;
对像权限:用户对其他用户的数据对像的权限;(数据对像如table,view,trigger)
->授权登录
grant connect to xiaoming;
---请问scott可以授权吗?
几个角色说明:
dba:最高的权限,重要
resource:在任何一个表空间建表
6.看看当前是哪个用户?
show user;
---再切到xiaoming下,可以查看EMP表吗?
7.怎么才能让xiaoming也可查看EMP表呢?
grant select on emp to xiaoming;[sys,system,emp自主soctt可执行]
若要修改/插入/选择
grant all on emp to xiaoming;
8.授权的传递(选练习)
grant select an emp to xiaoming with grant option;
grant select an emp to xiaohong;
9.如果是系统权 system给小明授权,则小明可以把权限再传递(选练习)
系统权限grant connect to xiaoming with admin option
回收的要连在一起的
->回收授权
revoke connect from xiaoming
revoke resource from xiaoming
回收后,也可以删除用户
drop user xiaoming;(会报错)
注意,如果此用户已创建过数据对象(表\触发器\序列),那么我们删除用户时候,要加选项
cascade表示把这个用户删除同时,则所有的对象也要删除
drop user xiaoming cascade;
10.创建一个用户,若失败3次则封闭2天(选练习)
create profile lock account limit failed login attemps 3 password lock time 2;
-->自己建的表回放在其自己目录下的。故而可以建相同名的表(不同的方案可以,相同的也是不行了)。
---------
11.数据类型,不像mysql的,folot,int,double那么多;只有一个number;
char 最大20000字符,char查询最快,但浪费空间,varcher虽是可变的,但是一个个比对,因而速度慢,但节约了空间,
varchar:使用的较小
varchar2:是变长,最大4000。就是不放空格,会被回收的。
当遇到此类错误提示时:The service did not respond to start or ,等一会便可。
@blob二进制数据,可存放图片/声音
create table student(
xh number(4),
xm varchar2(20),
sex char(2),
birthday date,
sal number(7,2) --共7位,有2位小数:-9999.99到9999.99
);
->改表名
rename 旧表名 to 新名字
->删除表数据、清空表
delete from table 写日志,速度慢,可以找回
truncate from table 不写日志,速度类,不可以找回
12.insert一条数据,日期格式
insert into sttudent values(1,'小明','男','1999-12-13',2345.8,12);--注意日期写法
报错12-2月-1999
oracle默认的日期格式:MM-MON-YY
但可以修改:
alter session set nls_date_format='yyyy-mm-dd';
13.查询为空时
select * from student where birthday is null;--不能=NULL;='';只能使用is null,is not null
14.回滚,delete删除完,可以恢复rollback
在删除前可以savepoint aa;
再删除时,delete from studnet;
可以恢复,rollback to aa;
15.看是不是空值函数
nvl(comm,0),表示,如果comm是空值就是0,如果不为空则使用原值。
16.某个部门的工资排序,找最大工资
select * from emp order by deptno asc,sal desc;
17.自增长
create sequence users_seq
start with 30
increment by 1
minvalue 30
nomaxvalue
nocycle
nocache
18.分页
找出6-10条纪录
第一步子查询
select depto,avg(sal)
第二步显示rownum
第三步select A1.*,rownum rn from (select * from emp) A1 where rownum<=10;(注意rownum只能用一次,不能这样吧),砍去了一半,但是速度很快的。用的是二分机制
第四步再一个子查询
select * from (select A1.*,rownum rn from (select * from emp) A1 where rownum<=10;) where rn>=6
所有改动,只能修改最内层的即可,如排序,select * from emp order by id最内层的那个