数据库基本概念及字段类型详解.pptx
目录主流数据库数据库一些概念123字段类型4SQL 命令第1页/共11页主流数据库第2页/共11页数据库一些概念为了在数据库中存放数据,首先定义了表(table)。表是数据的集合,由行和列组成。当一个表很大的时候(包含成千上万的行),为了提升数据检索的速度,Oracle引入了索引(index)。索引是实现数据高效检索的基础,也是 SQL 调优的最基本手段。表中包含行,不同的行代表不同的实体。行不允许相同,否则无法代表不同实体,这就是实体的完整性约束。为了实现完整性约束,Oracle引入了序列(sequence):序列用来在整个数据库范围内产生唯一的顺序编号。关系数据库的基本目的是在不同的用户间共享数据。表级别的授权无法实现行粒度和列粒度的权限管理,为此Oracle引入了视图(view)。视图对表的行和列进行帅选,实现了行粒度和列粒度的权限管理目的。有时我们要频繁地从多个表检索数据。各个表的数据默认存放到不同的段中,这意味着要到不同的数据块获取数据。为了加快检索速度,Oracle把若干个表的行存放到相同的数据块,这就是簇(cluster)。簇提高了多表关联的性能,Oracle内部的数据字典表设计就用到了簇。有了表、索引、序列和视图之后,Oracle 把这些对象聚合在一起,形成数据库(database)。表和索引之类的东西最终会存放到磁盘,其存在形式就是数据库文件。第3页/共11页数据库一些概念让我们思考一个问题:如果定义表时,直接把表关联到文件会有什么问题?答案很明显:如果数据文件位置发生变化,就得修改表的定义。为了解决此问题,Oracle 引入了表空间(tablespace)。表空间是多个文件的集合,实现了数据库的逻辑表现与数据存储的分离,使之更易于管理。大机构的数据很多,通常会分散到不同的数据库中。为了在不同数据库之间访问彼此的数据,Oracle 引入了数据库链接(database link)。数据库链接是不同数据库间互相访问的通道。如果应用程序访问了多个数据库,当某个库的部署发生变动时,如何避免对应用程序的代码做更改呢?和表空间类似,Oracle 引入了同义词(synonym)来解决该问题。同义词是模式对象的别名,提供了数据独立性和位置透明性的功能。第4页/共11页Oracle 将 SQL 命令按功能分为六大类:(1)数据定义语言命令(Data Definition Language commands,简称 DDL 命令)(2)数据操纵语言命令(Data Manipulation Language commands,简称 DML 命令)(3)事务控制命令(Transaction Control commands)(4)会话控制命令(Session Control commands)(5)系统控制命令(System Control commands)(6)嵌入式 SQL 命令(Embedded SQL commands)SQL 命令第5页/共11页DDL 命令又分为如下细类:对象的创建、修改与删除相关命令(create,alter,and drop objects)授权、权限回收以及角色管理相关命令(grant and revoke privileges and roles)表、索引及簇统计信息分析命令(analyze information on a table,index,or cluster)数据库安全审计相关命令(establish auditing options)数据库对象备注相关命令(add comments to the data dictionary)SQL 命令第6页/共11页6 个 DML 命令:INSERT、UPDATE、DELETE 三个命令用于插入、修改及删除表中的行;SELECT 命令用于从表中检索行;LOCK TABLE 命令以显式的方式给表和视图加锁;EXPLAIN PLAN 命令用于查看 Oracle 优化器预期的执行计划。剩下 5 个命令是事务控制和会话控制命令:(1)COMMIT、ROLLBACK、SAVEPOINT 和 SET TRANSACTION 这 4 个命令用来控制事务(2)ALTER SESSION 命令用于控制会话。SQL 命令第7页/共11页特性精度范围字符型char定长字符数据1到8000varchar变长字符数据1到8000text可变长度的非Unicode数据1到231-1(2,147,483,647)ncharUnicode数据类型的字符1到4000nvarchar1到4000ntext整型bit1或0的整数数据tinyint1字节从0到255的整数数据smallint2字节从-215(-32,768)到215-1(32,767)的整数数据int4字节从-231(-2,147,483,648)到231-1(2,147,483,647)的整型数据bitint从-263(-9223372036854775808)到263-1(9223372036854775807)的整型数据数值型decimal这两种数据类型是等效的。都有两个参数:p(精度)和s(小数位数)。p指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从 1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。numeric日期型smalldatetime从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟,4字节datetime从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒,8字节浮点数字型float从-1.79308到1.79308之间的浮点数字数据real从-3.4038到3.4038之间的浮点数字数据。在SQL Server中,real的同义词为float(24)常用字段类型详解第8页/共11页在物理表结构中,存在一类特殊的字段:系统字段(SEQ、CTIME、MTIME、ISVALID、GENIUS_UID、)这些字段在数据字典和技术文档中是不存在的,统一由DBA在创建物理表时按统一的标准添加,并设置相关函数生成。在分析数据时,经常会用到系统字段,策划必须掌握其用途。SEQ:中文含意为记录唯一号或记录序列号(sequence),每个表中每条记录都有唯一序列号。同时可用于验证记录通讯的完整性(与客户接收端SEQ是一一对应的),因为其可以标记记录的唯一性,且一旦产生即不可修改,在采集表中也会用于作为主子表关联时的主表关联标记。CTIME:中文名为“记录创建时间(create time)”,可以用来标记记录的创建时间,便于数据分析。MTIME:中文名为“记录修改时间(modify time)”,同时还可以理解为记录通讯时间,由于当前数据库都是一发生修改或调整即主动对外通讯。巨灵数据表系统字段第9页/共11页ISVALID:中文名为“有效性”,取值只有两种:0-无效,1-有效,一般默认为有效。新增记录会自动默认为有效性,当采集员、或质检员或策划确认记录确属无效时,可以通过录入平台和请DBA将相关记录设置为无效记录。在作数据分析或加工时,应把无效记录剔除。GENIUS_UID:中文名为“巨灵专用通讯标记”,记录通讯的唯一标记,当记录产生时,会根据表中GENIUS_UID对应函数值规则赋予一个唯一值,当记录发生修改时,GENIUS_UID也会随之发生变化,按从小到大序列生成,而在通讯触发时,如果要触发的记录数据很大,即根据GENIUS_UID设定通讯频率,按从大到小通讯即可保障及时性。巨灵数据表系统字段第10页/共11页感谢您的观看。第11页/共11页