文档库 最新最全的文档下载
当前位置:文档库 › Mysql字段数据类型长度及表类型详细说明

Mysql字段数据类型长度及表类型详细说明

Mysql字段数据类型长度及表类型详细说明
Mysql字段数据类型长度及表类型详细说明

mysql字段数据类型、长度及表类型说明

一、MySQL 字段数据类型/长度

1、数值类型

列类型需要的存储量

TINYINT 1 字节

SMALLINT 2 个字节

MEDIUMINT 3 个字节

INT 4 个字节

INTEGER 4 个字节

BIGINT 8 个字节

FLOAT(X) 4 如果X < = 24 或8 如果25 < = X < = 53

FLOAT 4 个字节

DOUBLE 8 个字节

DOUBLE PRECISION 8 个字节

REAL 8 个字节

DECIMAL(M,D) M字节(D+2 , 如果M < D)

NUMERIC(M,D) M字节(D+2 , 如果M < D)

MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且MySQL 允许我们指定数值字段中的值是否有正负之分或者用零填补。

表列出了各种数值类型以及它们的允许范围和占用的内存空间。

类型大小范围(有符号)范围(无符号)用途TINYINT 1 字节(-128,127) (0,255) 小整数值SMALLINT 2 字节(-32 768,32 767) (0,65 535) 大整数值

MEDIUMINT 3 字节(-8 388 608,8 388

607)

(0,16 777 215) 大整数值

INT或INTEGER 4 字节

(-2 147 483 648,2

147 483 647)

(0,4 294 967 295) 大整数值

BIGINT 8 字节(-9 233 372 036 854

775 808,9 223 372

036 854 775 807)

(0,18 446 744 073 709 551

615)

极大整数值

FLOAT 4 字节(-3.402 823 466

E+38,1.175 494 351

E-38),0,(1.175 494

351 E-38,3.402 823

466 351 E+38)

0,(1.175 494 351 E-38,

3.402 823 466 E+38)

单精度

浮点数值

DOUBLE 8 字节(1.797 693 134 862

315 7 E+308,2.225

073 858 507 201 4

E-308),0,(2.225 073

858 507 201 4

E-308,1.797 693 134

862 315 7 E+308)

0,(2.225 073 858 507 201

4 E-308,1.797 693 134 862

315 7 E+308)

双精度

浮点数值

DECIMAL 对

DECIM

AL(M,

D) ,如

M>D,

为M+2

否则为

D+2

依赖于M和D的值依赖于M和D的值小数值

INT 类型

在MySQL 中支持的5 个主要整数类型是TINYINT,SMALLINT,MEDIUMINT,INT 和BIGINT。这些类型在很大程度上是相同的,只有它们存储的值的大小是不相同的。

MySQL 以一个可选的显示宽度指示器的形式对SQL 标准进行扩展,这样当从数据库检索一个值时,可以把这个值加长到指定的长度。例如,指定一个字段的类型为INT(6),就可以保证所包含数字少于 6 个的值从数据库中检索出来时能够自动地用空格填充。需要注意的是,使用一个宽度指示器不会影响字段的大小和它可以存储的值的范围。

万一我们需要对一个字段存储一个超出许可范围的数字,MySQL 会根据允许范围最接近它的一端截短后再进行存储。还有一个比较特别的地方是,MySQL 会在不合规定的值插入表前自动修改为0。

UNSIGNED(未签署)修饰符规定字段只保存正值。因为不需要保存数字的正、负符号,可以在储时节约一个“位”的空间。从而增大这个字段可以存储的值的范围。

ZEROFILL(零填充)修饰符规定0(不是空格)可以用来真补输出的值。使用这个修饰符可以阻止MySQL 数据库存储负值。

FLOAT、DOUBLE 和DECIMAL 类型

MySQL 支持的三个浮点类型是FLOAT、DOUBLE 和DECIMAL 类型。FLOAT 数值类型用于表示单精度浮点数值,而DOUBLE 数值类型用于表示双精度浮点数值。

与整数一样,这些类型也带有附加参数:一个显示宽度指示器和一个小数点指示器。比如语句FLOAT(7,3) 规定显示的值不会超过7 位数字,小数点后面带有3 位数字。

对于小数点后面的位数超过允许范围的值,MySQL 会自动将它四舍五入为最接近它的值,再插入它。

DECIMAL 数据类型用于精度要求非常高的计算中,这种类型允许指定数值的精度和计数方法作为选择参数。精度在这里指为这个值保存的有效数字的总个数,而计数方法表示小数点后数字的位数。比如语句DECIMAL(7,3) 规定了存储的值不会超过7 位数字,并且小数点后不超过3 位。

忽略DECIMAL 数据类型的精度和计数方法修饰符将会使MySQL 数据库把所有标识为这个数据类型的字段精度设置为10,计算方法设置为0。

UNSIGNED(未签署) 和ZEROFILL(零填充)修饰符也可以被FLOAT、DOUBLE 和DECIMAL 数据类型使用。并且效果与INT 数据类型相同。

2、日期和时间类型

列类型需要的存储量

DA TE 3 个字节

DA TETIME 8 个字节

TIMESTAMP 4 个字节

TIME 3 个字节

YEAR 1 字节

在处理日期和时间类型的值时,MySQL 带有 5 个不同的数据类型可供选择。它们可以被分成简单的日期、时间类型,和混合日期、时间类型。根据要求的精度,子类型在每个分类型中都可以使用,并且MySQL 带有内置功能可以把多样化的输入格式变为一个标准格式类型大小范围格式用途

DA TE 3字节1000-01-01/9999-12-31 YYYY-MM-

DD

日期值

TIME 3字节'-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间

YEAR 1字节1901/2155 YYYY 年份值

DA TETIME 8字节1000-01-01

00:00:00/9999-12-31

23:59:59

YYYY-MM-

DD

HH:MM:SS

混合日期和时

间值

TIMESTAMP 8字节1970-01-01 00:00:00/2037

年某时

YYYYMMD

D HHMMSS

混合日期和时

间值,时间戳

DATE、TIME 和TEAR 类型

