Oracle基础2

作者: 到底什么情况 | 来源:发表于2017-07-14 20:04 被阅读0次

    DDL数据定义语言

    表空间:是实例分配的一块空间

    语法:create tablespace demo01

    datafile ‘c:\demo01.dbf’

    size 100M

    autoextend on

    next20M;

    普通用户没有权限创建表空间,需要用system用户来创建;

    创建表空间后,还需要用管理员创建用户;

    语法:create user user1 identified by test default tablespace demo01;

    创建用户后,需要管理员对用户进行授权管理;

    语法:grant 权限名 to 用户;

    权限分类:connect(连接)、redources(普通操作权限)、dba(管理员操作权限);

    然后,测试用户登录;

    -------------------------------------------------------------------------------------------------

    Oracle数据库的数据类型:

    int 整数

    double 小数

    number(v1,v2) v1表示数字的总长度,v2表示小数位数

    char(v1) 固定长度字符

    varchar(v1) 可变字符长度

    varchar2(v1) 可变字符长度

    clob 大文本字符4G大小

    blob 二进制字符4G大小

    long 长文本2G大小

    date 年月日时分秒

    datetime 精确的年月日时分秒毫秒微秒纳秒

    ---------------------------------------------------------------------------------------------------

    Oracle的约束

    主键约束 primary key

    外键约束 foreign key

    非空约束 not null

    唯一约束 unique

    检查约束 check (如: check gender in (1,0))

    约束语法:

    constraint 约束名称 primary key(主键列);

    constraint 约束名称 foreign key(从表列)

    references 主表(主表列);//添加在从表;

    Oracle事务需要手动选择提交或回滚;

    ---------------------------------------------------------------------------------------------------

    更改表结构:

    增加字段:alter table 表名 add (列 数值类型);

    修改字段:alter table 表名 modify (列 数值类型);

    重命名字段:alter table 表名 rename colunm 旧列名 to 新列名;

    删除字段:alter table 表名 drop column 列名;

    DML数据操作语言

    插入数据:insert…into…values (…);

    修改数据:update…set…where…;

    删除数据:delete from…where…(逐条删,效率低)、truncate…(摧毁表结构,重建表结构,不能加条件);

    创建表的同时,备份表的数据

    create table emp as select * from scott.emp;

    ---------------------------------------------------------------------------------------------------

    事务:

    read commited: Oracle默认事务隔离级别;

    serializable: 序列化,逐条读;

    read only: 只读;

    事务的保存点:

    意义:为了保证执行成功的任务能够提交成功;

    语法:savepoint 保存点名称;

    事务保存点的用法:

    执行SQL语句1;

    savepoint 保存点名称;

    执行SQL语句2;

    rollback to 保存点名称;

    commit;

    ---------------------------------------------------------------------------------------------------

    Oracle数据库的几个特有对象

    1.视图:一个虚拟表,有数据,但不存放数据,来源于原始表

        意义:为了数据安全

        语法:create view emp_view as select empno,ename,job from emp…;

        查询视图:select * from emp_view;

        注意:修改视图中的数据将影响原始表的数据,要想在修改视图中的数据时,不对原始表数据进行更改,需要在创建视图时,对视图进行with read only限定;

    2.序列:是Oracle数据库生成一系列的数值(1,2,3,4…);

        意义:实现id的自增长

        属性:nextval下一个值

                  currval当前值

        语法:create sequence序列名

        示例:create sequence seq_person;

        注意:先生成再使用,即必须先调用nextval才能查询currval;

    3.索引:数据量大的情况下才使用

        意义:大幅提升查询速度(100倍左右);

        语法:create index ind_person on person(列名);

        注意:建在重复值尽量少的列上,可以加1个,也可以加多个(复合索引);

        加完之后可以直接执行查询语句;

    4.同义词:为对象起别名;

        意义:为了数据的安全,细分权限;

        语法:create synonym同义词名for scott.dept;

        用法:select * from同义词名;

    ---------------------------------------------------------------------------------------------------

    数据的导入和导出

      意义:数据的备份和还原,数据库或服务器的迁移;

    方式:命令行和PLSQL工具

    命令行:

        导出:

            全库导出:exp用户名/密码file =‘路径’ full = y;

            按用户导出:exp用户名/密码owner=用户名file =‘路径;

            按表导出:exp用户名/密码file = ‘路径’tables =表名1,表名2…;

        导入:将上述命令中的exp换成imp即可;

    PLSQL工具:

        ExportUser Object;//只能导出表结构,不能备份数据;

        ExportTables;//导出数据三种格式:dmp(Oracle数据库特有格式,必须有服务器对应的软件,通用)、sql(导出.sql文件,但不能删除原表,否则不能还原)、pde(图形化工具格式);

    相关文章

      网友评论

        本文标题:Oracle基础2

        本文链接:https://www.haomeiwen.com/subject/semohxtx.html