Oracle学习笔记

 

 

             1、database书写规范

                   服务器ip地址+“:”+端口号+“/”+数据库名称

 

 

 

 

          2、简化database

                  1)进入Oracle服务端的安装路径,找到oracle/product/10.2.0/db_1/NETWORK/ADMIN/tnsnames.ora 文件,在客户端Oracle                          按装目录新建config文件夹,将tnsnames.ora文件拷贝到里面。

 

                  2)将此配置文件配置到环境变量中,新建环境变量TNS_ADMIN粘贴 tnsnames.ora 路径

 

1.数据库

    Oracle数据库式数据的物理存储,包括和数据文件ora或者dbf等,Oracle数据库是一个操作系统作为一个大库

2.实例

    一个Oracle实例有一系列的后台进程和内存结构组成,一个数据库可以有n个实例

3,用户

    在实例下建立的,不同实例可以建立相同名字的用户(MySQL的基本单位是库而Oracle的基本单位为用户即一个用户下有几张表)

4.表空间

    是Oracle对物理数据库上相关数据文件(ODA或DBF)的逻辑映射,每个表空间包含了在逻辑上相关联的一组结构。每个数据库至少有 一个表空间(称之为system表空间)

5.数据文件(datafile)

    是数据库的物理存储单位,数据库的数据是存储在表空间中的,真正试下某一个或者多个数据文件中。每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件。一个数据文件只能属于一个表空间。一旦数据文件被加到某个表空间后就不能删除这个文件,如果要删除某个数据文件,只能删除其所在的表空间

6.整体结构如下

 

 

 

 

 

 

 

 

 

 

      表空间的创建与删除

        1、创建

            2)创建表空间

                Create tablespance ‘表空间名’

            3)设计数据文件路径

               Datafile ‘路径’

           4)设置表空间的初始大小(100M)

              Size 100M

           5)设置当数据库空间满后是否自动扩展

              Autoextend on

           6)设置自动扩展中每次扩展的大小(10M)

             Next 10M

             (只有在最后结束时才加上结束符“;”)

        2、删除

              Drop  tablespace  表空间名称 ;

1、创建用户

      Create user 用户名

      Identified by 密码

      Default  tablespace 表空间名 --设置此用户所属的表空间

2、授权用户权限

      oracle中的常用角色:

             Connect   连接角色,基本角色

             Resource  开发者角色

             Dba       超级管理员角色

      Grant 角色类型  to 用户名

3、切换用户

      Session-->log off-->All  --退出所有用户

      Session-->log on -->任意一个 –在登录页面进行登录

1、varchar2

      表示一个可变字符varchar2(n),长度为n

2、number

      数字类型,有两种表示方法

      Number(n)表示一个整数,长度为n

      Number(m,n)表示一个整数长度为m-n或者表示一个小数总长度为m小数位长度为n

3、data

      日期类型,精确到时分秒

4、clob

      大对象,表示大文本数据类型,可存4G

5、blob

      大对象,表示二进制数据,可存4G

  • 表操作

1、创建表

      Crate table tablename(

           Pid  varchar2(6) name

      Pname  varchar2(10)

      )

     Pid为主键的意思

     Oracle创建字段的规则为先字段名称后数据类型

2、修改表

  1. 添加一列

          Alter   table    表名  add   字段名称    字段类型 ;

     2. 添加多列

          Alter   table   表名   add   (字段名称 字段类型), (字段名称 字段类型);

    3. 修改列的类型

          Alter  table    表名   字段名    modify    字段名    新数据类型

    4. 修改列的名称

         Alter   table    表名   rename   column    列名     to     新列名

    5.删除一列

         Alter table tablename drop column 列名

3、数据的增删改查

        1.增加一条数据

           Insert   into    table    tablename (字段1,字段二)    values   (自定义的主键序列.nextval,’字段二的值’);

       2.删除一条数据

            i.Drop   用于删除表结构

            ii.Delete 用于逐条删除数据,对于大批量数据来说。删除数据会由索引的限制,导致效率很慢

           iii.Truncate   删除表以后再重建表结构,用于大数据的删除。可无视索引的限制

                       使用规则:truncate  table  tablename;

      3.修改一条数据

 

      4.查询数据

           Select * from tablename;

  • 序列

           1.主要用于设置表的主键。由于主键是唯一的,为防止多人操作同一张表时出现主键重复的情况,故使用序列代替主键

           2.默认从一开始自增,不真属于任何一张表,但是逻辑上可以与表做绑定

           3.创建序列方法

                Create sequence s_绑定的表名;

          4.查询序列的当前序列

                Select        序列名.currval        from        dual;

                Currval代表当前序号    nextval代表自增以后的序列号

                 dual 代表虚表,无意义仅用来补全语法

  • 用户操作

          1.解锁用户

                 Alter  user  用户名  account   unlock;

         2.解锁用户密码(可用于重置密码)

                Alter  user  用户名  identified by  密码;

  • 函数

1.单行函数(作用于一行返回一个值)

        a)字符函数

              i.小写转大写

                   select upper('yes') from dual;           

              ii.大写转小写

                  select lower('YES') from dual;

     b).数值函数

             i.四舍五入函数,2代表保留的位数,负数代表向前保留

                  Select  round(12.35234,2)  from  dual; à12.35

           ii.舍弃函数,-3代表保留的位数

                  Select  trunc(12311.242,-3)  from dual;  à12000

    c)日期函数

  •     例1 查询emp表中所有员工入职距离现在几天

                 Select  sysdate-e.hiredate from emp e;

                   (sysdate获取当前系统时间)

  •     例2 算出明天的现在是什么时间

                   Select  sysdate+1   from  dual;

  •     例3 查询出emp表中所有员工入职距离现在几个月

               Select  months_between(sysdate,e.hiredate)  from  emp e;

                  months_between(a,b)计算a-b中的月数

  •    例4 查询出emp表中所有员工入职距离现在几年

               Select  (sysdate-e.hiredate)/365   from  emp  e;

  •    例5 查询出emp表中所有员工入职距离现在几周

               Select  round((sysdate-e.hiredate)/7)  from emp e;

                round((sysdate-e.hiredate)/7)日期四舍五入取整

d)转换函数

  •   日期转换字符串

          Select  to_char(sysdate,’fm yyyy-mm-dd hh24:mi:ss’)  from  dual;

             to_char(a,b)将a的日期转换成字符串格式

  •   字符串转换为日期

         Select to_date(‘2017-3-21 17:23:12’, ’fm yyyy-mm-dd hh24:mi:ss’) from dual;

            to_date(a,b)将字符类型的a转换成日期的格式

e)通用函数

  • 算出emp表中所有员工的年薪(月薪+奖金)

         Select  e.sal*12+nvl(e.comm,0)    from    emp e;

           nvl(a,b)一旦a里面出现空值,则转换为b,以防止进行运算时出现空值

2.多行函数

 

(更新中。。。。)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值