SQL Server中保存数据的一种类型,只能存储true/false,程序读取数据库出来之后的表现形式是true或者false,但是保存在数据库中的结构类型是0或者1,1表示true,0表示false。
创新互联主要从事做网站、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务鹤壁,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
SQL Server BIT类型由于只有0和1或者说false和true,这种情况只需要一个Bit位就可以表示了。SQL Server BIT类型占用的空间与BIT类型的列所在表的位置有关,有些情况下BIT占用了一个字节,有些情况下BIT实际占用了几个位(几个BIT类型的列共用一个字节)。
单独的BIT类型的列将占用一个字节。
所谓单独就是指一个BIT类型的列的左边定长列和右边定长列都不是BIT类型的列。例如这样一个表:
CREATE TABLE tt
(
c1 INT PRIMARY KEY,
c2 BIT NOT NULL,
c3 CHAR(2)
NOT NULL
)
SQL Server在存储表中的数据时先是将表中的列按照原有顺序分为定长和变长(变长就是长度不固定的数据类型,如varchar,nvarchar,varbinary等)两组。在数据页中存储数据时先存储所有定长的数据,然后再存储变长的数据。这里由于c2列的左边是int类型,右边是char类型,都是定长的,而且不是SQL Server BIT类型,所以c1和c3之间必须留出一个字节来存储c2,虽然c2只用到了其中的一个位。
多个BIT类型的列之间使用变长数据类型列分开,则去掉变长列,然后看连续的SQL Server BIT类型列的个数,每列占用一个位,如果多余了8列那就再占用更多的字节。
Bit 数据类型在 SQL Server 数据库中以存储 1、0 进行存储。
往数据库中添加,修改 bit 类型的字段时,只能用 0 或者 1。
关于修改 Bit 类型的字段
1.若使用 SQL 语句在查询分析器中进行修改,需要传入 1、0;
在SQL语句中也只能用 0 或者 1,比如 "where sex=1" 不能用 "where sex=TURE"。
2.若使用企业管理器直接在表中进行修改,需要使用 True、False;
使用 SqlDataReader 读出的 Bit 类型数据返回值为 bool 类型,若将返回结果关联到 GridView 中,那么此列下呈现的是复选框,复选框的 Checked 属性绑定 Bit 类型字段的返回值。
MySQL中,BLOB是个类型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。
MySQL的四种BLOB类型
TinyBlob: 最大 255字节
Blob: 最大 65K
MediumBlob:最大 16M
LongBlob: 最大 4G
注意:如果你存储的文件过大,数据库的性能会下降很多。
2、PHP操作BLOB案例
?php
mysql_connect( "localhost", "root", "password"); //连接数据库
mysql_select_db( "database"); //选定数据库
//数据插入:
$CONTENT="测试内容"; //$CONTENT为新闻内容
$COMPRESS_CONTENT = bin2hex(gzcompress($CONTENT));
$result=mysql_query( "insert into news (content) value ('$COMPRESS_CONTENT')");//数据插入到数据库news表中
//展示:
$query = "select data from testtable where filename=$filename";
$result = mysql_query($query);
$COMPRESS_CONTENT=@gzuncompress($result["COMPRESS_CONTENT"]);
echo $COMPRESS_CONTENT;
?
[2]存储图片
?php
mysql_connect( "localhost", "root", "password"); //连接数据库
mysql_select_db( "database"); //选定数据库
//存储:
$filename="" //这里填入图片路径
$COMPRESS_CONTENT = addslashes(fread(fopen($filename, "r"), filesize($filename)));//打开文件并规范化数据存入变量$data中
$result=mysql_query( "insert into news (content) value ('$COMPRESS_CONTENT')");//数据插入到数据库test表中
//展示:
ob_end_clean();
Header( "Content-type: image/gif");
$query = "select data from testtable where filename=$filename";
$result = mysql_query($query);
echo $result["COMPRESS_CONTENT"];
?
Bit称为位数据类型,其数据有两种取值:0和1,长度为1位。在输入0以外的其他值时,系统均把它们当1看待。这种数据类型常作为逻辑变量使用,用来表示真、假或是、否等二值选择。
SQL Server中保存数据的一种类型,只能存储true/false,程序读取数据库出来之后的表现形式是true或者false,但是保存在数据库中的结构类型是0或者1,1表示true,0表示false。
SQL Server
BIT类型由于只有0和1或者说false和true,这种情况只需要一个Bit位就可以表示了。SQL Server
BIT类型占用的空间与BIT类型的列所在表的位置有关,有些情况下BIT占用了一个字节,有些情况下BIT实际占用了几个位(几个BIT类型的列共用一
个字节)。
echo就可以的。
if($rs-bit == chr(0))
{
echo '0';
}
else
{
echo '1';
}
可能,操作系统不一样也出现这种情况,你试试在select 时用 select bitField+0 from table ,我的问题是这样解决的