MySQL 用DATE 和TEAR 类型存储简单的日期值,使用TIME 类型存储时间值。这些类型可以描述为字符串或不带分隔符的整数序列。如果描述为字符串,DA TE 类型的值应该使用连字号作为分隔符分开,而TIME 类型的值应该使用冒号作为分隔符分开。

需要注意的是,没有冒号分隔符的TIME 类型值,将会被MySQL 理解为持续的时间,而不是时间戳。

MySQL 还对日期的年份中的两个数字的值,或是SQL 语句中为TEAR 类型输入的两个数字进行最大限度的通译。因为所有TEAR 类型的值必须用 4 个数字存储。MySQL 试图将 2 个数字的年份转换为 4 个数字的值。把在00-69 范围内的值转换到2000-2069 范围内。把70-99 范围内的值转换到1970-1979 之内。如果MySQL 自动转换后的值并不符合我们的需要,请输入4 个数字表示的年份。

DATETIME 和TIMESTAMP 类型

除了日期和时间数据类型,MySQL 还支持DA TEYIME 和TIMESTAMP 这两种混合类型。它们可以把日期和时间作为单个的值进行存储。这两种类型通常用于自动存储包含当前日期和时间的时间戳,并可在需要执行大量数据库事务和需要建立一个调试和审查用途的审计跟踪的应用程序中发挥良好作用。

如果我们对TIMESTAMP 类型的字段没有明确赋值,或是被赋与了null 值。MySQL 会自动使用系统当前的日期和时间来填充它。

3、字符串类型

列类型需要的存储量

CHAR(M) M字节,1 <= M <= 255

V ARCHAR(M) L+1 字节, 在此L <= M和1 <= M <= 255

TINYBLOB, TINYTEXT L+1 字节, 在此L< 2 ^ 8

BLOB, TEXT L+2 字节, 在此L< 2 ^ 16

MEDIUMBLOB, MEDIUMTEXT L+3 字节, 在此L< 2 ^ 24

LONGBLOB, LONGTEXT L+4 字节, 在此L< 2 ^ 32

ENUM('value1','value2',...) 1 或2 个字节, 取决于枚举值的数目(最大值65535)

SET('value1','value2',...) 1,2,3,4或8个字节, 取决于集合成员的数量(最多64个成员)MySQL 提供了8 个基本的字符串类型,可以存储的范围从简单的一个字符到巨大的文本块或二进制字符串数据。

类型大小用途

CHAR 0-255字节定长字符串

V ARCHAR 0-255字节变长字符串

TINYBLOB 0-255字节不超过255 个字符的二进制字符串

TINYTEXT 0-255字节短文本字符串

BLOB 0-65 535字节二进制形式的长文本数据

TEXT 0-65 535字节长文本数据

MEDIUMBLOB 0-16 777 215字节二进制形式的中等长度文本数据

MEDIUMTEXT 0-16 777 215字节中等长度文本数据

LOGNGBLOB 0-4 294 967 295字节二进制形式的极大文本数据

LONGTEXT 0-4 294 967 295字节极大文本数据

CHAR 和V ARCHAR 类型

CHAR 类型用于定长字符串,并且必须在圆括号内用一个大小修饰符来定义。这个大小修饰符的范围从0-255。比指定长度大的值将被截短,而比指定长度小的值将会用空格作填补。

CHAR 类型可以使用BINARY 修饰符。当用于比较运算时,这个修饰符使CHAR 以二进制方式参于运算,而不是以传统的区分大小写的方式。

CHAR 类型的一个变体是V ARCHAR 类型。它是一种可变长度的字符串类型,并且也必须带有一个范围在0-255 之间的指示器。CHAR 和V ARCHGAR 不同之处在于MuSQL 数据库处理这个指示器的方式:CHAR 把这个大小视为值的大小,不长度不足的情况下就用空格补足。而V ARCHAR 类型把它视为最大值并且只使用存储字符串实际需要的长度(增加一个额外字节来存储字符串本身的长度)来存储值。所以短于指示器长度的V ARCHAR 类型不会被空格填补,但长于指示器的值仍然会被截短。

因为V ARCHAR 类型可以根据实际内容动态改变存储值的长度,所以在不能确定字段需要多少字符时使用V ARCHAR 类型可以大大地节约磁盘空间、提高存储效率。

V ARCHAR 类型在使用BINARY 修饰符时与CHAR 类型完全相同。

TEXT 和BLOB 类型

对于字段长度要求超过255 个的情况下,MySQL 提供了TEXT 和BLOB 两种类型。根据存储数据的大小,它们都有不同的子类型。这些大型的数据用于存储文本块或图像、声音文件等二进制数据类型。

TEXT 和BLOB 类型在分类和比较上存在区别。BLOB 类型区分大小写,而TEXT 不区分大小写。大小修饰符不用于各种BLOB 和TEXT 子类型。比指定类型支持的最大范围大的值将被自动截短。

3、复合类型

MySQL 还支持两种复合数据类型ENUM 和SET,它们扩展了SQL 规范。虽然这些类型在技术上是字符串类型,但是可以被视为不同的数据类型。一个ENUM 类型只允许从一个集合中取得一个值;而SET 类型允许从一个集合中取得任意多个值。

ENUM 类型

ENUM 类型因为只允许在集合中取得一个值,有点类似于单选项。在处理相互排拆的数据时容易让人理解,比如人类的性别。ENUM 类型字段可以从集合中取得一个值或使用null 值,除此之外的输入将会使MySQL 在这个字段中插入一个空字符串。另外如果插入值的大小写与集合中值的大小写不匹配,MySQL 会自动使用插入值的大小写转换成与集合中大小写一致的值。

ENUM 类型在系统内部可以存储为数字,并且从 1 开始用数字做索引。一个ENUM 类型最多可以包含65536 个元素,其中一个元素被MySQL 保留,用来存储错误信息,这个错误值用索引0 或者一个空字符串表示。

MySQL 认为ENUM 类型集合中出现的值是合法输入,除此之外其它任何输入都将失败。这说明通过搜索包含空字符串或对应数字索引为0 的行就可以很容易地找到错误记录的位置。

SET 类型

