1.登录sys

1.sql*plus登录

请输入用户名: connect / as sysdba

输入口令:oracle

连接到:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

2.plsql登录

输入用户名: system

输入口令:oracle

数据库:orcl

2.用户创建与授权(system权限)

1.新建个用户

create user xxxxx(用户名) identified by "密码"

例如: create user sqluser01 identified by oracle;

2.修改用户信息

alter user 用户名 identified by “新密码” --修改用户密码

例如:alter user sqluser01 identified by 123456

3.删除用户

语法:drop user 用户名;

例如:drop user sqluser01;

若用户拥有对象,则不能直接删除,否则将返回一个错误值。指定关键字cascade,可删除用户所有的对象,然后再删除用户。

语法: drop user 用户名 cascade;

例子: drop user sqluser01 cascade;

4.查看权限

1.查看当前用户所有权限

select * from user_sys_privs;

2.查看所用用户对表的权限

select * from user_tab_privs;

3.授权

新建的用户和默认的用户是锁住的,没有权限。所以新建用户后要给用户赋予权限.ORACLE系统提供三种权限:Object 对象级、System 系统级、Role 角色级。

oracle为兼容以前版本,提供三种标准角色(role):connect/resource和dba.

1 connect role(连接角色)

connect 只对其他用户的表有访问权限,包括select/insert/update和delete等。

connect role 的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym)、回话(session)和其他 数据的链

2 resource role(资源角色)

--更可靠和正式的数据库用户可以授予resource role。resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。

3 dba role(数据库管理员角色)

system由dba用户拥有。dba role拥有所有的系统权限.包括无限制的空间限额和给其他用户授予各种权限的能力。

授权命令

语法: grant connect, resource to 用户名;

grant connect,resource to sqluser01;

4.收回权限

revoke connect,resource from sqluser01;

5.创建/授权/删除角色

除了前面讲到的三种系统角色----connect、resource和dba,用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,用户必须具有create role系统权限。Oracle 的角色存放在表 dba_roles 中,某角色包含的系统权限存放在 dba_sys_privs 中,包含的对象权限存放在 dba_tab_privs 中。实体权限分类

select, update, insert, alter, index, delete, all  //all包括所有权限
​
execute  //执行存储过程权限

1》创建角色

语法: create role 角色名;

例子: create role sqluser01role01;

2》授权角色

1.授予用户sqluser01role01登录权限(只能登陆数据库,以及查询一些public视图等)

grant create session to sqluser01role01;

2.授予sqluser01role01建表权限

grant create table to sqluser01role01;

3.授予sqluser01role01建视图权限

grant create view to sqluser01role01;

4.授予sqluser01role01操作表空间的权限

grant unlimited tablespace to sqluser01role01;

5.授予sqluser01role01建类型权限

grant create type to sqluser01role01;

6.授予sqluser01role01创建序列的权限

grant create sequence to sqluser01role01;

7.授予sqluser01role01创建触发器的权限

grant create trigger to sqluser01role01;

8.授予sqluser01role01创建存储过程的权限

grant create any procedure to sqluser01role01;

9.授予sqluser01role01执行存储过程的权限

grant execute any procedure to sqluser01role01;

10.授予sqluser01role01对class表的select查询权限

语法: grant select on class to 角色名;

列子: grant select on class to sqluser01role01;

3》收回权限:

语法: revoke connect, resource from 角色名;

列子: revoke connect, resource from sqluser01role01;

3》删除角色

语法: drop role 角色名;

例子: drop role sqluser01role01;

4》查看角色权限

1查询当前用户拥有的全部角色的全部信息

     select * from user_role_privs; 

2.查询当前用户拥有的权限全部信息

    select * from role_sys_privs;

3.创建表

1.使用sequence实现自增

1.语法:

create sequence SQE_TEST--名字
minvalue 10000--最小值
maxvalue 99999999999--最大值
start with 10000--起始值
increment by 1--自增数量
cache 20;--定义存放序列的内存块的大小,默认为20。对序列进行内存缓冲,可以改善序列的性能。
--nocache;--表示不对序列进行内存缓冲。

2.查询自增序列:

创建完成sequence,必须先使用nextval

1.查看当前的序列:

select SQE_TEST.currval from dual;

2.查看下一个自增序列

select SQE_TEST.nextval from dual;

3.创表语法(alter语法)

create table **sqluser01t1**(--黑体为表名
​
id number not null,
​
name varchar2(8),
​
sex varchar2(2) check(sex='男' or sex='女'),
​
primary key(id)
​
);
create table sqluser01test2(
id number not null,
fid number,
name varchar2(8),
sex varchar2(2) check(sex='男' or sex='女'),
primary key(id,fid)
);

