Oracle基本概念、连接、权限操作以及一些函数

Oracle数据库常见的几个版本:
8i/9i  :Internet
10g/11g : grid 网格计算 舍远取近,提高了效率
12c: cloud  云计算
 
设置Oracle服务:
WIN+R
services.msc
 
可以通过register查看Oracle安装路径:
win+r   输入:register       路径:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDB12Home3\ORACLE_HOME
 

注意:

要在dos 窗口连接Oracle数据库需要打开OracleServiceORCL 服务,如果报如下错误,则表示这个服务没开。

 

 


如果要用SQL/Developer连接需要打开Listener服务

 
连接Oracle数据库的方式:
第一种方式: 登录oracle: sqlplus/nolog connect/as sysdba
第二种方式: 以sys权限登录:sqlplus / as sysdba
第三种方式: sqlplus system/123456
 
 
创建用户:
创建用户的时候用户名以c##或者C##开头即可。
错误写法: create user zhaojiedi identified by oracle; 正确写法: create user c##zhaojiedi identified by oracle;
– 创建c##scott用户
CREATE USER c##scott IDENTIFIED BY tiger ;
– 为用户授权
GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO c##scott CONTAINER=ALL ;
– 设置用户使用的表空间
ALTER USER c##joyce DEFAULT TABLESPACE USERS;
ALTER USER c##joyce TEMPORARY TABLESPACE TEMP;
– 使用c##scott用户登录
CONNECT c##scott/tiger
 
数据库的一些权限操作:
修改一个用户的密码:
alter user 用户名 identified by 密码;
查询oracle数据字典:
select * from v$nls_parameters;
select * from nls_database_parameters;
oracle默认时间格式:
NLS_DATE_FORMAT DD-MON-RR
系统编码:
修改时间格式:
alter seesion set NLS_DATE_FORMAT= 'yyyy-mm-dd'; 
查询所有的表:
select * from tab;
 
在dos界面下:
set linesize 1000;
set pagesize 100;//设置一页显示多少行
ed:可以进入文本修改sql语句
c:可以修改sql语句
a:在sql语句后面追加语句
然后/ 运行语句
 
 
 
一些基本的sql语句:
sql语句中字符,字符串,日期要使用单引号:' '
关系运算符中的不等于: != 或者<> is null, is not null
逻辑运算符:or ,and, not
字符串的拼接:||,concat()
数据去重:distinct
where 语句是从右往左执行的。
null的计算:
nvl(comm,0):如果comm为null,则值设为0
nvl2(comm,0,comm),如果comm为null,值设为0,否则,值为comm的值
 
范围查询: between 小 and 大 >=小 <=大 一般用在数字、日期的比较
模糊查询:like _代表一个字符,%:代表多个字符 select * from emp where ename like '%C%';
转义字符:查询姓名中包含_:  select * from emp where ename like '%\_%' escape '\;'
not in ():
not in 里面不能有null,如果有null的话查不到任何数据;

 

 排序:order by 后面可以跟序号,表达式

null是最大的。降序排序后如果要把null放最后面,可以使用 nulls lasts
 
单行函数和多行函数:
单行函数:输入多少条,输出多少条,一条一条的输出:
    字符函数:low(), upper(), initCap():首字母大写;substr(str,begin,len):从1开始数   
            length()字符数   lengthb()字节数  如果中文/符号 :utf-8编码格式下:一个汉字/符号 占3个字节  gbk:一个汉字/符号 占2个字节
            查看系统的编码可以是用  select * from nls_database_parameters; --> NLS_CHARACTERSET   AL32UTF8
                               

 

          instr(str,substr):在str中找substr的位置 

          

         lpad()/rpad():左右填充       trim():可以截掉前后的空字符,也可以截掉前后指定字符,不写第一个参数就是截取空格

        

           

         replace(str,a,b):把字符串str中的a替换成b

    数值函数round(value,位数n):四舍五入,保留n位小数   trunc(value,位数i):截掉小数部分,保留i个小数   mod(除数a,被除数b):求余数, a%b

    日期函数:sysdate 当前日期    to_char(日期,'yyyy_mm_dd'):转换日期格式      日期+-数字:加减天数           日期-日期:可以计算出多少天   

         month_between(大日期,小日期) :日期之间相差多少个月     add_month(日期,月数):日期加上月数后的日期   last_day(日期):当前日期月份的最后一天

         next_day(日期,星期几):日期下一个星期几是哪一天    select next_day(sysdate,'星期一') from dual;  14-12月-20

          

             select sysdate- '10-4月-89' from dual;  这个不行

          

            select months_between(sysdate,'10-4月-89') from dual;  这样也可以

           

     通用函数nvl(),nvl2(), nullif(a,b):  a=b,null,否则返回a     coalesce:从左往右  找到第一个不为null的值填补   

           条件判断函数:decode(字段,条件1,返回值1,条件2,返回值2,.......最后表达式)

          

          条件判断: case ... when ...then... when ...then...else...end

          

       转换函数:

        隐式转化:数字<----->字符    字符<---->日期   

        显示转化:to_char(),to_number(),to_date()

         

 

 

多行函数(组函数,聚合函数):输入多条,输出一条(max(),min(),sum(),avg(),count():会自动屏蔽掉null值  distinct() :过滤掉重复的值

        分组查询时,不在group by中的列,就必须在聚合函数中。(查询的列必须在组函数中或者group by 语句中)

          对筛选用where语句,对进行筛选要用having

        where 语句里面不能使用组合函数

插入语句:
INSERT INTO EMP VALUES
(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
 
 

posted @ 2020-12-10 18:39  Joyce502  阅读(288)  评论(0)    收藏  举报