您现在的位置是:群英 > 数据库 > 关系型数据库
Oracle数据库如何使用,有哪些基本知识要掌握
Admin发表于 2022-05-12 14:19:241193 次浏览
这篇文章给大家分享的是“Oracle数据库如何使用,有哪些基本知识要掌握”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“Oracle数据库如何使用,有哪些基本知识要掌握”吧。


 


本篇文章给大家带来了关于Oracle的相关知识,其中主要总结介绍了数据库使用的相关问题,包括了安装、卸载、表空间、数据类型等方面,希望对大家有帮助。

卸载

执行deinstall.xml 文件进行自动卸载操作,执行过程中输入回车或者yes,不能删除的目录在卸载执行完成后手动删除。

介绍

系统用户

sys, system (权限 sys>system>scott)

sys 要拥有系统管理员权限
system 可以直接登录
sysman 用来操作企业管理器,管理员级别
scott Oracle 创始人名字,默认密码是tiger

登录

使用system 用户登录
[username/password] [@server] [as sysdba|sysper]


注意: 如果登录本地数据库就不用 @server 了

show user 查看当前登录用户
dba_users 数据字典 (desc dba_users)

表空间概述

表空间:数据库的逻辑存储空间,一个数据库包含多个表空间
  • 永久表空间:表信息、视图、存储过程等需要永久性存储的文件
  • 临时表空间:数据库操作中间的执行过程,执行结束释放掉
  • UNDO表空间:存放数据被修改之前的数据,可以进行回滚
查看用户表空间:

管理员数据字典:dba_tablespaces、dba_users
普通用户数据字典:user_tablespaces、user_users

设置用户的默认或临时表空间
ALTER USER username DEFAULT|TEMPOPRRY TABLESPACE tablespace_name
创建永久表空间
CREATE  TABLESPACE tablespace_name DATAFILE 'XX.dbf'  SIZE 10m
创建临时表空间
CREATE TEMPORARY TABLESPACE tablespace_name TEMPFILE 'XX.dbf'  SIZE 10m
查看数据文件字典
desc dba_data_files
查看表空间文件存储路径
select file_name from dba_data_files where tablespace_name = 'tablespace_name';

修改表空间状态

设置联机或脱机状态:ALTER TABLESPACE tablespace_name ONLINE|OFFLINE;
设置只读或可读写状态:ALTER TABLESPACE tablespace_name READ ONLY|READ WRITE;

表空间修改数据文件

增加数据文件:ALTER TABLESPACE tablespace_nama ADD DATAFILE 'xx.dbf' SIZE xx;
删除数据文件:ALTER TABLESPACE tablespace_nama DROP DATAFILE 'xx.dbf'; (不能删除第一个数据文件,除非把表空间删掉)

删除表空间

DROP  TABLESPACE tablespace_name [INCLUDING CONTENTS]

数据类型

字符型

CHAR(n): MAX-2000
NCHAR(n): MAX-1000, unicode格式,存储汉字比较多
VARCHAR2(n): MAX-4000
NVARCHAR2(n): MAX-2000, unicode格式

数值型

NUMBER(p,s) : p-有效数字位数,s-保留小数位数
FLOAT(n) : 二进制数据 1~126位 (*0.30103 得到10进制数据)

日期型

DATE: 精确到秒
TIMESTAMP: 精确到毫秒

其他类型 大文件

BLOB: 4G 二进制
CLOB: 4G 字符串

管理表

创建表

添加字段

ALTER TABLE table_name add  column_name data_type;
更改字段数据类型(无数据时)
ALTER TABLE table_name MODIFY column_name data_type;

删除字段

ALTER TABLE table_name DROP COLUMN column_name;

修改字段名

ALTER TABLE table_name RENAME COLUMN column_name TO new_column_name;

修改表名

RENAME table_name TO new_table_name;

删除表

比delete速度快,删除全部数据,不删除表结构。

TRUNCATE TABLE table_name;

删除表结构

DROP TABLE table_name;

在创建时复制表

CREATE TABLE new_table AS SELECT column1,...|* FROM old_table;

在添加时复制表

INSERT INTO new_table [(column1,...)] SELECT column1,...|* FROM old_table;

约束 :定义规则和确保完整性

非空约束:数据不能是NULL值,如用户名、密码等(设置非空约束之前表中不能有空数据)
主键约束:唯一标识,不能为空,加快查询速度,自动创建索引。一张表只能设计一个,可以由多个字段构成(联合或复合主键)。




启用|禁用当前约束

DISABLE | ENABLE CONSTARINT constraint_name;

删除当前约束

ALTER TABLE table_name DROP CONSTRAINT constraint_name;
DROP PRIMARY KEY [CASCADE] ;     [CASCADE] :外键约束关系

外键约束:主表的字段必须是主键,主从表中响应的字段是同一个数据类型,从表外键字段值必须来自主表中相应字段值,或者为null值。

创建表时添加外键约束

CREATE TABLE table2 (column_name datatype REFERENCES table1(column_name));

CONSTRAINT constraint_name FOREIGN KEY(column_name) REFERENCES table_name(column_name) [ON DELETE CASCADE]


修改表时添加外键约束

ALTER TABLE table_name ADD CONSTRAINT constraint_name FOREIGN KEY(column_name) REFERENCES table_name(column_name) [ON DELETE CASCSDE] ;  
[ON DELETE CASCSDE]:级联删除

唯一约束:字段值不能重复
唯一约束和主键约束的区别
主键必须是非空,唯一约束允许有一个空值。主键在每张表中只能有一个,唯一约束在每张表中可以有多个。