1.添加 name约束:name不为空;

alter table sqluser01test1 modify name varchar2(8) not null;

测试语句:

insert into sqluser01test1 values(1,'test','男');
insert into sqluser01test1 values(1,'男');

2.表t2添加外码ti的id:

表外:

alter table sqluser01test2 add foreign key(fid) references sqluser01test1(id);  

或者:

drop table sqluser01test2;
create table sqluser01test2(
id number not null,
fid number,
name varchar2(8),
sex varchar2(2) check(sex='男' or sex='女'),
primary key(id,fid),
foreign key(fid) references  sqluser01test1(id)--添加
);

3.alter对表字段操作:

1.先对表2添加字段 testfild:

alter table sqluser01test2 add testfild varchar2(8);--单字段
alter table sqluser01test2 add (testfild varchar2(8),testfild2 number(8));--多字段

2.对表2修改字段 testfild:

alter table sqluser01test2 modify testfild varchar2(10) notnull;--单字段
alter table sqluser01test2 modify (testfild varchar2(10),testfild2 number(10));--多字段

3.对表2删除字段 testfild:

alter table sqluser01test2 drop (testfild);--注意小括号
alter table sqluser01test2 drop (testfild,testfild2);--多字段

4.对主键约束

对表2取消外键作为主码:

1.判断主码约束是否有名字:

没有名字:

对于表2:

create table sqluser01test2(
id number not null,
fid number,
name varchar2(8),
sex varchar2(2) check(sex='男' or sex='女'),
primary key(id,fid),
foreign key(fid) references  sqluser01test1(id)--添加
);

1.查询主键名:

SELECT * from user_cons_columns where table_name='SQLUSER01TEST2';--表名

结果为:

OWNER CONSTRAINT_NAME TABLE_NAME COLUMN_NAME SQLUSER01 SYS_C0012207 SQLUSER01TEST2 ID SQLUSER01 SYS_C0012208 SQLUSER01TEST2 SEX SQLUSER01 SYS_C0012209 SQLUSER01TEST2 ID SQLUSER01 SYS_C0012209 SQLUSER01TEST2 FID SQLUSER01 SYS_C0012210 SQLUSER01TEST2 FID

主键名字:SYS_C0012209

2.依据主键名字,删除主键:

alter table sqluser01test2 drop constraint SYS_C0012209;

3.添加主键(自定义主键名)

alter table sqluser01test2 add constraint pk_student primary key(id);

有名字的:

create table sqluser01test2(
id number not null,
fid number,
name varchar2(8),
sex varchar2(2) check(sex='男' or sex='女'),
constraints pk_sqluser01test2  primary key(id),
foreign key(fid) references  sqluser01test1(id)--添加
);

1.依据主键名字,删除主键:

alter table sqluser01test2 drop constraint pk_sqluser01test2;

2.添加主键(自定义主键名)

alter table sqluser01test2 add constraint pk_sqluser01test2 primary key(id,fid);

4.常用函数:

1.时间函数:

查询当前时间:

select sysdate from dual;

2.日期转换字符串:

to_char(date,formate)

例如:

把当前时间转换成字符串:

to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss');

3.字符串转换成日期的函数:

to_date(str,formate)

例如:

1.字符串2021-7-21 00:11:23转成时间

to_date('2021-7-21 00:11:23'), 'yyyy-mm-dd hh24:mi:ss');

2.把当前时间转化成字符串,把字符串转化成时间:

