leo_logic

Oracle学习笔记
一、用户创建与权限赋予Oracle将权限分为①系统权限②对象权限()1)新建用户,并连接Oracle①登录管理员账...
扫描右侧二维码阅读全文
11
2018/09

Oracle学习笔记


一、用户创建与权限赋予

Oracle将权限分为①系统权限②对象权限()

1)新建用户,并连接Oracle
①登录管理员账号:conn /as sysdba
②创建用户名为user1密码为oral的用户:create user user1 identified by oral;
③赋予user1登录权限:grant create session to user1;
补充:赋予权限时可同时下放登录权限:grant create session to user1 with admin option; e.g.下放建表权限:grant create table to user1;
④使用新建的用户连接数据库:conn user/oral
⑤管理员回收权限:revoke 权限名 from 用户名:revoke select on table1 from user1; 收回查询select表的权限; revoke all on table1 from user1; 收回user1下所有权限;
⑥删除用户:drop user user1;


①实体:代表某些共性的一些集合
学生表:学号、姓名、年龄、住址、身份证、班级
班级表:班级编号、班级名、班级教室、班主任
课程表:课程编号、课程名、教材
②数据库设计,三大范式:
1)一个实体一张表,每张表字段内容不可再分(例如:联系方式)
2)表与表之间存在主从依赖关系
3)数据不可冗余
--字符型
char(n):定长字符,占用空间,但查询效率高;
varchar2(n):可变字符长度,节省空间。但是查询效率底;
--数字型 number
小数:number(m,n)指的有效位数,整个位数,n小数位数
例如:score number(3,1)
number(n):n是可以省略的,代表有效位数
例如:age number(3); money number;
--日期型
date


提示:oracle中大量使用单引号'' 较少使用双引号
①distinct 去重
②between...and... 和 =>x and x<= (-- 注意点:在数据量特别大的时候,between...and...的效率会稍微低一些)
③in查出孤立值(例如:查出2000、3000、5000)
x in (2000、3000、5000)(注意在数据量比较大的时候尽量不要使用in)
④order by(以某个字段排序) 升序:ASC(默认是升序) 降序:DESC
第一个排序字段叫主要关键字,当主要关键字一样的情况下,次要关键字才会起作用。
⑤like模糊查询:
%:0个或多个字符
_:1个字符
⑥数据分组:分组函数不可以写在where后面

  • max(x)
  • min(x)
  • avg(x)
  • sum(x)
  • count(x)
  1. ename from emp where sal = (select max(sal) from emp);子查询

⑦group by...having
group:分组
having:对分组信息进行过滤

select...
from 表
where 全表过滤条件
group by 分组字段
having 对分组信息进行过滤
order by 排序

分组的字段加在查询的字段里面

--set serveroutput on 启动屏幕显示
--分支
if 条件 then 满足条件的结果
else
  不满足的结果
end if; --必须添加end if

--有变量就需要声明
declare 
n number := &no;
begin
   if n > 10 then 
     dbms_output.put_line('大于10');
   else 
     dbms_output.put_line('小于等于10');
   end if;
end;
/
--Oracle变量比较用一个等于符号 =
--原表字段不能用来做判断
--commit 增删改后必然要进行事务提交
Last modification:March 13th, 2019 at 10:45 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment