Oracle基本知识点

一.Oracle基础入门

    数据库管理系统软件

    网络数据库管理系统:(RDBMS:关系型数据库管理系统,以表为单位来存储数据)

    Mysql,Sql Server,Oracle
    
    DB2,Informix,Sybase....

    操作数据库中的数据都是通过SQL来实现的。

    Oracle11g:是一个Oracle数据库系统。

    1.在Oracle11g的系统下可以创建多个数据库

    2.在安装Oracle11g时会自动创建一个数据库(orcl)

    如果在Oracle11g中有数据库,需要输入对应的用户名/密码才能进入数据库。

    sys,system--->manager

    内置用户:

    (1)普通用户:scott

    (2)管理员:sys,system

    3.在使用Oracle数据库客户端工具进入数据库之前,需要启动数据库服务及监听器
        (1)启动服务
                >service.msc----进入服务面板
                >启动对应的oracle服务(在oracle中每创建一个数据库就会生成一个对应的服务;
                数据库的服务名称:oracleservice+数据库名称)
                net start|stop oracleserviceservice
        (2)启动监听器
                lsnrctl start|stop

二.Oracle数据库的结构

    1.逻辑结构
        数据库>表空间>数据段>数据区间>数据块
    
    2.物理结构
        数据文件(dbf):存储数据的

        日志文件(log):记录数据库操作的日志信息

        控制文件(ctl):记录物理文件的信息

三.怎样创建自定义用户(使用管理员来创建)

    1.创建用户
        create user user_name identified by password
        [default tablespace 表空间名称]
        分析:
            (1)创建用户时,用户使用的表空间应存在,如果不存在则要先创建表空间;
            (2)表空间也有内置的,也可以创建表空间
            (3)如果创建用户时没有指定表空间,则用户默认使用user表空间。
    2.授权给用户
        grant connect,resource to 新用户;

        撤消权限:revoke connect from 用户;

    3.登录新用户
        conn 新用户
        再输入对应的用户名和口令

    4.更改用户的表空间及密码
        alter user 用户名 identified by 密码;

        [default tablespace 表空间的名称]
    
    5.删除用户
        drop user 用户名 [cascade];
        注:如果加上cascade表示级联删除;

    6.用户锁定与解锁
        锁定:alter user 用户名 account lock;

        解锁:alter user 用户名 account unlock;

    7.创建表空间
        creat tablespace 表空间的名称 datafile 数据文件 size 大小(m);

    8.删除表空间
        drop tablespace 表空间的名称 [including datfiles and contents];

    9.修改表空间
        alter tablespace 表空间的名称 datafile 数据文件 size 大小(m);

    10.新建数据库
        dbca | DataBase Configuration Assiant;

    11.数据库的删除
        universal installer;

四.Oracle表的基本操作

    数据库对象:数据库中数据的集合

    对象的类型:表,视图,过程,索引,序列,同义词...

    数据库中表是基本的对象

    1.sql语句的分类
        (1)DDL(数据定义语言)
            作用:创建,修改,删除数据库中的对象
            create/alter/drop/truncate table

        (2)DML(数据白操纵语言):对表的数据进行操作
            select/update/delete/insert

        (3)DCL(数据控制语言):对用户进行授权与权限回收操作
            grant..to/revoke...from
            数据库的权限:系统权限,对象权限

        (4)TCL(事务控制语言)
            commit/rollback

            commit:提交事务(将缓冲区的数据写入数据文件中)

            rollback:撤消事务;
        
    2.创建表时应遵循的三大范(3NF)
            (1)1NF
                要求表的每个字段都是不可再分的,字段具有原子性。

            (2)2NF
                要求表中的每一行数据需要提供一个唯一的标识;
                表中数据不能重复的字段称为主键。

            (3)3NF
                消除传递依赖
                一个表在引用另一个表的主键字段后,不能将另外一个表的非主键字段设计到该表中

    3.Oracle的数据类型:
            字符型:char(),varchar2()

            数值型:number()

            日期型:date(),timestamp

            大对象型:cblob(大型文本数据),blob(二进制数据 如图片,视频,音频)

    4.表结构的操作

        (1)查看表结构:desc 表名;

        (2)添加字段:alter table 表名 add 字段名 类型;

        (3)修改字段名称:alter table 表名 rename column 原字段名 to 新字段名;

        (4)修改字段类型:alter table 表名 modify 字段 新的数据类型;

        (5)删除字段:alter table 表名 drop column 字段名;

        (6)更改表名称:rename 表名 to 表名;

        (7)删除表:drop table 表名;
        
        (8)向表中添加数据:insert into 表名 [(字段名,字段名2)] values (提供各个字段的数据 );

        (9)查询表中的数据:select * from 表名 [where|order by|group by]

        (10)模糊查询: select ... from 表名 where 字段 like'条件';

        (11)修改数据:update 表名 set 字段=值,字段=值,... [where];

        (12)删除数据:delete from 表名 [where];
                where可以用在select,update,delete语句中,其功能是用于筛选,where后面需要指定筛选的条件,
                筛选的条件可以有多个。

        (13)删除表中的所有数据:
                1))delete from table_name;
                2))truncate table table_name;
                3))drop table table_name;