SET 类型与ENUM 类型相似但不相同。SET 类型可以从预定义的集合中取得任意数量的值。并且与ENUM 类型相同的是任何试图在SET 类型字段中插入非预定义的值都会使MySQL 插入一个空字符串。如果插入一个即有合法的元素又有非法的元素的记录,MySQL 将会保留合法的元素,除去非法的元素。

一个SET 类型最多可以包含64 项元素。在SET 元素中值被存储为一个分离的“位”序列,这些“位”表示与它相对应的元素。“位”是创建有序元素集合的一种简单而有效的方式。并且它还去除了重复的元素,所以SET 类型中不可能包含两个相同的元素。

希望从SET 类型字段中找出非法的记录只需查找包含空字符串或二进制值为0 的行。

二、MySQL 数据表类型说明

1. MyISAM 表MyISAM 存储格式自版本3.23 以来是MySQL 中的缺省类型,它有下列特点:

■ 如果操作系统自身允许更大的文件,那么文件比ISAM 存储方法的大。

■ 数据以低字节优先的机器独立格式存储。这表示可将表从一种机器拷贝到另一种机器,即使它们的体系结构不同也可以拷贝。

■ 数值索引值占的存储空间较少,因为它们是按高字节优先存储的。索引值在低位字节中变化很快,因此高位字节更容易比较。

■ AUTO_INCREMENT 处理比ISAM 的表更好。

■ 减少了几个索引限制。例如,可对含NULL 值的列进行索引,还可以对BLOB 和TEXT 类型的列进行索引。

■ 为了改善表的完整性检查,每个表都具有一个标志,在myisamchk 对表进行过检查后,设置该标志。可利用myisamchk - fast 跳过对自前次检查以来尚未被修改过表的检查,这样使此管理任务更快。表中还有一个指示表是否正常关闭的标志。如果服务器关闭不正常,或机器崩溃,此标志可用来检测出服务器起动时需要检查的表。

2. ISAM 表ISAM 存储格式是MySQL

3.23 所用的最旧的格式,但当前仍然可用。通常,相对于ISAM 表来说,宁可使用MyISAM 表,因为它们的限制较少。对ISAM 表的支持随着此存储格式被MyISAM 表格式所支持很有可能会逐渐消失。

3. HEAP 表HEAP 存储格式建立利用定长行的内存中的表,这使表运行得非常快。在服务器停止时,它们将会消失。在这种意义上,这些表是临时的。但是,与用CREATE TEMPORARY TABLE 所创建的临时表相比,HEAP 表是其他客户机可见的。HEAP 表有几个限制,这些限制对MyISAM 或ISAM 表没有,如下所示:

■ 索引仅用于“=”和“< = >”比较。

■ 索引列中不能有NULL 值。

■ 不能使用BLOB 和TEXT 列。

■ 不能使用AUTO_INCREMENT 列。

数据库及基本表的建立

一、实验目的 1、掌握SQL SERVER的查询分析器和企业管理器的使用; 2、掌握创建数据库和表的操作; 二、实验内容和要求 1、练习使用SQL语句、企业管理器(Enterprise Manager)创建数据库; 2、练习使用SQL语句、企业管理器(Enterprise Manager)创建数据库表; 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 2000/xp; 2.数据库管理系统:SQL sever 2005; 四、实验方法、步骤及结果测试 题目1、创建数据库“学生情况”: 实现代码及截图: SQL语句 create database学生情况 题目2、将数据库“学生情况”改名为“student” SQL语句 alter database学生情况modify name=student 题目3、创建基本表 SQL语句 S表: use Student create table S (Sno char(10) primary key, Sname char(10) not null, Ssex char(2) check(Ssex='男'or Ssex='女'), Ssp char(20), Sdept char(20), Sbirth datetime, Sfrom varchar(30), Schg char(10), Spa char(8) default('团员'), Snation char(8) default('汉族'), ); C表: use Student

create table C (Cno char(10) primary key, Cname char(10) unique, Tname char(8), Cdept char(20), CCredit real check(CCredit>=0and CCredit<=20), ); SC表: use Student create table Sc (Sno char(10), Cno char(10), Grade real check(Grade>=0and Grade<=100), Remark varchar(50), primary key(Sno,Cno), foreign key(Sno) references S(Sno), foreign key(Cno) references C(Cno), ); 题目4、用sql语句将C表中的ccredit改为整型 use Student /*首先手动删除约束才可以修改*/ alter table C alter column CCredit int; /*重新建立约束*/ alter table C add check(CCredit>=0and CCredit<=20); 题目5、用sql语句在“学生”表中添加一格“备注”字段remark,变长字符型,并保存结果 alter table S add remark varchar(50); 题目6. 用sql语句将“学生”表中“专业”字段数据类型改为varchar,长度为30并保存结果 alter table S alter column Ssp varchar(30); 题目7. 用sql语句删除“学生成绩”表中的“备注”字段并保存结果 alter table Sc drop column Remark; 题目8. 通过sql语句向s表中添加信息。 INSERT INTO S(Sno,Sname,Ssex,Ssp,Sdept,Sbirth,Sfrom,Schg,Spa,Snation,remark) VALUES ('001','李春刚','男','计算机应用','CS','1985-5-10','河源','','团员','汉',''); INSERT INTO S(Sno,Sname,Ssex,Ssp,Sdept,Sbirth,Sfrom,Schg,Spa,Snation,remark) VALUES ('002','东学婷','女','计算机应用','CS','1986-10-24','包头','转系','团员','蒙 ','');

oracle提取表名和字段名及字段长度

