`
holoblog
  • 浏览: 1259350 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:19458
文章分类
社区版块
存档分类
最新评论

创建表数据字典

 
阅读更多

九、创建表
1. ORACLE常用的字段类型

ORACLE常用的字段类型有
VARCHAR2 (size) 可变长度的字符串, 必须规定长度
CHAR(size) 固定长度的字符串, 不规定长度默认值为1
NUMBER(p,s) 数字型p是位数总长度, s是小数的长度, 可存负数
最长38位. 不够位时会四舍五入.
DATE 日期和时间类型
LOB 超长字符, 最大可达4G
CLOB 超长文本字符串
BLOB 超长二进制字符串
BFILE 超长二进制字符串, 保存在数据库外的文件里是只读的.

数字字段类型位数及其四舍五入的结果
原始数值1234567.89
数字字段类型位数 存储的值
Number 1234567.89
Number(8) 12345678
Number(6) 错
Number(9,1) 1234567.9
Number(9,3) 错
Number(7,2) 错
Number(5,-2) 1234600
Number(5,-4) 1230000
Number(*,1) 1234567.9

2. 创建表时给字段加默认值 和约束条件
创建表时可以给字段加上默认值
例如 : 日期字段 DEFAULT SYSDATE
这样每次插入和修改时, 不用程序操作这个字段都能得到动作的时间

创建表时可以给字段加上约束条件
例如: 非空 NOT NULL
不允许重复 UNIQUE
关键字 PRIMARY KEY
按条件检查 CHECK (条件)
外键 REFERENCES 表名(字段名)

3. 创建表的例子
CREATE TABLE DEPT(
EPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
DNAME VARCHAR2(14),
LOC VARCHAR2(13)) ;

CREATE TABLE region(
ID number(2) NOT NULL PRIMARY KEY,
postcode number(6) default '0' NOT NULL,
areaname varchar2(30) default ' ' NOT NULL);

4. 创建表时的命名规则和注意事项
表名和字段名的命名规则:必须以字母开头,可以含符号A-Z,a-z,0-9,_,$,#
大小写不区分
不用SQL里的保留字, 一定要用时可用双引号把字符串括起来.
用和实体或属性相关的英文符号长度有一定的限制

注意事项:
建表时可以用中文的字段名, 但最好还是用英文的字段名
创建表时要把较小的不为空的字段放在前面, 可能为空的字段放在后面
建表时如果有唯一关键字或者唯一的约束条件,建表时自动建了索引
一个表的最多字段个数也是有限制的,254个.

5. 约束名的命名规则和语法
约束名的命名规则约束名如果在建表的时候没有指明,系统命名规则是SYS_Cn(n是数字)
约束名字符串的命名规则同于表和字段名的命名规则

6. 使用约束时的注意事项
约束里不能用系统函数,如SYSDATE和别的表的字段比较
可以用本表内字段的比较

想在事务处理后, 做约束的检查
SQL> alter session set constraints deferred.

7. 由实体关系图到创建表的例子 s_dept
前提条件:已有region表且含唯一关键字的字段id
SQL> CREATE TABLE s_dept
(id NUMBER(7)
CONSTRAINT s_dept_id_pk PRIMARY KEY,
name VARCHAR2(25)
CONSTRAINT s_dept_name_nn NOT NULL,
region_id NUMBER(7)
CONSTRAINT s_dept_region_id_fk REFERENCES region (id),
CONSTRAINT s_dept_name_region_id_uk UNIQUE(name, region_id));

8. 较复杂的创建表例子
SQL> CREATE TABLE s_emp
(id NUMBER(7)
CONSTRAINT s_emp_id_pk PRIMARY KEY,
last_name VARCHAR2(25)
CONSTRAINT s_emp_last_name_nn NOT NULL,
first_name VARCHAR2(25),
userid VARCHAR2(8)
CONSTRAINT s_emp_userid_nn NOT NULL
CONSTRAINT s_emp_userid_uk UNIQUE,
start_date DATE DEFAULT SYSDATE,
comments VARCHAR2(25),
manager_id NUMBER(7),
title VARCHAR2(25),
dept_id NUMBER(7)
CONSTRAINT s_emp_dept_id_fk REFERENCES s_dept(id),
salary NUMBER(11,2),
commission_pct NUMBER(4,2)
CONSTRAINT s_emp_commission_pct_ck CHECK
(commission_pct IN(10,12.5,15,17.5,20)));

9. 通过子查询建表
通过子查询建表的例子
SQL>CREATE TABLE emp_41 AS SELECT id, last_name, userid, start_date
FROM s_emp WHERE dept_id = 41;

SQL> CREATE TABLE A as select * from B where 1=2;
只要表的结构.

10. 用子查询建表的注意事项
可以关连多个表及用集合函数生成新表,注意选择出来的字段必须有合法的字段名称,且不能重复
用子查询方式建立的表,只有非空NOT NULL的约束条件能继承过来, 其它的约束条件和默认值都没有继承过来.
根据需要,可以用alter table add constraint ……再建立其它的约束条件,如primary key等.

11. Foreign Key的可选参数ON DELETE CASCADE
在创建Foreign Key时可以加可选参数:
ON DELETE CASCADE它的含义是如果删除外键主表里的内容,子表里相关的内容将一起被删除.
如果没有ON DELETE CASCADE参数,子表里有内容,父表里的主关键字记录不能被删除掉.

12. 如果数据库表里有不满足的记录存在,建立约束条件将不会成功.

13. 给表创建和删除同义词的例子
SQL> CREATE SYNONYM d_sum
2 FOR dept_sum_vu;

SQL> CREATE PUBLIC SYNONYM s_dept
2 FOR alice.s_dept;

SQL> DROP SYNONYM s_dept;

十、ORACLE里的数据字典
1. 什么是数据字典

ORACLE的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化, 体现为sys用户下所有的一些表和视图.

2. 数据字典里存了以下内容:

用户信息
用户的权限信息
所有数据对象信息表的约束条件统计分析数据库的视图等
不能手工修改数据字典里的信息.

3. 常用的数据字典
Dictionary 存放所有数据表,视图,同义词名称和解释
Dict_columns 数据字典里字段名称的和解释
Dba_users 用户 Dba_tablespaces 表空间
Dba_data_files 数据库的文件 Dba_free_space 空闲表空间
Dba_rollback_segs 回滚段
User_objects 数据对象 User_constraints 约束条件
User_sequences 序列号 User_views 视图
User_indexes 索引 User_synonyms 同义词
Session_roles 用户的角色 User_role_privs 用户的角色权限
User_sys_privs 用户的系统权限 User_tab_privs 用户的表级权限
V$session 实时用户情况 V$sysstat 实时系统统计
V$sesstat 实时用户统计 V$sgastat 实时SGA使用
V$locked_object 实时锁 V$controlfile 控制文件
V$logfile 日志文件 V$parameter 参数文件

4. 数据字典的分类
数据字典四大类别
User_ 用户下所有数据库对象
All_ 用户权限范围内所有的数据库对象
Dba_ 所有的数据库对象
V$ 统计分析数据库的视图 赋于oem_monitor权限非DBA用户也可查询V$*视图

5. 查询数据字典
SQL> select * from dictionary where instr(comments,'index')>0;
SQL> select constraint_name, constraint_type,
2 search_condition, r_constraint_name
3 from user_constraints
4 where table_name = ‘&table_name';

分享到:
评论

相关推荐

    sap 数据字典,表结构

    通过 SE11 T-code,可以查看、编辑和创建数据元素、域和表。此外,DDLS(Data Dictionary Language Structure)允许开发人员以源代码形式处理数据字典对象。 四、SAP 数据字典的维护 SAP 系统管理员和开发人员需...

    泛微E8数据字典

    例如,当需要创建新的业务流程时,管理员可以通过数据字典了解所需的数据来源,从而设计出合理的数据交互方案。对于开发者来说,数据字典可以避免在编程过程中对数据库结构的错误假设,提高代码的准确性和可靠性。 ...

    mysql数据表直接生成word文档数据字典

    创建数据字典文档有助于理解和管理复杂的数据库结构,提高团队协作效率。 2. **生成过程**: - **连接设置**:首先,你需要修改脚本或工具中的MySQL账号和密码,确保能够成功连接到数据库服务器。 - **执行脚本**...

    用友U9数据字典,数据库结构

    索引则提高了数据检索速度,数据字典会揭示哪些表和字段创建了索引。 5. 存储过程与函数:用友U9可能包含许多预定义的存储过程和函数,用于执行特定的业务逻辑。数据字典会列出它们的输入参数、返回值和功能描述。 ...

    OA系统数据字典

    开发OA系统时,数据字典的创建通常包括以下步骤: 1. **需求分析**:理解业务需求,确定需要管理的数据实体和数据项。 2. **设计数据模型**:根据需求设计数据库表结构,包括表的字段、类型、约束等。 3. **编写数据...

    从pgsql 数据库导出数据字典

    数据字典是数据库中的一个特殊集合,它包含了关于表、视图、索引、用户、权限等数据库对象的信息。对于数据库管理员和开发人员来说,数据字典是理解和维护数据库的关键资源。它提供了关于数据库设计、性能优化和故障...

    致远 协同 V8.0SP1 数据字典

    本数据字典涵盖了致远协同V8.0SP1的数据结构和格式,包括 ADDRESSBOOK 表的设计和实现。 ADDRESSBOOK 表是致远协同V8.0SP1数据字典的核心组件之一,它存储了企业级应用中的重要数据,包括人员信息、组织结构、业务...

    ecology数据字典.zip

    9. **数据字典的创建**:通常使用专门的软件工具来创建和管理数据字典,这些工具可能包含模板、预定义的数据元素,以简化创建过程。 10. **数据字典的更新**:随着研究的进行和系统的变化,数据字典需要定期更新以...

    NC57原版数据字典

    在NC57中,原版数据字典提供的是未经修改或调整的系统默认表结构,这使得用户可以直接了解系统设计的初衷和核心功能。 数据字典通常包含以下几个关键部分: 1. **表定义**:这部分详细列出NC57中的所有表格,包括...

    MySQL创建数据字典

    通过配置数据库,可以实现把数据库里面所有字段拿出来展示在HTML网页上

    JAVA中的数据字典

    6. **设计模式**:在Java中,数据字典的实现可能涉及多种设计模式,如单例模式用于确保数据字典的全局唯一性,工厂模式用于创建数据字典的实例,装饰器模式用于在不改变原有数据结构的基础上增加功能。 7. **数据库...

    SQL Server数据字典工具

    通过创建这样一个通用型数据字典,用户可以方便地查看并记录数据库的元数据,这在数据库的设计、维护和文档编制过程中至关重要。 在SQL Server中,数据字典通常是由系统视图和存储过程组成的,它们提供了对数据库...

    致远OA V8.1 数据字典

    数据字典是数据库设计中的重要组成部分,它定义了数据库中的表结构、字段类型、约束条件等信息,对于理解数据库架构及后续的数据操作至关重要。 ### 一、数据字典概述 数据字典在数据库管理中扮演着重要的角色,它...

    根据数据字典生成数据库表

    2. **创建表结构**:基于数据字典中的表名和字段名,编写SQL的CREATE TABLE语句,定义表结构,包括字段名、数据类型和约束。 3. **添加字段说明**:在数据库表的元数据中,可以为每个字段添加注释,这通常是通过...

    用友NC57数据字典

    5. **索引信息**:索引是提高数据库查询效率的重要手段,数据字典会指出哪些字段被创建了索引,以及索引的类型(主键索引、唯一索引、全文索引等)。 6. **业务逻辑**:除了基本的数据库结构信息,数据字典可能还会...

    医疗项目数据字典

    压缩包内的`hpit.sql`文件很可能是一个SQL脚本,用于在Oracle数据库中创建和填充这个医疗项目数据字典。运行这个脚本将构建所需的数据库结构,并可能插入四千多条初始数据,以便于大型医疗项目的各种查询和分析。 ...

    金蝶KIS云旗舰数据字典.zip

    6. **元数据管理**:元数据是关于数据的数据,金蝶KIS云旗舰版的数据字典也包含元数据,如数据的创建时间、修改时间、创建人、最后修改人等,这些信息对于审计追踪和版本控制至关重要。 7. **数据安全**:数据字典...

    NC65数据字典

    《NC6.5数据字典》是针对NC(Navision或Microsoft Dynamics NAV)系统的一款重要参考资料,它以帮助文件(CHM格式)的形式提供,旨在为用户和开发者提供详尽的数据库表信息和字段说明。NC系统是一款全球广泛使用的...

    疯狂Java_疯狂软件_Oracle_数据字典和创建表空间

    数据字典是由一系列视图和表组成的,这些视图和表由Oracle系统自动维护,它们提供了关于数据库结构、权限、表空间、索引和其他关键信息的查询途径。例如,`DBA_TABLES`视图展示了数据库中的所有表信息,`DBA_OBJECTS...

Global site tag (gtag.js) - Google Analytics