Oracle初步学习

Oracle

Oracle的演变:甲骨文公司——SDL——RSL——Oracle

实例:数据库启动后在内存中的单元

数据库:硬盘上的文件,物理介质硬盘

PGA

SGA

DBWR:数据文件读取和写入

BGwR:日志文件读取和写入

SMON:清理临时表空间

PMON:异常终断之后的清理,处理和释放资源

CKPT:检查点,保证数据库的一致性,将脏数据写入到硬盘中,保证内存中的数据和硬盘中的数据是一样的。

 

数据类型:

 

按条件查询:

select * from(select id,name,rownum rnfrom userinfo) empwhere rn=3

Rownum只能对<N=1

三种数据库的端口

 

  SQL Server    1433

  MySQL       3306

  Oracle        1521

查询当前用户下的所有表(两种方式):

1.SELECT * from all_tables where owner='t16'

2.select * from TAB

带条件查询:

 SELECT * from(

 select info.*,ROWNUM rn from(

 SELECT id,name,SCALARY from USERINFO ORDER BY SCALARY DESC)info

 ) emp where rn=3

分页查询:

 1.SELECT * from(

 select info.*,ROWNUM rn from(

 SELECT id,name,SCALARY from USERINFO ORDER BY SCALARY DESC)info

 where rownum<=3

 ) emp where rn>1

2.

 SELECT * from(

 select info.*,ROWNUM rn from(

 SELECT id,name,SCALARY from USERINFO ORDER BY SCALARY DESC)info

 ) emp where EMP.rn BETWEEN 1 and 3

授权:

1.直接授权法

Grant selec on A.a to B

2.用户自定义授权法

create role userhh

grant select on T16.USERINFO to userhh

grant userhh to sott

回收权限

REVOKE select ON  T16.USERINFO from SCOTT

解锁(cmd中操作):

1. 管理员登录

方式一  c:\>sqlplus sys/你的密码as sysdba

方式二  c:\>sqlplus / as sysdba

 

SQL> show user

 

 

2. 解锁

SQL>alter user scott account unlock;

 

 

3. 改密码

SQL>alter user scott identified by 1234;

 

3.5 切换用户

SQL>conn scott/新密码

 

 

4. 登录

c:>sqlplus scott/******

集合操作符:

    union(并集)       union连接两句sql语句, 两句sql语句的和 去掉重复的记录。

                        (select deptno from scott.emp) union (select deptno from scott.dept)

    union all(并集)   接两句sql语句,两句sql语句的和不用去掉重复的记录。 

                        (select deptno from scott.emp) union all (select deptno from scott.dept)

    intersect (交集)  Intersect连接两句sql语句 取查询出来的两个集合的 共同部分。

                        (select deptno from scott.emp) intersect (select deptno from scott.dept) 

    minus (补集)      Minus连接两句sql语句,取查询出来的两个集合的差。
                        (select deptno from scott.emp) minus (select deptno from scott.dept)

Sql中的函数
Sql函数包括:(单行函数)(分组函数)(分析函数)
单行函数:
     对于从表中查询出来的每条记录只显示一个数据。单行函数可以出现在select子句中,where子句中。单行函数包括:(字符函数)(数字函数)(日期函数)(转换函数)(其他函数)。 
    
日期函数:对日期进行计算 显示日期类型或者数字类型。
    SYSDATE    当前日期  eg:select sysdate from dual; 
    current_date    返回当前会话时区中的当前日期
    current_timestamp    以timestamp with time zone数据类型返回当前会话时区中的当前日期
    dbtimezone    返回时区
    ADD_MONTHS    加上月数 eg:select add_months(sysdate,1)  下个月, add_months(sysdate,123) "123个月后" from dual 
    MONTHS_BETWEEN  返回两个日期之间月数 eg:两个日期相差的月数  select (sysdate-hiredate)/30 方式一, months_between(sysdate,hiredate) 方式二 from emp;  
              --add_months:在指定日期上加上若干个月
    LAST_DAY    返回月的最后一天 eg:select last_day(sysdate) from dual; 
    ROUND    将日期进行四舍五入 eg:select round(sysdate,'MONTH')  月,round(sysdate,'YEAR') from dual;
    NEXT_DAY    指定下一个星期几的日期 eg:select next_day(sysdate,'星期-') from dual; 
    TRUNC    日期的格式转换 eg:select trunc(sysdate,'MONTH')  月,trunc(sysdate,'YEAR') from dual;  
    EXTRACT    提起日期中指定的部分 










    字符函数:
    Initcap(char)  大写首字母。eg:select INITCAP('hello world') from dual;
    Lower(char)  将大写字符变成小写。eg:select lower('Hello World') 转小写, upper('Hello World') 转大写 from dual; 
    数字函数
    Mod(m,n)   m/n 的余数。eg:select mod(11,10) from dual;  
    Power(m,n)   m的n次方。eg:select power(2,2),power(-1,2),power(1,0) from dual;   POWER(2,2) POWER(-1,2) POWER(1,0)  
    Round(m,n)    m是小数,n是取的小数位数。四舍五入 eg:select round(123.5),round(123.46,1),round(126.45,-1) from dual; 
 ROUND(123.5) ROUND(123.46,1) ROUND(126.45,-1)
    Trunc(m,n)    m是小数,n是取的小数位数。不四舍五入 select trunc(999.99),trunc(999.99,1),trunc(999.99,-2) from dual;  
TRUNC(999.99) TRUNC(999.99,1) TRUNC(999.99,-2) 
    转换函数
    To_char 转化字符。eg: SELECT  TO_CHAR( 'AABBCC' )  FROM  dual;
    To_date  转换日期。eg:SELECT  TO_DATE( 2454336 ,  'J' )  FROM  dual;  SELECT  TO_DATE( '2007-8-23 23:25:00' ,  'yyyy-mm-dd hh24:mi:ss' )  FROM dual;
    To_number  转换数字 eg: SELECT TO_NUMBER('-100.00', '9G999D99') FROM dual; 
    其他函数
    NVL(表达式1,表达式2)
        如果表达式1为null,返回表达式2,否则返回表达式1;
        如果表达式类型不一致,Oracle将表达式2转换为表达式1的类型
    NVL2(表达式1,表达式2,表达式3)
        如果表达式1为空,返回表达式3的值,否则返回表达式2的值
    NULLIF(表达式1,表达式2)
        如果两表达式相等,返回空值,否则返回表达式1


  分组函数
    Avg ()取平均数。eg:select sum(sal)/count(*) 方式一, avg(sal) 方式二 from emp;  
    Count ()返回查询出来的数据。select count(*) from emp;  
    Sum ()取和 eg:select sum(sal)/count(*) 方式一, avg(sal) 方式二 from emp; 求平均
    Max ()取最大值   eg:--max和min:求最高工资和最低工资  select max(sal) 最高工资,min(sal) 最低工资 from emp;  
    Min ()取最小值   eg:--max和min:求最高工资和最低工资  select max(sal) 最高工资,min(sal) 最低工资 from emp; 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值