oracle提取表名和字段名及字段长度 SELECT d.TABLE_NAME tbName,--表名 COALESCE(https://www.wendangku.net/doc/e59351645.html,MENTS, ' ') tbDesc, --表注释 a.COLUMN_NAME columnName, --字段名 a.DATA_TYPE columnType, --字段类型 a.DATA_LENGTH width, --字段长度 a.DATA_SCALE precision,--字段小数位 a.DATA_TYPE || '('||a.DATA_LENGTH ||(case when a.DATA_SCALE >=0 then ','||a.DATA_SCALE ELSE '' end)||')', decode(a.NULLABLE,'Y','0','1') notNull,--是否允许空 COALESCE(https://www.wendangku.net/doc/e59351645.html,MENTS, ' ') comments, --字段备注 decode(k.uniqueness,'UNIQUE','1','0') uniques, --是否唯一 COALESCE(k.index_name, ' ') indexName,--如果是索引,索引名 decode(k.key,'Y','1','0') masterKey--是否主键 FROM user_tab_columns a INNER JOIN user_tables d on a.TABLE_NAME=d.TABLE_NAME LEFT JOIN user_tab_comments t ON t.TABLE_NAME=d.TABLE_NAME LEFT JOIN user_col_comments m ON m.COLUMN_NAME=a.COLUMN_NAME AND m.TABLE_NAME=d.TABLE_NAME LEFT JOIN

Mysql数据类型(字段)介绍

MySql数据库的列类型(字段类型) MySQL数据库的表是一个二维表,由一个或多个数据列构成。 每个数据列都有它的特定类型,该类型决定了MySQL如何看待该列数据,我们可以把整型数值存放到字符类型的列中,MySQL则会把它看成字符串来处理。 MySQL中的列类型有三种:数值类、字符串类和日期/时间类。 从大类来看列类型和数值类型一样,都是只有三种。但每种列类型都还可细分。 下面对各种列类型进行详细介绍。 数值类的数据列类型 数值型的列类型包括整型和浮点型两大类。 TINYINT:1字节非常小的正整数,带符号:-128~127,不带符号:0~255 SMALLINT:2字节小整数,带符号:-32768~32767,不带符号:0~65535 MEDIUMINT:3字节中等大小的整数,带符号:-8388608~8388607,不带符号:0~16777215 INT:4字节标准整数,带符号:-2147483648~2147483647,不带符号:0~4294967295 BIGINT:8字节大整数,带符号:-9223372036854775808~9233372036854775807,不带符号:0~18446744073709551615 FLOAT:4字节单精度浮点数,最小非零值:+-1.175494351E-38,最大非零值: +-3.402823466E+38 DOUBLE:8字节双精度浮点数,最小非零值:+-2.2250738585072014E-308,最大非零值:+-1.7976931348623157E+308 DECIMAL:M+2字节以字符串形式表示的浮点数,它的取值范围可变,由M和D的值决定。 整型数据列类型 MySQL有五种整型数据列类型,即TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT。它们之间的区别是取值范围不同,存储空间也各不相同。 在整型数据列后加上UNSIGNED属性可以禁止负数,取值从0开始。 声明整型数据列时,我们可以为它指定个显示宽度M(1~255),如INT(5),指定显示宽度为5个字符,如果没有给它指定显示宽度,MySQL会为它指定一个默认值。显示宽度只用于显示,并不能限制取值范围和占用空间,如:INT(3)会占用4个字节的存储空间,并且允许的最大值也不会是999,而是INT整型所允许的最大值。 浮点型数据列类型 MySQL有三种浮点型数据列类型,分别是:FLOAT,DOUBLE和DECIMAL。 浮点类数据类型有一个最大可表示值和一个最小非零可表示值,最小非零可表示值决定了该类型的精确度。

数据库表及字段命名、设计规范

数据库表及字段命名、设计规范1、命名规范 1.1数据表的命名规范: 1)表的前缀应该用系统或模块的英文名的缩写(全部大写或首字母大写)。如果系统功能简单,没有划分为模块,则可以以系统英文名称的缩写作为前缀,否则以各模块的英文名称缩写作为前缀。例如:如果有一个模块叫做BBS(缩写为BBS),那么你的数据库中的所有对象的名称都要加上这个前缀:BBS_ + 数据库对象名称,BBS_CustomerInfo标示论坛模块中的客户信息表。 2)表的名称必须易于理解,使用能表达表功能的英文单词或缩写英文单词,无论是完整英文单词还是缩写英文单词,单词首字母必须大写。如果当前表可用一个英文单词表示的,请用完整的英文单词来表示;例如:系统资料中的客户表的表名可命名为:SYS_Customer。如果当前表需用两个或两个以上的单词来表示时,尽量以完整形式书写,如太长可采用两个英文单词的缩写形式;例如:系统资料中的客户物料表可命名为:SYS_CustItem。 3)表的名称一般使用名词或者动宾短语 4)表名称不应该取得太长(一般不超过三个英文单词)。 5)在命名表时,用单数形式表示名称。例如,使用Employee,而不是Employees。 6)对于有主明细的表来说。明细表的名称为:主表的名称+ 字符Dts。例如:采购定单的名称为:PO_Order,则采购定单的明细表为:PO_OrderDts 对于有主明细的表来说,明细表必须包含两个字段:主表关键字、SN,SN字段的类型为int 型,目的为与主表关键字联合组成明细表的关键字,以及标示明细记录的先后顺序,如1,2,3……。 7)表必须填写描述信息

实验一数据库及基本表的建立

实验一数据库及基本表的建立 一、实验目的 1、掌握SQL SERVER的查询分析器和企业管理器的使用; 2、掌握创建数据库和表的操作; 二、实验内容和要求 1、练习使用SQL语句、企业管理器(Enterprise Manager)创建数据库; 2、练习使用SQL语句、企业管理器(Enterprise Manager)创建数据库表; 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 2000/xp; 2.数据库管理系统:SQL sever 2005; 四、实验方法、步骤及结果测试 题目1、创建数据库“学生情况”: 实现代码及截图: SQL语句 Create database 学生情况 查询分析器执行情况 :SQL语句及执行结果截图显示 找到主数据文件和日志文件,观察大小,并给出截图。

题目2、将数据库“学生情况”改名为“student” SQL语句 EXEC sp_renamedb学生情况, student 查询分析器执行情况: SQL语句及执行结果截图显示 题目3、创建基本表 S表 含义字段名字段类型字段 宽度 说明学号Sno Char10主键,不允许为空姓名Sname char10不允许为空 性别Ssex char2取值为男或女

C表 Sc表: 创建各表的实现代码及截图:

查询分析器执行情况: SQL语句及执行结果截图显示

