varchar
int
bit
datetime
money
基本上就这些常用的
字符串太长的 可以用 text
2. Sql数据库最主要的对象是哪个
如果非要说一个,感觉是---表
数据库中的基本所有的操作都是基于表数据来的
无论是视图,索引,过程,函数,还是其他的什么,,,
3. SQL数据库中都是以表的形式存储数据的吗
SQLSERVER数据库中数据存储:
一:存储文件类型
SQLSERVER有两种数据存储文件,分别是数据文件和日志文件。
其中:数据文件是以8K(=8192Byte)的页面(Page)作为存储单元的。
而日志文件是以日志记录作为存储单元。本文只讨论数据文件的存储方式,不涉及到日志文件存储方式。
数据文件以页面做为存储单元存储数据,要理解数据文件的存储方式,必须了解SQLSERVER中定义的页面类型种类。
二:页面类型
SQLSERVER中页面类型有8种,具体每种类型的详细说明,见下图:
用户的数据一般存放在数据页面中,由上图可以看出,数据页包含数据行中除 text、ntext 和 image 数据外的所有数据,text、ntext 和 image 数据存储在单独的页中。那么在一个数据页面中,数据是如何存放,SQLSERVER又是根据什么来定位页面与页面上的数据呢。要回答这个问题,有必要先了解数据页面的具体结构。
三:数据页面结构
在数据页上,数据行紧接着页首按顺序放置。在页尾有一个行偏移表。在行偏移表中,页上的每一行都有一个条目,每个条目记录那一行的第一个字节与页首的距离。行偏移表中的条目序列与页中行的序列相反。数据页面结构如下图所示,下面将详细解释
其中:数据页面页首:96个字节,保存着页面的系统信息,如页的类型、页的可用空间量、拥有页的对象的对象 ID 以及该页面所属于哪个物理文件。
数据区:对应于上图中所有数据行的总区域,存放真正的数据,是以Slot为单位。一个Slot就是对应于一条数据记录行,从0开始编号,以16进制反序保存,Slot0,Slot1....。
行偏移数组:用于记录该数据页面中每个Slot在数据页面所处的相对位置,便于定位和检索每个Slot在数据页面中的位置,数组中每个记录占两个字节。
四:存储分配单位:盘区(扩展 Extend)
虽然SQLSERVER中数据文件存储单位是页面(Page),但实际SQLSERVE并不是为页面为单位给数据分配空间,SQLSERVER默认的存储分配单位是盘区。这样做的主要原因是为了提高性能。为了避免频繁的读写IO,在表或其它对象分配存储空间,不是直接分配一个8K的页面,而是以一个盘区(Extend)为存储分配单位,一个盘区为8个页面(=8*8K=64K)。
但是这样做虽然减少了频繁的IO读写,提高的数据库性能,但却导致出一个新问题,那就是在存储那些只有少量数据,不足8K的对象,如果也是分配给一个盘区,就会存在存储空间上的浪费,降低了空间分配效率。
为解决上述问题,SQLSERVER提供了一种解决方案,定义了两种盘区类型,统一盘区和混合盘区。
其中:统一盘区只能存放同一个对象,该对象拥有这个盘区的所有页面
混合盘区:由多个对象共同拥有该盘区。
在实际为对象分配存储盘区时,为了提高空间利用率,默认的情况下,如果一个对象一开始大小小于8个页面,就尽量放在混合盘区中,如果该对象大小增加到8个页面后,SQLSERVER会为这个对象重新分配一个统一盘区。
为了能够通过上述策略来实现为对象分配存储盘区,SQLSERVER提供了GAM/SGAM机制来管理和维护数据文件的盘区信息。
4. sql中视图与表的区别
sql中视图与表的区别为:性质不同、存储内容不同、操作不同。
一、性质不同
1、视图:视图不是一个独立的文件,是由一个或几个基本表导出形成的虚表。
2、表:表是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。
二、存储内容不同
1、视图:视图存储的内容是来自本地数据源或远程数据源的定义,不存放实际数据。
2、表:表存储的内容是本地数据源的数据。
三、操作不同
1、视图:操作者只可以对视图进行查操作,不能进行增删改操作。
2、表:操作者可以对表进行增删改查四种操作。
5. 在sql,关系数据库中不仅仅包含表,还包括哪些数据对象的
表,由行和列构成的集合,用来存储数据
数据类型,定义列或变量的数据类型,SQL Server提供了系统数据类型,并允许用户自定义数据类型
视图,由表或其他视图导出的虚拟表
索引,为数据快速检索提供支持且可以保证数据唯一性的辅助数据结构
约束,用于为表中的列定义完整性的规则
默认值,为列提供的缺省值
存储过程,存放于服务器的预先编译好的一组T-SQL语句
触发器,特殊的存储过程,当用户表中数据改变时,该存储过程被自动执行
6. 1. 数据库中存储的基本对象是什么
答案:
数据库中存储的基本对象是表
7. 数据库中表对象与查询对象区别
这个说的是access么?
表对象就是数据库概念中的table,这个是实际存储数据的对象。
查询对象应该说的是数据库概念中的view,view是一个命名的经过编译sql语句,不实际存储数据。