修改表时添加唯一约束

ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_name);

检查约束:使表当中的值具有实际意义。

修改表时添加检查约束

ALTER TABLE table_name ADD CONSTRAINT constraint_name CHECK(column_name > 0);

查询

替换列的显示名称

设置数据格式

更改字符长度(字符类型)

== 数值类型格式(“9”代表一个数字)==




== 清除设置的格式==

COLUMN column_name CLEAR;

函数

函数的作用

  • 方便数据统计
  • 处理查询结果

函数的分类

数值函数

四舍五入: ROUND(n,[,m]) ; 省略m : m = 0 取整; m>0 : 保留小数点后m位;m<0 : 对小数点前m位四舍五入;
取整函数:CEIL(n) - 整数最大值
FLOOR(n) - 整数最小值
常用计算:ABS(n) - 绝对值
MOD(m,n) 取余数 m/n ,m和n有一个值为null,结果返回NULL
POWER(m,n) 返回m的n次幂,m和n有一个值为null,结果返回NULL
SORT(n) 平方根
三角函数:…

字符函数

大小写转换:UPPER(char)
LOWER(char)
INITCAP(char) : 首字母大写
获取子字符串:n可以省略,截取到最后;m < 0 从尾部开始;
获取字符串长度:LENGTH(char)
字符串连接:CONCAT(char1,char2) 与 || 操作符作用一样
去除字串:TRIM(c2 FROM c1) 从c1当中去除c2字符串
LTRIM(c1 [, c2]) 从头部开始去除一个c2 ,c2 为空去除左边空格
LTRIM(c1 [, c2]) 从尾部开始去除一个c2,c2 为空去除右边空格
TRIM(c1) 去除空格
替换函数:REPLACE(char,s_string [,r_string]) r_string为空默认替换为空串

日期函数

系统时间: SYDATE 默认格式 DD-MON-YY

ADD_MONTHS(date,i)
NEXT_DAY(date,char)
LAST_DAY(date)
MONTHS_BETWEEN(date1.date2) 两个日期之间间隔的月份,计算间隔多少天直接日期相减
EXTRACT(date FROM datetime)

转换函数

日期>>字符:TO_CHAR(date[,format[,params]]) date:将要转换的日期 ; format:转换的格式; params: 日期的语言,通常不写;

字符>>日期:TO_DATE(date[,format[,params]]) --------只能输出默认日期格式
数字>>字符:TO_CHAR(number[,format])
9: 显示数字并忽略前面的0
0:显示数字,位数不足,用0补齐
. 或D 显示小数点
, 或G 显示千位符
$:美元符号
S:加正负号(前后都可以)

字符>>数字:TO_NUMBER(char[,format])

decode函数(都不满足返回null)

decode(column_name, value1,result1,... , defaultValue)

你问我答:

联合索引比单索引的效率高么?
如果联合索引中的多个字段都在where谓词中出现了,则联合索引效率比单列索引高。因为通过多个条件可以从索引中过滤得到更少的记录条数,也就减少了需要回表扫描的次数,甚至可以直接在联合索引中得到所查的所有结果,则不再需要回表。
但是由于多列的联合索引肯定要比单列索引大,也就是说同样的索引需要存储的物理块要多于单列索引,所以,如果查询中只出现了联合索引中的某一列,则其效率不如单列索引。
前导列的作用?
前导列的概念是这样的,如果建立了f1,f2上的联合索引,则在查询时必须要用到f1,也就是所谓的前导列,该索引才会有效,因为索引是按照前导列排序的,如果where条件谓词中没有前导列,则需要执行索引扫描才能得到想要的结果,这种情况下其效率往往较差。
如果不需要前导列的话,reverse 这个反转又起到什么作用呢?
鉴于前面描述的前导列的概念,我们考虑如下表存储table(f1,f2);
aa 1
ab 2
ac 3
ad 4
ae 5
如果我们对表table建立f1上的普通索引,由于按照f1进行排序,所以针对where f1=ad则需要遍历所有的a开始的索引,而如果对f1建立reverse索引,则由于da只有一个,则可以更快的得到需要的结果。


关于“Oracle数据库如何使用,有哪些基本知识要掌握”的内容就介绍到这,感谢各位的阅读,相信大家对Oracle数据库如何使用,有哪些基本知识要掌握已经有了进一步的了解。大家如果还想学习更多知识,欢迎关注群英网络,小编将为大家输出更多高质量的实用文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

相关信息推荐
2022-08-13 17:51:49 
摘要:查询语句:1、“select * from 表名;”,可查询表中全部数据;2、“select 字段名 from 表名;”,可查询表中指定字段的数据;3、“select distinct 字段名 from 表名”,可对表中数据进行去重查询。
2022-10-25 18:10:24 
摘要:修改密码的方法:1、使用“win+r”键打开“运行”窗口,输入“cmd”并回车,打开cmd窗口;2、在cmd窗口中,执行“mysql -u root -p”命令并输入密码,以root身份登录MySQL数据库;3、在mysql命令模式中,执行“SET PASSWORD FOR '用户名'@'主机名' = PASSWORD ('新密码');”命令进行修改。
2021-12-09 17:47:51 
摘要:这篇文章给大家分享的是数据库管理系统的功能,包括数据定义、数据操作、数据库的运行管理、数据组织,存储与管理、数据库的保护和数据库的维护这六种,文中有简单的介绍,感兴趣的朋友接下来一起跟随小编了解看看吧。
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部