题目4*、用sql语句将C表中的ccredit改为整型,同样约束为0-20之间 题目5、用sql语句在S表中添加一格“备注”字段remark,变长字符型,长度30,并保存结果

SQL数据库字段类型说明

SQL数据库字段类型说明

1)char、varchar、text和nchar、nvarchar、ntext char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。 后面三种数据类型和前面的相比,从名称上看只是多了个字母n,它表示存储的是Unicode数据类型的字符。写过程序的朋友对Unicode应该很了解。字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较:nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar 最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。 (2)datetime和smalldatetime datetime:从1753年1月1日到9999年12月31日的日期和时间数据,精确到百分之三秒。 smalldatetime:从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。 (3)bitint、int、smallint、tinyint和bit bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据。 int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据。smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据。 tinyint:从0到255的整数数据。 bit:1或0的整数数据。 (4)decimal和numeric 这两种数据类型是等效的。都有两个参数:p(精度)和s(小数位数)。p指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从 1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p 之间的值,默认小数位数是0。 (5)float和real float:从-1.79^308到1.79^308之间的浮点数字数据。 real:从-3.40^38到3.40^38之间的浮点数字数据。在SQL Server中,real 的同义词为float(24)。

MySQL常用数据类型和建库策略

1. MYSQL 5数据类型,长度范围 1.1数值类型 MySQL支持所有标准SQL数值数据类型.这些类型包括严格数值数据类型(INTEGER,SMALLINT,DECIMAL和NUMERIC),以及近似数值数据类型 (FLOAT,REAL 和DOUBLE PRECISION).关键字INT是INTEGER的同义词,关键字DEC是DECIMAL 的同义词. BIT 数据类型保存位字段值,并且支持MyISAM,MEMORY,InnoDB和BDB表.作为SQL标准的扩展,MySQL也支持整数类型 TINYINT,MEDIUMINT和BIGINT.下面的表显示了需要的每个整数类型的存储和范围. MySQL还支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例 如,INT(4)).该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度. 显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示. 当结合可选扩展属性ZEROFILL使用时, 默认补充的空格用零代替.例如,对于声明为INT(5) ZEROFILL的列,值4检索为00004.请注意如果在整数列保存超过显示宽度的一个值,当MySQL为复杂联接生成临时表时会遇到问题,因为在这些情况下MySQL相信数据适合原列宽度. 所有整数类型可以有一个可选(非标准)属性UNSIGNED.当你想要在列内只允许 非负数和该列需要较大的上限数值范围时可以使用无符号值. 浮点和定点类型也可以为UNSIGNED.同数类型,该属性防止负值保存到列中.然而,与整数类型不同的是,列值的上范围保持不变. 如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性. 对于浮点列类型,在MySQL中单精度值使用4个字节,双精度值使用8个字节. FLOAT类型用于表示近似数值数据类型.SQL标准允许在关键字FLOAT后面的括号内选择用位指定精度(但不能为指数范围).MySQL还支持可选的只用于确定存储大小的精度规定.0到23的精度对应FLOAT 列的4字节单精度.24到53的精度对应DOUBLE列的8字节双精度. MySQL允许使用非标准语法:FLOAT(M,D)或 REAL(M,D)或DOUBLE PRECISION(M,D).这里,"(M,D)"表示该值一共显示M位整数,其中D位位于小数点后面.例如,定义为FLOAT(7,4)的一个列可以显示为-999.9999.MySQL保存值时进行四舍五入,因此如果在FLOAT(7,4)列内插入999.00009,近似结果是999.0001.

数据库数据类型

MySQL 数据类型在MySQL 中,有三种主要的类型:文本、数字和日期/时间类型。 Text类型 数据类型描述 CHAR(size) 保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多255 个字符。 VARCHAR(size) 保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多255 个字符。注释:如果值的长度大于255,则被转换为TEXT 类型。 TINYTEXT 存放最大长度为255 个字符的字符串。 TEXT 存放最大长度为65,535 个字符的字符串。 BLOB 用于BLOBs (Binary Large OBjects)。存放最多65,535 字节的数据。MEDIUMTEXT 存放最大长度为16,777,215 个字符的字符串。 MEDIUMBLOB 用于BLOBs (Binary Large OBjects)。存放最多16,777,215 字节的数据。LONGTEXT 存放最大长度为4,294,967,295 个字符的字符串。 LONGBLOB 用于BLOBs (Binary Large OBjects)。存放最多4,294,967,295 字节的数据。 ENUM(x,y,z,etc.) 允许你输入可能值的列表。可以在ENUM 列表中列出最大65535 个值。如果列表中不存在插入的值,则插入空值。 注释:这些值是按照你输入的顺序存储的。可以按照此格式输入可能的值:ENUM('X','Y','Z') SET 与ENUM 类似,SET 最多只能包含64 个列表项,不过SET 可存储一个以上的值。 Number类型: 数据类型描述 TINYINT(size) -128 到127 常规。0 到255 无符号*。在括号中规定最大位数。 SMALLINT(size) -32768 到32767 常规。0 到65535 无符号*。在括号中规定最大位数。 MEDIUMINT(size) -8388608 到8388607 普通。0 to 16777215 无符号*。在括号中规定最大位数。 INT(size) -2147483648 到2147483647 常规。0 到4294967295 无符号*。在括号中规定最大位数。 BIGINT(size) -9223372036854775808 到9223372036854775807 常规。0 到18446744073709551615 无符号*。在括号中规定最大位数。 FLOAT(size,d) 带有浮动小数点的小数字。在括号中规定最大位数。在d 参数中规定小数点右侧的最大位数。DOUBLE(size,d) 带有浮动小数点的大数字。在括号中规定最大位数。在d 参数中规定小数点右侧的最大位数。DECIMAL(size,d) 作为字符串存储的DOUBLE 类型,允许固定的小数点。 这些整数类型拥有额外的选项UNSIGNED。通常,整数可以是负数或正数。如果添加UNSIGNED 属性,那么范围将从0 开始,而不是某个负数。

kis专业版数据库常用表介绍