五.约束
    
    1.约束
        (1)主键:某一个字段的值不能重复。
            建表时在主键字段的类型后加:primary key
            通过修改表结构来创建主键约束

            唯一:不能重复,主键其实就是唯一约束。
            check约束:
                如:alter table stuinfo add constraint checkage check (age>0 and age<=120);

                alter table stuinfo add constarint checksex check(sex='男' or sex='女');

        (2)外键:如果一个表中的字段引用另外一个表的主键,该字段称为外键。
            外键的数据类型与主键类型一致
            外键字段的值在主键中出现过
            alter table 表名 add constraint 约束名 约束条件;

    2.函数
        聚合函数:sum(),max(),min(),avg(),count()

        日期:sysdate()

        字符:instr(),substr(),lower(),upper(),initcat()

        转换:to_char,to_number,to_date,nvl()

    3.子查询:一个DML语句又包含查询语句
        子查询可以出现在where后,或者是from后面

    4.连接查询;多表查询
        同时从多个表中查询
        select * from dept,emp;

        (1)内连接:等值连接
        
        (2)左外连接:左边的表是主表;
            会显示主表中的所有记录和从表中符合连接条件的记录

        (3)右外连接:右边的表是主表;
        会显示主表中的所有记录和从表中符合连接条件的记录

    5.rownum,rowid(伪列)

        13 4 1: 1-4 2:5-8

        rownum:行号,rownum是从1开始的,依次递增

        作用:实现数据的分页

        select * from (select rownum rn,emp.* from emp where

        rownum<=当前页*每页的记录数) e

        where e.rn>(当前页-1)*每页的记录数

        rowid:表中每行记录的存储地址,rowid不可能重复的

        作用: 可以删除重复的数据

        delete Test where rowid not in(select min(rowid) from Test group by id) 
        delete Test ts where rowid not in (select min(rowid) 
        from Test where ts.id=id and ts.name=name);


六.数据库对象
    
    1.同义词
        在oracle数据库中的表以用户为单元组织管理,在默认情况下,一个用户无法访问另外一个
        用户创建的表,如果需要访问,需要指定表的所属者,管理员所属的对象默认是不向普通用户开放的。

        概念:就是给用户所属的对象起一个别名

        语义:create [public] synonym  同义词名称 from 用户名.对象名

        drop [public] synonym 同义词名称

    2.序列
        产生一系列数据

        语法:create sequence 序列名称

        [start with n]:指定序列的起始值

        [increment by n]:指定序列每次增长的值

        [minvalue n]:设置序列循环时的起始值

        [maxvalue n]:指定序列的最大值

        [cycle]:设置序列可以循环

        [cache n]:设置缓存的数据大小(默认是20)

        创建序列时如果没有指定任何参数,序列是从1开始,

        每次增长1,没有最大值的限制

        minvalue:用于设置序列循环的初始值,

        如没有指定循环从1开始;minvalue的值不能大于

        start with的值

        1>序列的两个属性

        currval:获取序列的当前值

        (序列在首次使用时,不能使用currval属性,因为序列还未初始化;因此首次需通过nextval属性让序列初始化)

        nextval:获取序列产生的下一个数据


    3.索引
        建立索引的作用:可以提高查询数据的速度,提升性能。

        原理:为什么建立索引可以提高查询速度呢

        如果没有建立索引的情况下,会进行全表扫描,假设一张表中1000w条数据,那查询速度就会很慢。

        一旦建立索引后,就会生成一个索引页的存储结构,在数据库索引页的结构是树的结构。

        使用场景:
            (1)表的数据量比较大(1w)
            (2)通常对经常用做查询条件的字段建立索引
            (3)索引字段不是越多越好

            使用注意:
            (1)索引字段不是越多真好
            (2)如果一个增删改操作多,查询操作少,这样的表最好不要建立索引
            (3)索引会减缓表的增删改速度
            (4)建立索引后,索引不一定会生效

        如何建立索引:
            索引字段并非越多越好,对于经常用做查询条件的字段
            对于有大量重复数据的字段,创建索引是不合理的

            建立索引:
            语法:

            create index empnameIndex on 表名(字段名)

            索引的分类:

            普通索引:create index 索引名称 on 表名(字段名)

            位图索引:create bitmap index 索引名称 on 表名(字段名)

            唯一索引:create unique index 索引名称 on 表名(字段名)

            主键就是一个特殊的惟一索引

            组合索引:create index 索引名称 on 表名(字段1,字段2)

            场景:如果经常使用多个字段同时查询

            基于函数的索引:create index 索引名称 on 表名 函数

            索引的不足:减缓了数据的增,删,改的效率

    4.视图
        作用:通过视图可以简化数据查询操作。
        语法:create view 视图名 as select ....

        注意:视图对象并不存储数据;通过查询视图得到的数据,仍然是从表中查询出来的。

        数据库字典表:通过数据字典表可以查询数据库中各种对象的信息

        user_:当前用户自己创建的该数据库对象

        all_:当前用户自己创建的该数据库对象和有权限使用的数据库对象

        dba_:只有管理员才有权限

        所有的数据库对象
            user_tables,user_synonyms,user_views,

            user_sequences,user_indexes

            user_tablespaces

            user_objects:存储数据中所能的数据库对象信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值