oracle 第一章总结代码及思路

1 服务的开启顺序
先监听,再数据库服务

2.数据库用户
sys:超级管理员 管理普通的管理员和普通用户

System:普通管理员

scott:没有解锁

##如何查看该用户管理着的所有表
select * from all_tables where owner='HAPPYY2165'

3.表空间
逻辑概念
一个database 下有1个或者 N个表空间

1个表空间有1个或者多个数据文件

如果创建了一张表,不指定表空间,默认使用users表空间

4. 查询用scott 登录后 emp表中的第三条记录


rownum注意事项:
rownum=1可以 ,rownum<N,大于 m没有结果集。如何规避,使用子查询形成别名列。然后再外层查询该列。
rownum=3


4. 查询用scott 登录后 emp表中的第三条记录

SELECT * From(
SELECT "Stuname",ROWNUM rn from STUDENT
)temp
WHERE rn=3


select 100-1 from dual
--|| 明天放假但是作业很多--连接运算符
select '明天放假'||'但是作业很多' from dual
select '您的运算结果是'||5 from dual

SELECT STUNAME,STUAGE FROM STUDENT
INTERSECT --交集(共有内容)
SELECT DISTINCT deptno FROM emp


方案一:直接授权法
1.用happyy2165登录,之后,授权
grant select on HAPPYY2165.STUDENT to scott
2.用scott登录,用如下代码去访问Student表
select * from HAPPYY2165.student

方式二:通过角色去控制
1.自定义角色 role_testy2165 create role role_testy2165
2.将查询表的权限和角色绑定

GRANT select on HAPPYY2165.STUDENT to role_testy2165
3.给用户分配角色
grant role_testy2165 to SCOTT

revoke select on HAPPYY2165.student from SCOTT 回收权限

6.解锁用户
alter user hr account unlock

7.删除stuName、stuAge列重复的行(保留一行) 保留学号最大的

DELETE FROM STUDENT WHERE "Stuno" NOT IN
(
SELECT "MAx"("Stuno") FROM STUDENT GROUP BY "Stuname","Stuage"
)

原文地址:https://www.cnblogs.com/hualishu/p/7520285.html