• oracle


    创建用户,表空间,角色,授予用户角色权限

    1.以系统管理员身份登录 sql plus

      conn scott/tiger as sysdba;           --scott用户以sysdba的身份登录

    2.创建新用户,修改新用户密码

      create user zhangfei  identified by zf123;       --注意用户不要为关键字

      alter user zhangfei  identified by zff123;

    3.给该用户分配一个表空间

      create tablespace ts_zf  datafile  'f: t_ppkk.dbf' size  200M;   --datafile 后面是表空间的物理存储路径,文件的后缀名随意

      alter user zhangfei  default  tablespace  ts_zf;

    4.分配空间后暂时还不能登录,没有登录权限,需分配权限

      grant  create table,create session, create view,create sequence,unlimited  tablespace  to zhangfei;  --session是登录数据库权限

      conn zhangfei/zff123;    --可以登录数据库

    5.简化版授予权限,由于自带三张标准角色,所以可以直接通过角色授予使得用户可以登录数据库并可以操作表,序列,过程,触发器,索引,簇

      grant connect,resource to zhangfei;

           revoke  connect,resource from zhangfei ;    --撤销权限  

    6.授予用户tuba在t_class表上的select权限

      create user tuba identified by tutu;

      grant select on t_class to  tuba ;

      --用户tuba可以查询用户zhangfei创建的表t_class 数据了

      select * from zhangfei.t_class;           --可以查到数据,如果在表名前没有所属用户名, 查不到数据,报错:表或试图不存在

    7.创建角色

      create role  rolename;

    8.授予角色在t_class表上的select权限

      grant select on t_class to 角色名 ; 

    ========================================================================================

    create table t_class(

      tc_id  number(5) ,

      tc_name varchar2(30) ,

      createdate date  

    )

    create table t_user(

      t_id  number(5) ,

      t_name varchar2(30) ,

      tc_id number(5)

    )

    将orcle一些使用总结了一下

    1.日期:        默认日期格式(DD-MON-RR 日-月-年)  insert into t_class('29-9月-18')

      添加日期字段:  alert table t_class add(learndate  date);

      修改字段:    alert table t_class modify(column1 number not null )  -- modify  修改数据类型,以及是否为空  column1 列名

               alert table t_class rename column filed_name to new_filed_name;   --rename 修改字段名

      删除字段:    alert table t_class drop(column)

      插入日期格式数据:  to_date()函数

        insert into t_class values(1001,'class1',to_date('2018-9-28','yyyy-mm-dd'));

        insert into t_class values(1002,'class2',to_date('2018-9-28','yyyy-mm-dd'));

      显示正常年月日的日期:

        select to_char(createdate,'yyyy-mm-dd') from t_class;

      add_months(date,m)  给日期加月份数

        select * from t_class where createdate between add_months(sysdate,-2) and sysdate;   --近两个月的数据

      months_between(date1,date) 两个月份相差的月份数 date1-date   可以存在小数

        select months_between(sysdate,'30-9月-18') from dual;

    2.查询区间数据  利用伪列(rownum)

      前10行数据,加别名

        select tc_id  班级号, tc_name 班级名, createdate 班级创建时间 from t_class  where rownum<=10;

      3-5条数据

        select tc_id,tc_name from ( select  tc.*,rownum as rowno from t_class tc )  where rowno between 3 and 5;

    3.利用旧表创建新表,不要数据

      create table t_base

      as

      select * from t_class where 1=2;

      向新表插入数据 :  insert into t_base   select * from t_class where tc_id>1001;

     4.对表结构进行操作:

      create  alter drop

    5.对表数据进行操作:

      insert update delete  select   truncate(截断表,快速删除表中所有数据,对于有主外建的表,索引之类的不要用这个,不会触发触发器,少用)

    6.数据提交,撤回

      commit   rollback  savepoint(标记事务中可以回滚的点)

    ===========================================================================================

    1.集合操作符:将两个查询的结果组合成一个结果(列数要相同,对应列的数据类型要兼容)

      minus 从第一个查询结果中排除第二个查询中出现的行  intersect  查询它们的公共行        union    union all  将两个结果集合并在一起 ( 区别:union 去重,union all 不去重)  

      select tc_id from t_class

      minus  |  intersect  | union

      select tc_id from t_user

     查询数据需要去重直接用distinct;

      select distinct tc_name from t_class;

    2.连接运算符  ||

      select  '班级编号:'|| tc_id||',班级名:'||tc_name from t_class;

    3.round  

      1、数字类型,四舍五入

        select round(23.498) from dual;   --23

        select round(23.498 , 2 ) from dual;  --23.50

      2.日期类型

        select round(to_date('2018-9-30','yyy-mm-dd'),'yy') from dual;  --   01-1月-19  (明年)

        select round(to_date('2018-9-10','yyy-mm-dd'),'dy') from dual;  --  09-9月-18  (周一至周三,上周日)

        select round(to_date('2018-9-10','yyy-mm-dd'),'dy') from dual;  --  09-9月-18  (周四-周日,本周日)

    3.trunc 

      1、数字类型,不四舍五入,直接取位数值

        select trunc(23.578) from dual;   --23

        select trunc(23.478 , 2 ) from dual;  --23.47

      2.日期类型,日期取整

        select trunc(to_date('2018-9-10','yyy-mm-dd')) from dual;   --  10-9月-16

        select trunc(to_date('2018-9-10','yyy-mm-dd'),'yyyy') from dual;  --  01-1月-18  年初

        select trunc(to_date('2018-9-10','yyy-mm-dd'),'mm') from dual;  --  01-9月-18  月初

        select trunc(to_date('2018-9-10','yyy-mm-dd'),'dd') from dual;  --  10-9月-18  当前日期

    =====================================================================================

    1.函数  将 , 替换成 ',    一,二,三,  变成  ‘一’,‘二’,‘三’

      create or replace function func_replace(czd varchar2)
      return varchar2
      as
        resul varchar2(1000);

      begin   
          resul:= ''''|| substr(replace(czd,',',''','''),0,instr(replace(czd,',',''','''),',',-1)-1);
          dbms_output.put_line(resul);
      return resul;
      end func_replace;


    --   set  serveroutput on  显示函数输出结果

    declare 

      kk varhcar2(100);

    begin

      kk:=' 一,二,三, ';

      kk :=func_replace(kk);

      dbms_output.put_line(kk);

    end;

    2.过程

      create or replace procedure  pro_class(tt number)   --默认为 in

      as

        tm  varchar2(20);

      begin

        select tc_name into tm

        from t_class where tc_id  = tt;

        dbms_output.put_line('班级编号:'|| tm);

      exception

        when no_data_found  then

        dbms_output.put_line('班级编号未找到');

      end pro_class;

       --执行

      execute pro_class(1008);

  • 相关阅读:
    Redis源码分析(二十一)--- anet网络通信的封装
    leetcode 总结part1
    leetcode String to Integer (atoi)
    leetcode 165. Compare Version Numbers
    leetcode 189. Rotate Array
    leetcode 168. Excel Sheet Column Title
    leetcode 155. Min Stack
    leetcode 228. Summary Ranges
    leetcode 204. Count Primes
    leetcode 6. ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/cjxns/p/9720040.html
Copyright © 2020-2023  润新知