Oracle创建数据库与表空间和数据字典表的概念

一、oracle创建数据库

(一)第一种方法:DBCA方法

使用Oracle的Database Configuration Assistant(数据库配置助手:简称DBCA),进行配置即可。

(二)第二种方法:创建表空间

1、创建表空间

(1)语法:create tablespace 表空间名字  datafile 'E:\app\owner\oradata\orcl\monitor.dbf' size 1024M;

注意:datafile:数据文件       存储位置路径:为绝对路径\表空间名字.dbf(后缀:.dbf)    size:表示表空间的大小

 2、创建用户,并建立和表空间的映射关系 (1)语法:create user 用户名  identified by 密码  default tablespace 表空间名字;     //用于指定用户与表空间的映射关系。

注意:default   tablespace   表空间的名字    用于指定用户与表空间的映射关系。

3、给用户授予权限

(1)语法:grant dba to 用户名;

注意:dba:拥有全部特权,只有dba才可以创建数据库结构;Resource:只可以创建实体;Connect:只能登陆Oracle 。

(三)oracle使用sqlplus软件导入脚本

1、导入脚本格式:@+文件的绝对路径;(在sqlplus上)

例如:sql>@D:/test.sql

二、mysql创建数据的三种方法

mysql参考文档:https://www.cnblogs.com/jiangxiaobo/p/7089345.html

(一)第一种方法:使用create命令

1、登录mysql数据库:mysql  -u  用户名  -p;输入密码进入终端。

2、使用create命令创建数据库。

(1)语法:create   database  数据库名;

(二)第二种方法:使用mysqladmin命令

1、mysqladmin语法:mysqladmin  -u  用户名   -p   create   数据库名;

(三)第三种方法:使用脚本创建数据库

1、新建.txt文件,输入相关SQL语句,如下:

drop database if exists DBName;
create database DBName;
use DBName;

create table t_User
(
 userId int unsigned primary key not nullauto_increment,  
 name varchar(20) not null,
 pass varchar(20) not null,
 type varchar(10) not null,
 address varchar(100) not null,
 postCode varchar(6) not null,
 phoneNumber varchar(11) not null,
 email varchar(30) not null
);

2、保存并修改后缀为:文件名.sql;

3、登录数据库,使用source命令执行脚本;

(1)source语法:source 文件路径.sql;

三、oracle常用命令语法

(一)复制表

1、第一种方法:create  table 新表 as select * from 旧表;

注意:一定不要落下as。

2、第二种方法:先创建旧表的表结构,在导入数据。

(1)create table 新表  as select * from 旧表   where   1=0;

(2)insert into 新表  select *  from  旧表;

注意:其中使用insert into  select需要建立一个新表来接受;

3、select  into的用法:

而select into  from 要求目标表不存在,在插入数据时,会自动创建目标表。

select into from在sqlplus中会报错,提示缺失关键字,原因:不能单独作为一条sql语句执行,一般在PL/SQL程序块(block)中使用。可使用前两个语句。

使用select 数据库字段 into 变量名; 语句给变量赋值,即用该语句给定义的变量赋数据库表中字段的值。

例如:select ename into test from emp where empno=7839;

注意:使用select into语句赋值,查询结果应该是只有一个,因为变量只能接受一个结果。

(二)分页查询

select num,empno,ename from (select rownum num,empno,ename from emp_zyx where rownum <10) where num>5;

(三)查询数据库名

1、select name from v$database;
2、show parameter db;

(四)查找数据库中全部表名;

1、select table_name from user_tables;

(五)删除用户和数据库(删除数据库,通过删除表空间即可实现)

1、删除User

drop user username cascade;(cascade:表示该用户创建了表或者索引)

2、删除表空间(tablespace)(要删除数据文件,只能删除其所属的表空间)

drop  tablespace  tablespacename including contents and datafiles;

3、删除空的表空间,但是不包含物理文件
drop tablespace tablespace_name;
4、删除非空表空间,但是不包含物理文件
drop tablespace tablespace_name including contents;
5、删除空表空间,包含物理文件
drop tablespace tablespace_name including datafiles;
6、删除非空表空间,包含物理文件
drop tablespace tablespace_name including contents and datafiles;
7、如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTS
drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;

四、数据库和表空间

       表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象(就是用户的表)都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。

(一)表空间

1、用户的表都存放在表空间中,一个数据库可以包含多个表空间(不同于其他数据库的概念),创建数据库就是创建表空间。

2、查看所有的表空间: select tablespace_name from dba_tablespaces;

3、查看所有的表空间: select tablespace_name from dba_tablespaces;

4、未使用的表空间大小 (单位是M) select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;

5、查看所有表空间大小(单位是M)

select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;

(二)数据库

 数据库是数据的集合,包括数据文件(ora,dbf),控制文件,重做日志文件即一些物理 上的文件。 数据库的用户数据存放在数据文件中,数据文件存放在表空间中,一个表空间可以包含多个数据文件,但是一个数据文件只能属于一个表空间。

(三)数据库字典      

 1、  数据字典是oracle存放有关数据库信息的地方,几乎所有的系统信息和对象信息都可在数据字典中进行查询。数据字典是oracle数据库系统的信息核心,它是一组提供有关数据库信息的表和视图的集合,这些表和视图是只读的。

 2、 数据字典的结构是基表和视图,记录了数据库的系统信息, 其所有者为SYS。它由内部RDBMS(X$)表,数据字典表($),动态性能视图(v$)和数据字典视图(all_,user_,dba_)组成。

3、Oracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。

4、数据字典中的表时不能直接被访问的,但是可以访问数据字典中的视图。他们分为三类:三个前缀够成:user_*、 all_*、 dba_*。分别如下:

(1)user_对象视图:描述了当前用户schema下的对象;

(2)all_对象视图:描述了 当前用户有权限访问到的所有对象的信息;

(3)dba_对象视图:描述了包含所有数据库对象的信息;

注意:在创建数据库时会运行两个脚本。先运行catalog.sql,该脚本用来创建数据库的内部字典表。然后再运行catrpoc.sql,该脚本用来创建数据库内建的存储过程、包等pl\sql对象。如果我们是使用dbca来创建数据库,则dbca会自动调用这两个脚本。否则在执行create database命令来创建时,则需要手工运行这两个脚本。

5、数据字典视图非常多,我们无法一一记住,但是有个视图,我们必须知道,那就是dictionary视图,该视图里记录了所有的数据字典视图的名称。所以当我们需要查找某个数据字典而又不知道这个信息在哪个视图里的时候,就可以在dictionary视图里找。该视图还有个同名词dict。

6、动态性能视图,就是指将内存里的数据或控制文件里的数据以表的形式展现出来。为了能够让我们更好的管理数据库的性能,所以将内存里的活动情况以表的形式展现出来。只要数据库还在运行,就会不断更新动态性能视图。一旦数据库关闭或崩溃,动态性能视图里的数据就会全部丢失,下次重启时则会重新计算。就像所有的数据字典的名词都存在dictionary里一样,v$fixed_table里存放了所有的动态性能视图的名称。所有的动态性能的属主都是sys,且都以v$开头,创建同名词时则都以v$开头。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一位远方的诗人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值