2020-12-08

Oracle入门
1.oracle的数据库和实例

数据库是物理操作系统文件或磁盘(disk)的集合,这些文件集合包括数据文件、临时文件、重做日志文件和控制文件。

实例(instance,也有叫例程的):一组Oracle后台进程/线程以及一个共享内存区,是用来管理数据库的一个实体。实例在其整个生存期中只能装载和打开一个数据库,一个数据库可以由多个实例同时访问。SID就是用于识别同一个ORACLE数据库的不同实例。

oracle数据库启动步骤是:启动实例 -》 装载数据库 -》打开数据库。oracle中打开一个数据库后执行create database语句创建数据库是不行的,它应该在启动实例后创建然后再装载打开。

2.表空间(tablespace)

表空间是一种逻辑结构,是一个或多个数据文件(物理文件)的集合,所有的数据对象都被逻辑地存放在指定的表空间中。

oracle中数据库概念有别于sql server或mysql中数据库概念,通常的做法是一个oracle中建一个数据库和一个实例,数据库下分不同的用户和表空间,用户对应不同表空间。

用户的表、视图等分属在自己的表空间内。表空间似乎倒更像mysql中的数据库概念了。

每个数据库通常包括system、sysaux和temp三个默认表空间,一个或多个临时表空间,一个撤销表空间和几个应用程序专用表空间。

表空间可以有“只读”,“读写”,“脱机”三种状态。

以下为创建名称为myts的表空间的命令示例:

create tablespace myts
datafile ‘d:\myts.dbf’ size 50m autoextend on next 10m maxsize unlimited
logging;
参数

datafile 指定数据文件,可以是多个

size 空间大小

autoextend on 表示打开自动扩展空间文件,此时需指定next值下次分配的空间大小,maxsize最大空间大小,如果是unlimited表示不限

logging 记录日志,nologging表示不记录

3.创建用户

创建用户并指定表空间

create user username identified by password
default tablespace myts;

/*给用户授予权限 */
grant connect,resource,dba to username;

4.ORDER BY子句
必须放在SELECT语句的最后
1)按照列名升序排序
select first_name from s_emp
order by first_name;
2)按照别名进行升序排序
select first_name “Name” from s_emp
order by “Name”;
3)按照表达式进行排序
select first_name,salary12 from s_emp
order by salary
12;
4)按照列号进行排序
select first_name,salary*12 from s_emp
order by 2;
列名后可以跟排序方式 默认是ASC(升序)
DESC(降序)
5.oracle管理工具

开发时使用的是免费版oracle express,这个就没有那么多自带的管理功能了。oracle命令行工具是sqlplus,另外目前所有版本都带了一个web版的管理工具。但个人还是不喜欢web版的工具,速度和体验实在不咋滴。express版的装上后有桌面有个oracle入门的快捷方式,找开即可,这个http服务占用的是8080端,与tomcat冲突

,修改端口在打开sqlplus以sys身份登录,输入以下命令:

begin
dbms_xdb.sethttpport(‘8081’);
end;
/
修改下快捷方式对应的URL,重启下oracle服务即可;

图形界面工具最流行的是PL/SQL Developer(收费),nvaicat for oracle(收费),Oracle SQL Developer(免费),三个工具功能差不多看个人喜好了。

6.oracle数据类型

char 定长字符型,默认长度为1,最大2000,布尔型可表示为char(1);

varchar2 可变长字符串,最大长度4000;

nchar,nvarchar2 与上两个类型不同的是这两个类型使用时必须指定字符集;

numbmer(precision, scale) 数字型,precision表示数字中的有效位。如果没有指定precision的话,Oracle将使用38作为精度。 scale表示数字小数点右边的位数,scale默认设置为0;

date 日期型, Oracle标准日期格式为:DD-MON-YY HH:MI:SS 通过修改实例的参数NLS_DATE_FORMAT,函数sysdate获取当前时间;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值