to_date(to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss');

例如:对表SQE_DATETESTT1插入时间,

create sequence SQE_DATETESTT1
minvalue 10000
maxvalue 99999999999
start with 10000
increment by 1
cache 20 ;
​
create table datetestt1(
id number,
birdate date,
name varchar2(20),
constraint pk_datetestt1 primary key(id)
);
​
insert into datetestt1 values(SQE_DATETESTT1.nextval,sysdate,'test');

4.最大值:

Max(coloms)

select 学号,Max(成绩) as 最高分 from grade group by 学号 order by 学号;
select 课程号,Max(成绩) as 最高分 from grade group by 课程号 order by 课程号;

5.最小值:

Min()

select 学号,Min(成绩) as 最低分 from grade group by 学号 order by 学号;
select 课程号,Min(成绩) as 最低分 from grade group by 课程号 order by 课程号;

6.平均值:

Avg()

select 学号,Avg(成绩) as 学生平均成绩 from grade group by 学号 order by 学号;
select 课程号,Avg(成绩) as 课程平均成绩 from grade group by 课程号 order by 课程号;

Oracle数据库笔记以及plsql的使用相关推荐

  1. Oracle数据库笔记(基于oracle数据库的PLSQL编程以及存储过程的创建和使用)

    PLSQL编程 概念和目的 程序结构 Hello World 变量普通变量 引用型变量 记录型变量 流程控制 条件分支 循环 游标 什么是游标 语法 游标的属性 创建和使用 带参数的游标 存储过程 概 ...

  2. 达内oracle教材,达内学习心得oracle数据库笔记

    达内学习心得oracle数据库笔记 达内学员: oracle 数据库笔记获奖学员:王梓祺所获奖项:三等奖内容:/*前言:这份资料是结合老师笔记,课堂案例, TTS6.0 课件以及个人的理解整理,时间仓 ...

  3. Oracle数据库•笔记

    Oracle数据库•笔记 第一章 数据库概述 第二章 表管理.表数据库修改 oracle注释:单行注释(–),如: –这是单行注释 多行注释(/**/),如: /* 这是多行注释 这是多行注释 这是多 ...

  4. oracle数据库笔记---oracleweb视图使用流程,及plsql安装

    1.   a.第一次进入的时候输入:http://127.0.0.1:1158/em/     Oracle Enterprise Manager注意,网页的标题是这个;     输入:system账 ...

  5. php sql oracle数据库,PHP、PLSQL连接oracle数据库的方法

    众所周知,在使用PHP(针对5.2及后续版本)和PLSQL操作oracle数据库前需要先安装客户端来部署环境,然而事实上在连接过程中仅仅只需要客户端中的几个文件罢了.完整版客户端对于我们这些数据库不在 ...

  6. plsql备份还原oracle数据库,(已实践)PLSQL本地还原Oracle数据库dmp文件

    这个方法很烂,导致重装Oracle时候处处出现问题,不建议使用这个方法,除非你以后不再用Oracle这个软件了,这个方法很烂,再评论一下. 第一,启动服务,(如果数据库处于启动状态,那么略过这一步) ...

  7. oracle rownum union,oracle数据库笔记

    获奖学员:王梓祺 所获奖项:三等奖 内容: /*前言:这份资料是结合老师笔记,课堂案例,TTS6.0课件以及个人的理解整理,时间仓促,如有纰漏敬请原谅.*/ Oracle 数据库 语法顺序 selec ...

  8. oracle11g之管理oracle数据库笔记(理论基础知识)

                                                                  第三章 管理oracle数据库 1.启动数据库步骤;(创建启动实例--> ...

  9. PL/SQL 工具远程连接Oracle数据库方法,plsql免安装oracle客户端直接配置oci实战演示

    PL/SQL 工具远程连接 Oracle 数据库 第一章:PL/SQL 工具配置 ① oci 下载 ② oci 配置 ③ PL/SQL 工具配置 ④ PL/SQL 远程连接 Oracle 数据库演示 ...

最新文章

  1. 字符指针,字符数组,双引号的字符串的区别与联系
  2. Practical Java 摘录(四)--多线程
  3. 人工智能离我们有多远/近?
  4. Git客户端图文详解如何安装配置GitHub操作流程攻略
  5. 经典C语言程序100例之二三
  6. 数据结构为什么那么难?
  7. 【Java】蒙提霍尔问题的概率原理及随机化模拟
  8. 昇腾AI处理器软件栈--神经网络软件架构
  9. 怎么在html插入谷歌地图,html页面插入百度or谷歌地图
  10. 使用AVR-GCC编程Arduino
  11. oracle练习之查询1(where等)
  12. 时间序列数据的特征提取
  13. 虚拟机服务器断网,Vmware虚拟机断网不能上网的解决方法教程[多图]
  14. deepin系统linux:Firefox火狐浏览器关闭更新提示
  15. AI(人工智能) TensorFlow 源码下载及编译安装
  16. fiddler安装安全证书
  17. 大数据导论2之大数据与云计算、物联网、人工智能
  18. python中的df是什么意思_python数据分析之pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]...
  19. speedoffice表格的外框线怎么设置?
  20. VMware Workstation虚拟机无法获取IP地址的解决办法

热门文章

  1. IDEA和VS常用快捷键对照
  2. PTA--文件--函数题--读文章--C语言
  3. SpringCloud第11讲:用Nacos远程管理配置
  4. java接入tars_Tars环境搭建之路
  5. python自动发微信天气预报_【教程】Python微信定时自动给女朋友发送天气预报
  6. linux-shell脚本-利用shell函数计算两数之和--思考return原理
  7. iOS 证书申请和使用详解
  8. 企业网盘有关校园云盘的解决方案内容的共享与学习
  9. 前端之vue3使用WebSocket
  10. 如何才能拥有惊人预见力与超前布局的能力