专业版数据库常用表介绍 ictransactiontype 单据类型表(FTemplateID 是关联模板信息表的字段,FID 关联ICStockBill 中的FTranType字段) ictemplate,ictemplateentry 单据模板信息主子表 icinvbal 物料库存余额表(包含FAuxPropID),icbal 物料库存余额表 icinventory 物料即时库存数据存放表 icstockbill 除组装拆卸外的库存类单据主表 icstockbillentry 除组装拆卸外的库存类单据明细表 icstockbill 中调整单类型号100,当FBillTypeID 为12542代表调入,FBillTypeID 为12541代表调出 ICPurchase 采购发票主表 ICPurchaseEntry 采购发票明细表 icsale 销售发票主表 icsaleentry 销售发票明细表 select FInvoiceAmountFor ,FInvoiceAmount ,FReceiveAmountFor ,FReceiveAmount,FUnReceiveA mountFor,* from icsale where FInterID=1066 上面字段分别为原币发票金额,本币发票金额,原币收款金额,本币收款金额,原币未收款金额 SEOrder 销售订单主表 SEOrderEntry 销售订单明细表 POOrder 采购订单主表 POOrderEntry 采购订单明细表 t_ItemClass 核算项目类别表,打开此表可以获取核算项目各基础资料存放的表名(FItemID 为关联内码) t_RP_RBill 收款单主表,t_RP_RBillEntry 收款单子表 t_RP_PBill 付款单主表,t_RP_PBillEntry 付款单子表 T_RP_CheckInfo 核销单主表,T_RP_CheckInfoEntry 核销单子表 select * from T_RP_CheckInfo ICHookRelations 暂估处理发票钩稽关系表

在Oracle中查询表的大小和表空间的大小

在Oracle中查询表的大小和表空间的大小 上一篇/ 下一篇 2011-08-28 11:59:01 / 个人分类:计算机 查看( 443 ) / 评论( 0 ) / 评分( 0 / 0 ) 原文:https://www.wendangku.net/doc/e59351645.html,/cosio/article/details/3978747 有两种含义的表大小。一种是分配给一个表的物理空间数量,而不管空间是否被使用。可以这样查询获得字节数: select segment_name, bytes from user_segments where segment_type = 'TABLE'; 或者 Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name 另一种表实际使用的空间。这样查询: analyze table emp compute statistics; select num_rows * avg_row_len from user_tables where table_name = 'EMP'; 查看每个表空间的大小 Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name 1.查看剩余表空间大小

SELECT tablespace_name 表空间,sum(blocks*8192/1000000) 剩余空间M FROM dba_free_space GROUP BY tablespace_name; 2.检查系统中所有表空间总体空间 select https://www.wendangku.net/doc/e59351645.html,,sum(a.bytes/1000000)总空间from v$datafile a,v$tablespace b where a.ts#=b.ts# group by https://www.wendangku.net/doc/e59351645.html,; 1、查看Oracle数据库中表空间信息的工具方法: 使用oracle enterprise manager console工具,这是oracle的客户端工具,当安装oracle服务器或客户端时会自动安装此工具,在windows操作系统上完成oracle安装后,通过下面的方法登录该工具:开始菜单——程序——Oracle-OraHome92——Enterprise Manager Console(单击)——oracle enterprise manager console登录——选择…独立启动?单选框——…确定? ——…oracle enterprise manager console,独立? ——选择要登录的…实例名? ——弹出…数据库连接信息? ——输入?用户名/口令? (一般使用sys用户),?连接身份?选择选择SYSDBA——…确定?,这时已经成功登录该工具,选择…存储? ——表空间,会看到如下的界面,该界面显示了表空间名称,表空间类型,区管理类型,以”兆”为单位的表空间大小,已使用的表空间大小及表空间利用率。 图1 表空间大小及使用率 2、查看Oracle数据库中表空间信息的命令方法:

MySQL 数据类型 (列表)

MySQL数据类型(列表) 数据类型描述字节推荐使用 SMALLINT整数,从-32000到+32000范围2存储相对比较小的整数。 比如:年纪,数量 INT整数,从-2000000000到 +2000000000范围4存储中等整数 例如:距离 BIGINT不能用SMALLINT或INT描述的 超大整数。8存储超大的整数 例如:科学/数学数据 FLOAT单精度浮点型数据4存储小数数据 例如:测量,温度 DOUBLE双精度浮点型数据8需要双精度存储的小数数据 例如:科学数据 DECIMAL用户自定义精度的浮点型数据变量;取决于精度与长度以特别高的精度存储小数数据。 例如:货币数额,科学数据 CHAR固定长度的字符串特定字符串长度(高达255字符)存储通常包含预定义字符串的变量 例如:定期航线,国家或邮编 VARCHAR具有最大限制的可变长度的字符 串变量;1+实际字符串长度(高 达255字符) 存储不同长度的字符串值(高达一个特定的 最大限度). 例如:名字,密码,短文标签 TEXT没有最大长度限制的可变长度的 字符串Variable;2+聽actual string length 存储大型文本数据 例如:新闻故事,产品描述 BLOB二进制字符串变量;2+实际字符串长度存储二进制数据 例如:图片,附件,二进制文档 DATE以yyyy-mm-dd格式的日期3存储日期 例如:生日,产品满期 TIME以hh:mm:ss格式的时间3存储时间或时间间隔 例如:报警声,两时间之间的间隔,任务开 始/结束时间 DATETIME以yyyy-mm-ddhh:mm:ss格式结合 日期和时间8存储包含日期和时间的数据 例如:提醒的人,事件 TIMESTAMP以yyyy-mm-ddhh:mm:ss格式结合 日期和时间4记录即时时间 例如:事件提醒器,“最后进入”的时间标 记 YEAR以yyyy格式的年份1存储年份 例如:毕业年,出生年 ENUM一组数据,用户可从中选择其中 一个1或2个字节存储字符属性,只能从中选择之一 例如:布尔量选择,如性别 SET一组数据,用户可从中选择其中 0,1或更多。从1到8字节;取决于设置的大小存储字符属性,可从中选择多个字符的联 合。 例如:多选项选择,比如业余爱好和兴趣。

SQL语句修改字段类型长度

