tnblog
首页
登录

Oracle--常用命令、条件语句、循环语句、SQL函数

448人阅读 2019/12/25 17:39 总访问:4363 评论:0 手机 收藏
分类: Oracle

Oracle常用命令

1、登录数据库

默认账户  默认密码                        拥有权限

sys        123456 as sysdba  拥有数据库的最高权限

system 123456                   dba(数据库管理员)

scott     tiger                       一般权限(scott据说是Oracle公司的第一个员工,tiger是一只猫咪的名字)


2、查询当前登录的账户

show user


3、锁定/解锁账户命令(只能是权限高的一方锁定低的一方,权限分明 )

alter user 锁定账户的名称 account lock;

alter user 解锁账户的名称 account unlock;


4、切换登录的账户(connect 也可以简写为conn,一样的效果)

connect  账户名称/密码


5、修改密码的命令

alter user 账户名称 identified by 新密码


6、授权/撤销授权命令(只能是拥有高级权限的账户对低权限的账户的操作)


授权:grant 权限 to 账户名称

赋予单一的权限

例子:scott账户想要查看system账户的text表,但显然scott权限不足,所以可以通过system账户赋予scott账户查询text表格的权限,如下:

grant select on text to scott;

一次赋予多种权限

例子:scott账户想要查看system账户的某text表并且添加数据,但显然scott权限不足,所以可以通过system账户赋予scott账户查询、添加这张text表的权限,如下:

grant select,insert on text to scott;


取消对某一账户的授权:Revoke 权限 from 账户名

例子:当前账户取消scott账户查询text表的权限,如下:

Revoke select on text from scott;


7、创建账户

create user 账户名称 identified by 密码

给用户赋予所有权限:grant dba to 账户名 

给新创建的账户赋予登录的权限:grant  create session  to 账户名称

给用户赋予表操作的权限:grant create table to 账户名 

给用户赋予表空间操作的权限:grant unlimited tablespace to  账户名 

赋予连接数据库的权限:grant connect to 账户名 

查看当前用户所有权限:select * from user_sys_privs

查看当前用户对表的权限select * from user_tab_privs


8、创建角色

create role 角色名称

grant insert on 表 to 角色   --将插入表的信息

revoke insert on 表 from 用户   --收回farxix角色的权限

grant 角色1 to 角色2   --将角色1的权限授权给角色2

alter user 角色名 default 角色名,角色2   --修改用户默认角色为角色2

drop role 角色名   --删除角色


9、创建序列(相当于表格中的自增ID)

create sequence 序列名 --简单创建序列(初始值为1,自增为1)

createsequence 序列名 start with 初始值  increment by 自增值  maxvalue 最大值   --自定义序列

select  序列名.nextval from dual  -- 查询序列(执行一次查询,则序列自增一次)


10、条件分支语句


DECLARE  i int:=1;

BEGIN --开始

        select * from 表名 where 条件;  --查询

IF  条件满足(如:userInfo.name = "小明") THEN  --条件判断

     update userInfo set userInfo.name="小白" where  userInfo.name="小明";  --满足条件之后的具体操作

END IF; --结束判断

END; --结束


11、三大循环语句

基本循环LOPP

DECLARE

             K INT  := 1;

BEGIN 

          LOPP

             DBMS_OUTPUT.PUT_LINE(K); -- 具体操作(输出操作)

             K  := K+1;

             EXIT WHEN K=10; -- 一定要包含EXIT语句,否则死循环

         END LOOP;

END;


WHILE循环

DECLARE

             K INT  := 1;

BEGIN 

          WHILE K<10 LOOP

             DBMS_OUTPUT.PUT_LINE(K);  -- 具体操作(输出操作)

             K  := K+1;

             EXIT WHEN K=10; -- 循环语句退出条件

         END LOOP;

END;


FOR循环

DECLARE

             K INT  := 1;

BEGIN 

          FOR  K  IN 1..10  LOOP

             DBMS_OUTPUT.PUT_LINE(K); -- 具体操作(输出操作)

         END LOOP;

END;


12、CASE语句

DECLARE

             K INT  := 10;

BIGIN

CASE 

 K

  WHEN 10 THEN  -- 判断条件 K=10

    DBMS_OUTPUT.PUT_LINE(K);  -- 具体操作(输出操作)

END CASE;


13、SQL函数


-- 数值函数


SELECT ABS(-15.9) FROM DUAL; -- ABS() 函数 返回数字的绝对值

SELECT CEIL(-15.9) FROM DUAL; -- CEIL() 函数 返回数字的最小整数

SELECT FLOOR(-15.9) FROM DUAL; -- FLOOR() 函数 返回小于等于数字的最大整数

SELECT ROUND(N,[M]) FROM DUAL; --ROUND() 函数 用于执行四舍五入算法. 如果省略M,则四舍五入至整数位;M为负数,则四舍五入到小  数点前M位;M为正数,则四舍五入至小数点后M位

SELECT TRUNC(-15.9) FROM DUAL;-- TRUNC() 函数 用于截取数字.如果省略M,则只保留整数位;M为负数,则截取N至小数点前的M位;M    为正数,则截取N至小数点后的第M位


-- 字符函数


SELECT LTRIM(char[,set]) FROM DUAL; --LTRIM() 函数 将字符串char左端包含的set中的任何字符,set默认为空格

SELECT RTRIM(char[,set]) FROM DUAL; --LTRIM() 函数 将字符串char右端包含的set中的任何字符,set默认为空格

SELECT LOWER(char) FROM DUAL; --LOWER() 函数 将字符串转化为小写格式

SELECT UPPER(char) FROM DUAL; --UPPER() 函数 将字符串转化为大写格式

SELECT LENGTH(char) FROM DUAL; -- LENGTH() 函数 返回字符串的长度

SELECT REPLACE(char,serch_string[,replace_string]) FROM DUAL; -- REPLACE() 函数 将字符串中的字符替换为指定的字符


--转换函数


SELECT TO_NUMBER(char[,fmt[,nls_param]]) FROM DUAL; --TO_NUMBER() 函数 将符合特定数字格式的字符串转化为数字值

SELECT TO_CHAR(DATE | [,fmt[,nls_param]]) FROM DUAL; --TO_CHAR() 函数 将日期型转变为字符串,其中fmt用于指定日期格式, nls_param用于指定NLS参数

SELECT TO_DATE(char[,fmt[,nls_param]]) FROM DUAL; --TO_DATE() 函数 将符合特定格式的字符串转变为DATE类型的值

SELECT NVL(N,M) FROM DUAL; -- NVL() 函数 如果N为NULL,则返回M,如果N不为NULL,则返回N。N,M数据类型必须匹配(任意数据类型)

SELECT NVL2(N,M,K) FROM DUAL; --NVL2() 函数 如果N为NULL,则返回K,N不为NULL,则返回M.N(任意数据类型),N,M(除了LONG类型)




评价
一电照耀十四洲,电来!
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2020TNBLOG.NET
技术交流:群号677373950
欢迎加群交流技术