Oracle 基础
来源:互联网 发布:老人坐便椅子淘宝网 编辑:程序博客网 时间:2024/05/17 04:42
一.角色和权限(1)A用户访问B用户下的表,但是没有dba权限 方案一直接授权法:用B用户登录,执行 (grant select on B用户.表名 to A用户) 然后用A用户登,执行(select * from B用户.表名)即可查询B用户下的表 方案二授予角色法:用system登录,自定义一个角色,(grant role 角色名) 将访问B用户表的权限赋予这个角色(grant select on B用户.表名 to 角色名) 将这个角色再赋予A用户(grant 角色名 to scott)
收回B用户赋予A用户的权限:(revoke select on B用户.表名 from A用户) (2)角色和权限的关系 一个角色可以囊括多个权限,多个权限可以隶属于一个角色二.常用数据类型 三. sql简介
解锁用户alter user 用户名 account unlock四.sql查询1.查询emp表自然排序下的第三条记录SELECT * FROM
(
SELECT ename,ROWNUM run FROM emp WHERE ROWNUM<=3
)temp
WHERE TEMP.run=3
ROWNUM 查询返回的是结果集中行的序号,可以使用它来限制查询返回的行数 通过测试可知,Rownum只能对=1和<N进行筛选,如果>M不能筛选,如何规避。通过子查询构建临时表,让伪列Rownun成为临时表中的列,然后限定条件使用伪列的别名。2.查询员工表中薪资排名第五的员工SELECT * FROM
(
SELECT ename,ROWNUM rn FROM (SELECT * FROM EMP ORDER BY SAL DESC) temps
)temp
WHERE rn=5
3.oracle sql分页实现SELECT * FROM
(
SELECT ename,ROWNUM rn FROM (SELECT * FROM EMP ORDER BY SAL DESC) temps where ROWNUM <=10
)temp
WHERE rn>=6
4.查询表中无重复记录的学生的年龄SELECT DISTINCT STUAGE FROM STUDENT
5.利用现有表创建新表(1)选择所有数据CREATE TABLE STUDENT1
AS
SELECT * FROM STUDENT
(2)选择指定的列CREATE TABLE STUDENT2
AS
SELECT stuname,stuage FROM STUDENT
(3)只保留表结构,不保留数据CREATE TABLE STUDENT1
AS
SELECT * FROM STUDENT
where 1=26.查询表中有多少条记录select count(*) from student //执行效率低select count(1) from student //执行效率高
7.删除有重复数据的记录并保留年龄最大值的一列Delete from student where ROWID not in(select max(ROWID) from student group by stuname,stuage HAVING(count(*)=1)unionselect max(ROWID) from student group by stuname,stuage HAVING(count(*)>1))8.sql操作符(1)算数操作符 + - * /(2)比较操作符 > <(3) 逻辑操作符 and or(4)集合操作符 UNION(联合) 可以去重UNION ALL(联合所有) 不可以去重INTERSECT(交集) 查询共有的内容MINUS(减集) 返回第一个查询检索出的记录减去第二个查询检索出的记录之后剩余的记录(5)连接操作符 ||
收回B用户赋予A用户的权限:(revoke select on B用户.表名 from A用户) (2)角色和权限的关系 一个角色可以囊括多个权限,多个权限可以隶属于一个角色二.常用数据类型 三. sql简介
解锁用户alter user 用户名 account unlock四.sql查询1.查询emp表自然排序下的第三条记录SELECT * FROM
(
SELECT ename,ROWNUM run FROM emp WHERE ROWNUM<=3
)temp
WHERE TEMP.run=3
ROWNUM 查询返回的是结果集中行的序号,可以使用它来限制查询返回的行数 通过测试可知,Rownum只能对=1和<N进行筛选,如果>M不能筛选,如何规避。通过子查询构建临时表,让伪列Rownun成为临时表中的列,然后限定条件使用伪列的别名。2.查询员工表中薪资排名第五的员工SELECT * FROM
(
SELECT ename,ROWNUM rn FROM (SELECT * FROM EMP ORDER BY SAL DESC) temps
)temp
WHERE rn=5
3.oracle sql分页实现SELECT * FROM
(
SELECT ename,ROWNUM rn FROM (SELECT * FROM EMP ORDER BY SAL DESC) temps where ROWNUM <=10
)temp
WHERE rn>=6
4.查询表中无重复记录的学生的年龄SELECT DISTINCT STUAGE FROM STUDENT
5.利用现有表创建新表(1)选择所有数据CREATE TABLE STUDENT1
AS
SELECT * FROM STUDENT
(2)选择指定的列CREATE TABLE STUDENT2
AS
SELECT stuname,stuage FROM STUDENT
(3)只保留表结构,不保留数据CREATE TABLE STUDENT1
AS
SELECT * FROM STUDENT
where 1=26.查询表中有多少条记录select count(*) from student //执行效率低select count(1) from student //执行效率高
7.删除有重复数据的记录并保留年龄最大值的一列Delete from student where ROWID not in(select max(ROWID) from student group by stuname,stuage HAVING(count(*)=1)unionselect max(ROWID) from student group by stuname,stuage HAVING(count(*)>1))8.sql操作符(1)算数操作符 + - * /(2)比较操作符 > <(3) 逻辑操作符 and or(4)集合操作符 UNION(联合) 可以去重UNION ALL(联合所有) 不可以去重INTERSECT(交集) 查询共有的内容MINUS(减集) 返回第一个查询检索出的记录减去第二个查询检索出的记录之后剩余的记录(5)连接操作符 ||
阅读全文
0 0
- oracle基础
- Oracle基础
- oracle基础
- Oracle基础
- oracle基础
- Oracle 基础
- oracle 基础
- Oracle基础
- oracle基础
- oracle基础
- oracle基础
- oracle基础
- Oracle 基础
- Oracle基础
- oracle基础
- oracle基础
- Oracle基础
- Oracle基础
- Oracle基础
- 搭建FTP文件服务
- PHP之static静态变量详解(二)
- 04-nginx服务器的安装,redis安装,前端部署
- 几本自然语言处理入门书
- Oracle 基础
- 使用npm install报错-4048 operation not permitted解决
- 让 UIView 显示一个图片
- 深度学习在自然语言处理的应用
- 菜鸟学习微信小程序之数据绑定
- python mysql 字段与关键字冲突解决
- Spring Framework 5.0.0下载
- 算法导论第3章习题解析
- C++里面的深拷贝和浅拷贝