sql语句修改字段属性 如果数据量非常大,达到几百万条记录以上,使用企业管理器来更改字段类型,很多时候会超时,更改不成功,这时可以使用sql语句来更改,如下: a、更改字段类型长度 alter table 表 alter column 字段名类型的长度--varchar(60) 例:把城市表的城市名字段有原来的长度20改为30 alter table testcity alter column cityname varchar(30) b、更改字段类型 alter table 表 alter column 字段名更改后的类型 例:把城市表的城市名字段有原来的varchar类型改为int类型 alter table testcity alter column cityname int 如果sno字段原来不为空: alter table student alter column sno varchar(10) not null 如果sno字段原来为空: alter table student alter column sno varchar(10) 因为不管以前的字段是否允许为空,执行 alter table student alter column sno varchar(10) 后该字段都会变为允许为空。还有就是执行这类修改操作时最好是空表,如果有数据,可能会失败。因为有些数据类型之间可能不能隐式的转换或者根本就不能转化,比如“abc”要转换成int型。所以,一切还要自己注意控制。 c、添加not null约束 alter table 表 alter column 字段名 int not null 例:把cid不能输入空值 alter table testcity alter column cid int not null d、设置主键 alter table 表 add constraint 主键名 primary key(字段名) 例:把cid设为主键 alter table testcity add constraint pk_cid primary key(cid) e、更改字段名 exec sp_rename 表名.字段名,更改后的字段名,column f、添加字段名 alter table 表 add 字段名字段类型 default null篇二:用sql语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 alter table table_name drop column column_name 3.修改字段类型 alter table table_name alter column column_name new_data_type 4.sp_rename 改名 exec sp_rename [dbo].[table_1].[filedname1], filedname2, column 更改当前数据

SQL几种常用的列类型.

MySQL几种常用的列类型: 1、数值类型 (1)INT[ (M) ] 说明:标准大小的整数 允许的属性:不选(可以取正负数)UNSIGNED(无符号,取值范围增大一倍), UNSIGED ZEROFILL(在数值前自动填0)auto_increment (自动递增) 取值范围:-2147483648 到2147483647(-231 到231-1),或者如果为UNSIGNED,则0 到4294967295(0 到232-1) 缺省值:如果列为NULL,则为NULL;如果列为NOT FULL,则为0 存储需求:4 字节 同义词:INTEGER[ (M) ] (2)FLOAT[(M,D)](M表示显示宽度,在D表示小数位数) 说明:小浮点数;单精度(精度小于DOUBLE) 允许的属性:ZEROFILL 取值范围:最小非零值为±1.75494351E-38;最大非零值为±3.402823466E+38 缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为0 存储需求:4字节 同义词:MySQL3.23版以前,FLOAT(4)为具有缺省M和D值的FLOAT的同义词。 注释:在MySQL3.23以后,FLOAT(4)为真浮点类型(值存储为硬件所允许的完整精度,而不四舍五入为缺省的小数位数)。 (3)DOUBLE[(M,D)] 说明:大浮点数;双精度(比FLOAT更精确) 允许的属性:ZEROFILL 取值范围:最小非零值为±2.2250738585072014E-308;最大非零值为±1。79769313- 48623157E+308 缺省值:如果列可为NULL,则为NULL;如果列为NOTNULL,则为0 存储需求:8字节 同义词:DOUBLEPRECISION[(M,D)]和REAL[(M,D)]为DOUBLE[(M,D)]的同义词。MySQL3.23版以前,FLOAT(8)为具有缺省M和D值的FLOAT的同义词。 注释:在MySQL3.23以后,FLOAT(8)为真浮点类型(值存储为硬件所允许的完整精度,而不四舍五入为缺省的小数位数)。 2、串类型 MySQL的串类型常用来存储文本,它不但是通用的而且还能存储任何数据。可用串类型 来存储最大长度可变的值,而且可以选择在处理值时是否区分大小写。 (1)CHAR(M) 说明:0到M字节长的定长字符串。在MySQL3.23版以前,M应该为一个1到255之间的整数。而MySQL3.23版以后,M应该为一个0到255之间的整数。短于M个字符的串存储进右边补空格。长于M个字符的串存储时剪断为长度是M的串。在检索值时,去掉后跟的空格。 允许的属性:BINARY

mysql字段类型

