模式:一组数据对象的集合。在创建用户的时候就会生成一个跟用户同名的模式。
表:
达梦支持那些表?
默认的表(索引组织表),堆表,临时表,分区表,外部表等。
如何去规划表?
l 命名 字母开头 a-z,0-9,$,#,_
l 数据类型:int char varchar date clob blob number等等。
l 存储位置:自已规划表空间
l 约束(5大约束)
非空,唯一,主键,检查,外键
l 注释:comment
l 遵循3范式
案例:规划一张学员信息表
表名:stu
列:学号(id char(10)),姓名(name varchar(20) not null),性别(sex char(1)),年龄(age int),电话(tel varchar(15) not null),家庭住址(address varchar(50))
表空间:stu
约束:主键列—学号,非空—姓名,电话
备注:学员信息表
查看表的结构
sp_tabledef(模式名,表名) 表名区分大小写。
sp_tabledef('LJW','LJW');
sp_tabledef('TEST','stu')
SQL> select dbms_metadata.get_ddl('TABLE','stu','TEST');
如何查看表在那个表空间:
如何查看表的备注信息:
表上有哪些约束:
案例2:创建表的时候指定约束
唯一约束
主键约束:
SQL> create table t5(id int primary key);
检查约束:
外键约束:(一张表可有多个外键,一般表的外键是另一张表的主键)
SQL> create table t13(id int primary key,sid int foreign key references t11(sid));
案例3:对列加备注
SQL> comment on column t13.sid is '编号';
SQL> select table_name,column_name,comments from dba_col_comments where table_name='T13';
案例4:把sql脚本的数据导入到表中?
cat /home/dmdba/a.sql
insert into t1 values(2);
insert into t1 values(3);
insert into t1 values(4);
insert into t1 values(5);
insert into t1 values(6);
commit;
SQL> start /home/dmdba/a.sql
利用DTS工具进行迁移
如何去维护表?
重命名
SQL> alter table t1 rename to tt;
增加、删除列
SQL> alter table tt add name varchar(10) default 'aaa';
SQL> alter table tt drop name;
启用和禁用约束(迁移数据,最好把约束禁用,迁移完成再启用);
SQL> alter table t13 disable constraint CONS134218863;
SQL> alter table t13 enable constraint CONS134218863;
删除表
SQL> drop table tt;