在数据库培训学习中,学习了外部表,将介绍达梦数据库外部表的概念,并分享快速创建外部表的实践。除去通过命令创建外部表,还有更快速办法,就是可以命令结合图形方式创建外部表。
外部表,是指不存在于数据库中的表。通过向达梦数据库定义描述外部表的元数据,可以把一个操作系统文件当成一个只读的数据库表,对外部表将像普通定义的表一样访问。为方便理解请参考下面示意图:
外部表的数据存储在操作系统文件中,建立外部表的时候,不会产生段,页簇等存储结构,只有与表相关的定义放在数据字典中。在数据库中不能对外部表的内容进行修改,不能对外部表建立主键,索引,外键。不需要将外部表的数据载入到数据库中来,通过SQL解码器来访问外部表。
外部表创建和访问主要步骤如下:
1.创建相关操作系统目录和外部文件;
2.在数据库中定义外部表目录;
3.根据需要定义控制文件(可选);
4.在数据库中创建外部表定义;
5.通过数据库访问外部表。
下面将根据上面介绍创建访问步骤,演示两种创建外部表方式。
创建系统目录:
mkdir /dm8/ext
在/dm8/ext/目录里编辑外部文件wb.txt:
[dmdba@OwumVYU4IUuZaxxP-0003 ext]$ pwd
/dm8/ext
[dmdba@OwumVYU4IUuZaxxP-0003 ext]$ vi wb.txt
1|1|1
3|3|3
5|5|5
7|7
[dmdba@OwumVYU4IUuZaxxP-0003 ext]$
数据库中定义外部表目录:
SQL> create directory extdir as '/dm8/ext';
操作已执行
已用时间: 6.701(毫秒). 执行号:1224.
SQL>
通过管理工具图形创建外部表TEST.EXT1,根据外部文件wb.txt内容,定义外部表3个列,并且定义分隔符为'|',选择定义好的数据文件目录名【EXTDIR】,选择数据文件名【wb.txt】:
查看当前定义的外部表TEST.EXT1生成的DDL定义:
生成的外部表DDL如下:
create external table "TEST"."EXT1"
(
"C1" INT,
"C2" INT,
"C3" INT
) from datafile default directory "EXTDIR" location ('wb.txt') parms(fields delimited by '|');
最后点击【确定】创建外部表TEST.EXT1,并进行查询:
SQL> select * from test.ext1;
行号 C1 C2 C3
---------- ----------- ----------- -----------
1 1 1 1
2 3 3 3
3 5 5 5
4 7 7 NULL
已用时间: 1.323(毫秒). 执行号:1225.
SQL>
为不影响下面测试删除当前定义的外部目录和表定义:
SQL> drop directory extdir;
操作已执行
已用时间: 25.866(毫秒). 执行号:1226.
SQL> drop table test.ext1;
操作已执行
已用时间: 20.556(毫秒). 执行号:1227.
SQL>
创建系统目录:
mkdir /dm8/ext
在目录/dm8/ext里编辑外部文件wb2.txt:
[dmdba@OwumVYU4IUuZaxxP-0003 ext]$ pwd
/dm8/ext
[dmdba@OwumVYU4IUuZaxxP-0003 ext]$ vi wb2.txt
1,ABC
2,DEF
3,FPF
[dmdba@OwumVYU4IUuZaxxP-0003 ext]$
创建外部目录定义:
SQL> create directory extdir as '/dm8/ext';
操作已执行
已用时间: 6.543(毫秒). 执行号:1228.
SQL>
在目录/dm8/ext里编辑外部文件wb2.ctl:
[dmdba@OwumVYU4IUuZaxxP-0003 ext]$ vi wb2.ctl
LOAD DATA
INFILE 'wb2.txt' INTO TABLE TEST.EXT2
FIELDS ','
[dmdba@OwumVYU4IUuZaxxP-0003 ext]$
通过管理工具图形方式创建外部表TEST.EXT2:
查看生成该外部表的具体DDL定义:
create external table "TEST"."EXT2"
(
"ID" INT,
"NAME" CHAR(20)
) from default directory "EXTDIR" location ('wb2.ctl');
点击【确定】创建外部表TEST.EXT2,查看外部表数据:
SQL> select * from test.ext2;
行号 ID NAME
---------- ----------- --------------------
1 1 ABC
2 2 DEF
3 3 FPF
已用时间: 2.054(毫秒). 执行号:1229.
SQL>
通过命令结合图形以【数据文件目录方式】和【控制文件目录方式】两种方式验证了快速创建外部表,在达梦认证考试中可通过上面方法快速创建外部表来提高答题效率和节约考试时间。
文章
阅读量
获赞