oracle数据库中一个数据库和一个表空间是等同的吗?

oracle数据库中一个数据库和一个表空间是等同的吗?,第1张

oracle和sql有很大的不同

oracle数据库必须要有表空间 如果没有指定 就是默认的表空间

你可以理解为表空间就是给数据库存放东西的地方

一个表空间可以有多个数据库

在oracle中,表空间是存储概念上的,建立表空间需要有对应的数据文件,数据文件建立好之后直接会把一定的磁盘空间分配给它,这样可以对数据库的存储空间进行有效的管理。然后在建表的时候指定对应的表空间,该表的数据就会都存在表空间对应的数据文件上,和Mysql那种每个表一个文件的方式比起来,存储的可控性更强。

oracle和mysql不同,不存在mysql中那种数据库的概念,而是实例的概念,当然,也可以在实例里建立不同的user来区分,每个user对应的表都是相对独立的,比如两个user下可以分别建同名的表,但又可以通过授权来交互使用。

建数据库是在安装oracle之后执行dbca建立实例。

建表空间语句是 CREATE TABLESPACE TBS_DEFAULT DATAFILE

'/app/oradata/sys_tbs/tbs_default.dbf' size 500M

LOGGING

EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO

/

这里主要是需要指定对应的datafile。

建表基本都一样,例如

create table (col_1 number(8),col_2 char(2),col_3 date)

tablespace tbs_default

/

数据库就不要删除了,这方面你看下关于user *** 作的语句就可以了。

drop tablespace tbs_name including contents and datafiles--删除表空间及数据文件

drop table tab_name purge-- 删除表。

首先,一个表只允许有一个自增列,所以你这个要用触发器来完成第二个字段的自增

测试表

  CREATE TABLE tb(  

  id int IDENTITY (1,1) NOT NULL,   

  SysCode   int,

  name varchar(10))

创建触发器

create trigger t_tb

on tb for insert

as

declare @SysCode int

declare @id int

select @id=id from inserted

update tb set SysCode=1000+@id where id=@id

测试代码

insert into tb(name) values ('aa')

结果截图


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9797922.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存