1. mysql的数据类型 在mysql中有如下几种数据类型: (1)数值型 数值是诸如32 或153.4 这样的值。mysql 支持科学表示法,科学表示法由整数或浮点数后跟“e”或“e”、一个符号(“+”或“-”)和一个整数指数来表示。1.24e+12 和23.47e-1 都是合法的科学表示法表示的数。而 1.24e12 不是合法的,因为指数前的符号未给出。 浮点数由整数部分、一个小数点和小数部分组成。整数部分和小数部分可以分别为空,但不能同时为空。 数值前可放一个负号“-”以表示负值。 (2)字符(串)型 字符型(也叫字符串型,简称串)是诸如“hello,world!”或“一个馒头引起的血案”这样的值,或者是电话号码这样的值。既可用单引号也可用双引号将串值括起来。 初学者往往分不清数值和字符串的区别。都是数字啊,怎么一个要用数值型,一个要用字符型呢?关键就在于:数值型的是要参与计算的,比如它是金融中的一个货款总额;而字符型的是不参与计算的,只是表示电话号码,这样的还有街道号码、门牌号码等等,它们都不参与计算。 (3)日期和时间型 日期和时间是一些诸如“2006-07-12”或“12:30:43”这样的值。mysql还支持日期/时间的组合,如“2006-07-12 12:30:43”。 (4)null值 null表示未知值。比如填写表格中通讯地址不清楚留空不填写,这就是null 值。 我们用create table语句创建一个表(参看前面的章节),这个表中包含列的定义。例如我们在前面创建了一个joke表,这个表中有content和writer 两个列: create table (

常用数据库表

1、.ufysftem库 此库是系统参数数据库,其中主要存放各个帐套的共用信息,意义很大,日常应用的也很多。 A.ua_account:是帐套信息表,其中系统帐套存放路径、帐套启用年度、帐套启用月份、企业类型、行业性质等字段特别重要。 B.ua_account_sub:帐套各模块启用月度及最大结帐月表,其中子系统id字段、最大结帐月字段、子系统启用日期字段十分重要。 C.ua_period:帐套会计日期划分表。 D.ua_task:异常任务记录表01(在所有模块退出后,此表应为空) E.ua_tasklog:异常任务记录表02(同上) F.ua_log:上机日志表 G.ua_tonextyear:建立下年年度帐时要建立的表(此表也特别重要,在建立年度帐失败时,一般可从此表记录的内容进行排查,以发现上年度是哪张表有问题). H、ua_holdauth:记录每个操作员在每个帐套每个年度的分配权限。 2、ufdata_00n_200x库 此数据库叫应用数据库,命名规则是ufdata_帐套编号_年度(四位计数),其中主要存放每个年度的帐务数据,包括各个模块的数据。在数据表中,命名方法是模块代码_表名。 其中:ap代表应付;ar代表应收;gl代表总帐;wa代表工资;fa代表固定资产;pu 代表采购;sa代表销售;st代表库存;ia代表存货;fd代表资金管理;ca代表成本等。 A.accinformation:帐套参数表,包括财务和购销存模块设置选项中定义的所有参数,如启用时间、系统年度等等。 B.ap_closebill:收付款结算表,主要记录收款单、付款单的内容。 C.ap_detail:应收应付明细表,主要记录已结算的采购发票和已审核的销售发票所形成的应收应付记录。 D.ap_vouch/s:应付/收单主子表,记录销售已审核的代垫费用单,应收、应付单等的表头和表体记录。

ORACLE字段类型详解

字段类型中文说明限制条件其它说明 CHAR固定长度字符串最大长度2000bytes VARCHAR2可变长度的字符串最大长度4000bytes可做索引的最大长度749 NCHAR根据字符集而定的固定长度字符串最大长度2000bytes NVARCHAR2根据字符集而定的可变长度字符串最大长度4000bytes DATE日期(日-月-年)DD-MM-YY(HH-MI-SS)经过严格测试,无千虫问题LONG超长字符串最大长度2G(231-1)足够存储大部头著作 RAW固定长度的二进制数据最大长度2000bytes可存放多媒体图象声音等LONG RAW可变长度的二进制数据最大长度2G同上 BLOB二进制数据最大长度4G CLOB字符数据最大长度4G NCLOB根据字符集而定的字符数据最大长度4G BFILE存放在数据库外的二进制数据最大长度4G ROWID数据表中记录的唯一行号10bytes********.****.****格式,*为0或1 NROWID二进制数据表中记录的唯一行号最大长度4000bytes NUMBER(P,S)数字类型P为整数位,S为小数位 DECIMAL(P,S)数字类型P为整数位,S为小数位 INTEGER整数类型小的整数 FLOAT浮点数类型NUMBER(38),双精度 REAL实数类型NUMBER(63),精度更高 数据类型参数描述

char(n)n=1to2000字节定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节) varchar2(n)n=1to4000字节可变长的字符串,具体定义时指明最大长度n, 这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。 如果数据长度没有达到最大值n,Oracle8i会根据数据大小自动调节字段长度, 如果你的数据前后有空格,Oracle8i会自动将其删去。VARCHAR2是最常用的数据类型。可做索引的最大长度3209。 number(m,n)m=1to38 n=-84to127可变长的数值列,允许0、正值及负值,m是所有有效数字的位数,n是小数点以后的位数。 如:number(5,2),则这个字段的最大值是99,999,如果数值超出了位数限制就会被截取多余的位数。 如:number(5,2),但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。 如:number(3,0),输入575.316,真正保存的数据是575。 date无从公元前4712年1月1日到公元4712年12月31日的所有合法日期, Oracle8i其实在内部是按7个字节来保存日期数据,在定义中还包括小时、分、秒。 缺省格式为DD-MON-YY,如07-11月-00表示2000年11月7日。 long无可变长字符列,最大长度限制是2GB,用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。 long是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。 raw(n)n=1to2000可变长二进制数据,在具体定义字段的时候必须指明最大长度n,Oracle 8i用这种格式来保存较小的图形文件或带格式的文本文件,如Miceosoft Word文档。 raw是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。

Oracle常用数据字典表(系统表或系统视图)及查询SQL

Oracle常用数据字典表(系统表或系统视图)及查询SQL 2014年12月15日?数据库?共4187字?暂无评论?阅读861 次 文章目录 ?数据字典分类 ?dba_开头 ?user_开头 ?v$开头 ?all_开头 ?session_开头 ?index_开头 ?伪表 ?数据字典常用SQL查询 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息的视图等。 数据字典系统表,保存在system表空间中。查询所有数据字典可用语句“select * from dictionary;”。 数据字典分类 数据字典主要可分为四部分: 1)内部RDBMS表:x$*,用于跟踪内部数据库信息,维持DB的正常运行。是加密命名的,不允许sysdba以外的用户直接访问,显示授权不被允许。

2)数据字典表:*$,如tab$,obj$,ts$等,用来存储表、索引、约束以及其他数据库结构的信息。 3)动态性能视图:gv$*,v$*,记录了DB运行时信息和统计数据,大部分动态性能视图被实时更新以反映DB当前状态。 4)数据字典视图:user_*、all_*、dba_*,在非Sys用户下,我们访问的都是同义词,而不是V$视图或GV视图。 数据库启动时,动态创建x$,在X$基础上创建GV$,在GV$基础上创建V$X$表-->GV$(视图)--->V$(视图)。 数据字典视图可分为静态数据字典视图和动态数据字典视图。 静态数据字典是指在用户访问数据字典时内容不会发生改变。这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。 静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*(该用户方案对象的信息)、all_*(该用户可以访问的所有对象的信息)、dba_*(全部数据库对象的信息)。 动态数据字典是Oracle包含的一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新,所以称它们为动态数据字典。这些视图提供了关于内存和磁盘的运行情况,所以我们只能对其进行只读访问而不能修改它们。Oracle中这些动态性能视图都是以v$开头的视图,比如v$access。 dba_开头 dba_users数据库用户信息

相关文档
相关文档 最新文档