本文目录
- 上传excel 参数 binary是什么意思
- sql中varbinary加密的简单方法有什么
- SQL数据库的数据类型有哪些,请详细解释一下
- char,varchar,binary和varbinary的区别与联系
- binary,乜意思
- SQL中binary 和 varbinary的区别 blob
- 什么是binary文件
- sql数据类型有哪些
- “~”这个符号是什么意思
- mysql数据类型中blob和binary的区别
上传excel 参数 binary是什么意思
第一参数为binary,通常是先使用File.Contents根据指定路径获取Excel文件,返回类型为binary,然后再用Excel.Workbook将binary解析出来。
第二参数为是否使用标题,类型为布尔值。true表示使用第一行作为标题,不填或null或false都表示不使用。
第三参数字面意思为延迟类型,同样为布尔值。据说在合并文件夹的时候填true效率更高,填false在每合并一次后会有延迟。但是经过本人测试填不填并没有什么区别,所以一般省略不填,如果大家测试后有发现区别欢迎反馈。
sql中varbinary加密的简单方法有什么
1、可以使用二个SQLServer未公开的函数:
》PwdCncrypt(),实现对输入数据进行加密后返回二进制形式的加密内容,
》PwdCompare(),用于检查明文是否与加密的二进制数据内容相等,没有解密函数。
这二个函数主要是用于SQLServer内部自己调用。优点是调用方便,缺点是这二个函数没有公开,就意味着可能改变,并且不兼容原来的,在使用上存在风险。
2、若想控制密钥,有4个函数
ENCRYPTBYASYMKEY() --非对称密钥
ENCRYPTBYCERT() --证书加密
ENCRYPTBYKEY() --对称密钥
ENCRYPTBYPASSPHRASE() --通行短语(PassPhrase)加密
使用起来相对会复杂些。
SQL数据库的数据类型有哪些,请详细解释一下
MySQL数据类型
在 MySQL 中,有三种主要的类型:Text(文本)、Number(数字)和 Date/Time(日期/时间)类型。
话不多说,直接上图。
Text 类型:
Number 类型:
-from shulanxt
Date 类型:
char,varchar,binary和varbinary的区别与联系
char使用固定长度的空间进行存储,char(4)存储4个字符,根据编码方式的不同占用不同的字节,gbk编码方式,不论是中文还是英文,每个字符占用2个字节的空间,utf8编码方式,每个字符占用3个字节的空间。
如果需要存储的字符串的长度跟所有值的平均长度相差不大,适合用char,如MD5。
对于经常改变的值,char优于varchar,原因是固定长度的行不容易产生碎片。
对于很短的列,char优于varchar,原因是varchar需要额外一个或两个字节存储字符串的长度。
varchar保存可变长度的字符串,使用额外的一个或两个字节存储字符串长度,varchar(10),除了需要存储10个字符,还需要1个字节存储长度信息(10),超过255的长度需要2个字节来存储
例外:Myisam引擎中使用ROW_FORMAT=FIXED时,每行使用相同的空间,造成浪费
char和varchar后面如果有空格,char会自动去掉空格后存储,varchar虽然不会去掉空格,但在进行字符串比较时,会去掉空格进行比较
binary保存二进制字符串,它保存的是字节而不是字符,没有字符集限制
binary(8)可以保存8个字符,每个字符占1个字节,共占8个字节
进行比较时是按字节进行比较,而不是按字符(char),按字节比较比字符简单快速
按字符比较不区分大小写,而binary区分大小写,结尾使用\0填充,而不是空格
varbinary保存变长的字符串,后面不会补\0
-是什么意思
binary,乜意思
BINARY 即系 二进制 或者二元
系呢度系取“二元“既意思
因为区既新碟里面每一首歌都有两个意思
例如 “十七度“系“深宵有点冷“既温度 都系指两个人以十七度既角度相交同分离~
SQL中binary 和 varbinary的区别 blob
binary 固定长度 的二进制数据类型varbinary 可变长度 的 二进制 数据类型。binary [ ( n ) ]固定长度的 n 个字节二进制数据。N 必须从 1 到 8,000。存储空间大小为 n+4 字节。varbinary [ ( n ) ]n 个字节变长二进制数据。n 必须从 1 到 8,000。存储空间大小为实际输入数据长度 +4 个字节,而不是 n 个字节。输入的数据长度可能为 0 字节。在 SQL-92 中 varbinary 的同义词为binary varying。注释如果在数据定义或变量声明语句中没有指定 n,默认长度为 1。如果没有用 CAST 函数指定 n,默认长度为 30。当列数据项大小一致时应使用 binary。当列数据项大小不一致时应使用 varbinary。
-c
什么是binary文件
binary 是二进制文件。计算机上所有的文件都是二进制文件
Ftp:binary
将文件传输类型设置为二进制。
注释
• Ftp 同时支持 ASCII 和二进制图像文件传输类型。在传输可执行文件时应该使用二进制。在二进制模式下,文件以一字节为单位进行传输。
-是什么意思
sql数据类型有哪些
SQL数据类型有以下这些:
1、二进制数据类型。
二进制数据包括 Binary、Varbinary 和 Image
Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。
Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储空间的大小是 n + 4 个字节。
Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储空间的大小是 n + 4个字节,不是n 个字节。
2、字符数据类型。
字符数据类型包括char、varchar和text。
字符数据是由字母、符号和数字的任意组合组成的数据。
varchar是可变长度字符数据,其长度不超过8kb。char是最大长度为8kb的固定长度字符数据。超过8kb的ASCII数据可以使用文本数据类型存储。
3、Unicode 数据类型。
Unicode数据类型包括nchar、nvarchar和ntext。
在Microsoft SQL Server中,传统的非Unicode数据类型允许使用由特定字符集定义的字符。在安装SQL Server期间,允许选择字符集。
在Unicode标准中,包含由各种字符集定义的所有字符。使用Unicode数据类型占用的空间是使用非Unicode数据类型的两倍。
4、日期和时间数据类型。
日期和时间数据类型包括 Datetime 和 Smalldatetime两种类型。
日期和时间数据类型由有效的日期和时间组成。
例如,有效的日期和时间数据包括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。
前一个数据类型是日期在前,时间在后。后一个数据类型是时间在前,日期在后。
在 Microsoft SQL Server中,日期和时间数据类型包括Datetime 和 Smalldatetime 两种类型时,所存储的日期范围是从 1753 年 1 月 1 日开始,到9999 年12 月 31 日结束(每一个值要求 8 个存储字节)。-c
5、数字数据类型。
数字数据只包含数字。数字数据类型包括正数和负数、小数(浮点)和整数。
整数由正整数和负整数组成,如39、25、0-2和33967。在Microsoft SQL Server中,存储在整数中的数据类型是int、smallint和tinyint。
int数据类型存储的数据多于smallint数据类型,而smallint数据类型存储的数据多于tinyint数据类型。
使用int数据类型存储数据的范围从-2 147 483 648到2 147 483 647(每个值需要四个字节的存储空间)。
6、货币数据类型。
在 Microsoft SQL Server 中,货币数据的数据类型是Money 和 Smallmoney
Money数据类型要求 8 个存储字节,Smallmoney 数据类型要求 4 个存储字节。
参考资料来源:百度百科-SQL数据类型
“~”这个符号是什么意思
回答
您好很高兴为您解答,~ 英文符号叫 Tilde , (意思是 颚化符号,鼻音化符号,代字号),中文 俗称 波浪号。是一个有许多用途的标点符号。原本,它是做为缩写符号的一个字母,但亦有做为变音符号或单一文字的用途。在数学上,它是代表等价关系的数学符号。在最后一个用途里(尤其是在辞书学里),它有时会被当做代字号。
-是什么意思
1、在语言里,波浪号是放在字母上的一变音符音,用来表示发音的改变,如鼻音化。
2、在希腊语的多声调拼写法里,波浪号为抑扬符号的变体。
3、它被当做缩写来使用于中古拉丁语的文书上。当「n」或「m」跟在一母音后时,它常常会被忽略掉,而将波浪号放在前一母音上面来表示此一忽略子母。这是波浪号被用来表示鼻音化的起源。直到17世纪为止,用以忽略「n」或「m」的母音上之波浪号持续被用在法语出版书籍上以缩短文章的长度。波浪号偶尔亦被使用在其他的缩写上,如字母「q」上来强调单字que(那)。
-c
4、在葡萄牙语和一些如图皮语诸语言等的南美土语内,波浪号标示一鼻化母音。另外,图皮语诸语言的瓜拉尼语还有使用G̃这个字母。
5、在西班牙语和其他如加里西亚语、巴斯克语和巴拉圭语等文化上被西班牙影响的语言里,ñ是一单独字母,表示一硬颚鼻音(IPA [ɲ])。在西班牙语里,它原本写做nn。
6、在爱沙尼亚语里,õ是一单独字母,表示一单独母音。
7、在越南语里,母音上的波浪号表示一下沉声调。
8、在IPA里,在一符号上的波浪号表示其鼻音化,而在一符号中的则表示其软颚音化。例如,法国城市Lyon的发音为[ljɔ̃],及澳式英语中「cool」的发音为[kʊ:ɫ]。
9、在日常文字交流中,用来表示一定的范围。例如短信、书信或者即时聊天中,往往用A~B来表示范围为A至B,如:1~3,C~D等。
10、一般用聊天工具聊天时,中间喜欢加入“~”的这种说话方式,反映聊天者意味不明、暧昧、高兴等。此种聊天者多为萌系女生和较为可爱的男生,譬如时下流行的萌妹子、暖男、小鲜肉等等,基本都是属于此类
更多9条
mysql数据类型中blob和binary的区别
MySQL 数据类型细分下来,大概有以下几类:
数值,典型代表为 tinyint,int,bigint
浮点/定点,典型代表为 float,double,decimal 以及相关的同义词
字符串,典型代表为 char,varchar
时间日期,典型代表为 date,datetime,time,timestamp
二进制,典型代表为 binary,varbinary
位类型
枚举类型
集合类型
大对象,比如 text,blob
json 文档类型
一、数值类型(不是数据类型,别看错了)如果用来存放整数,根据范围的不同,选择不同的类型。
以上是几个整数选型的例子。整数的应用范围最广泛,可以用来存储数字,也可以用来存储时间戳,还可以用来存储其他类型转换为数字后的编码,如 IPv4 等。示例 1用 int32 来存放 IPv4 地址,比单纯用字符串节省空间。表 x1,字段 ipaddr,利用函数 inet_aton,检索的话用函数 inet_ntoa。-是什么意思
查看磁盘空间占用,t3 占用最大,t1 占用最小。所以说如果整数存储范围有固定上限,并且未来也没有必要扩容的话,建议选择最小的类型,当然了对其他类型也适用。root@ytt-pc:/var/lib/mysql/3305/ytt# ls -sihl总用量 3.0G3541825 861M -rw-r----- 1 mysql mysql 860M 12月 10 11:36 t1.ibd3541820 989M -rw-r----- 1 mysql mysql 988M 12月 10 11:38 t2.ibd3541823 1.2G -rw-r----- 1 mysql mysql 1.2G 12月 10 11:39 t3.ibd-c
二、浮点数 / 定点数先说 浮点数,float 和 double 都代表浮点数,区别简单记就是 float 默认占 4 Byte。float(p) 中的 p 代表整数位最小精度。如果 p 》 24 则直接转换为 double,占 8 Byte。p 最大值为 53,但最大值存在计算不精确的问题。再说 定点数,包括 decimal 以及同义词 numeric,定点数的整数位和小数位分别存储,有效精度最大不能超过 65。所以区别于 float 的在于精确存储,必须需要精确存储或者精确计算的最好定义为 decimal 即可。示例 3创建一张表 y1,分别给字段 f1,f2,f3 不同的类型。mysql-(ytt/3305)-》create table y1(f1 float,f2 double,f3 decimal(10,2));Query OK, 0 rows affected (0.03 sec)-是什么意思
三、字符类型字符类型和整形一样,用途也很广。用来存储字符、字符串、MySQL 所有未知的类型。可以简单说是万能类型!
char(10) 代表最大支持 10 个字符存储,varhar(10) 虽然和 char(10) 可存储的字符数一样多,不同的是 varchar 类型存储的是实际大小,char 存储的理论固定大小。具体的字节数和字符集相关。示例 4例如下面表 t4 ,两个字段 c1,c2,分别为 char 和 varchar。mysql-(ytt/3305)-》create table t4 (c1 char(20),c2 varchar(20));Query OK, 0 rows affected (0.02 sec)-c
所以在 char 和 varchar 选型上,要注意看是否合适的取值范围。比如固定长度的值,肯定要选择 char;不确定的值,则选择 varchar。
四、日期类型日期类型包含了 date,time,datetime,timestamp,以及 year。year 占 1 Byte,date 占 3 Byte。
time,timestamp,datetime 在不包含小数位时分别占用 3 Byte,4 Byte,8 Byte;小数位部分另外计算磁盘占用,见下面表格。
注意:timestamp 代表的时间戳是一个 int32 存储的整数,取值范围为 ’1970-01-01 00:00:01.000000’ 到 ’2038-01-19 03:14:07.999999’;datetime 取值范围为 ’1000-01-01 00:00:00.000000’ 到 ’9999-12-31 23:59:59.999999’。 -是什么意思
1. 如果时间有可能超过时间戳范围,优先选择 datetime。2. 如果需要单独获取年份值,比如按照年来分区,按照年来检索等,最好在表中添加一个 year 类型来参与。3. 如果需要单独获取日期或者时间,最好是单独存放,而不是简单的用 datetime 或者 timestamp。后面检索时,再加函数过滤,以免后期增加 SQL 编写带来额外消耗。-c
建立表 t5,对这些可能需要的字段全部分离开,这样以后写 SQL 语句的时候就很容易了。
当然了,这种情形占用额外的磁盘空间。如果想在易用性与空间占用量大这两点来折中,可以用 MySQL 的虚拟列来实时计算。比如假设 c5 字段不存在,想要得到 c5 的结果。mysql-(ytt/3305)-》alter table t5 drop c5, add c5 year generated always as (year(c1)) virtual;Query OK, 1 row affected (2.46 sec)Records: 1 Duplicates: 0 Warnings: 0-是什么意思
五、二进制类型
binary(10)/varbinary(10) 代表的不是字符个数,而是字节数。
行结束符不一样。char 的行结束符是 \0,binary 的行结束符是 0x00。
由于是二进制存储,所以字符编码以及排序规则这类就直接无效了。
六、位类型
1. 对于 bit(8) 如果单纯存放 1 位,左边以 0 填充 00000001。2. 查询时可以直接十进制来过滤数据。3. 如果此字段加上索引,MySQL 不会自己做类型转换,只能用二进制来过滤。-c
创建表 c1, 字段性别定义一个比特位。mysql-(ytt/3305)-》create table c1(gender bit(1));Query OK, 0 rows affected (0.02 sec)-是什么意思
mysql-(ytt/3305)-》select cast(gender as unsigned) ’f1’ from c1;+------+| f1 |+------+| 0 || 1 |+------+2 rows in set (0.00 sec)-c
过滤数据也一样,二进制或者直接十进制都行。mysql-(ytt/3305)-》select conv(gender,16,10) as gender \ -》 from c1 where gender = b’1’; +--------+| gender |+--------+| 1 |+--------+1 row in set (0.00 sec) mysql-(ytt/3305)-》select conv(gender,16,10) as gender \ -》 from c1 where gender = ’1’;+--------+| gender |+--------+| 1 |+--------+1 row in set (0.00 sec)-是什么意思
mysql-(ytt/3305)-》create table c2(gender char(0));Query OK, 0 rows affected (0.03 sec)
mysql-(ytt/3305)-》select count(*) from c1;+----------+| count(*) |+----------+| 33554432 |+----------+1 row in set (1.37 sec)-c
mysql-(ytt/3305)-》insert into c2 select if(gender = 0,’’,null) from c1;Query OK, 33554432 rows affected (2 min 18.80 sec)Records: 33554432 Duplicates: 0 Warnings: 0-是什么意思
两张表的磁盘占用差不多。root@ytt-pc:/var/lib/mysql/3305/ytt# ls -sihl总用量 1.9G4085684 933M -rw-r----- 1 mysql mysql 932M 12月 11 10:16 c1.ibd4082686 917M -rw-r----- 1 mysql mysql 916M 12月 11 10:22 c2.ibd-c
检索方式稍微有些不同,不过效率也差不多。所以说,字符类型不愧为万能类型。
七、枚举类型
1. 最大占用 2 Byte。2. 最大支持 65535 个不同元素。3. MySQL 后台存储以下标的方式,也就是 tinyint 或者 smallint 的方式,下标从 1 开始。4. 排序时按照下标排序,而不是按照里面元素的数据类型。所以这点要格外注意。-是什么意思
创建表 t7。mysql-(ytt/3305)-》create table t7(c1 enum(’mysql’,’oracle’,’dble’,’postgresql’,’mongodb’,’redis’,’db2’,’sql server’));Query OK, 0 rows affected (0.03 sec)-c
1. 最大占用 8 Byte,int64。2. 内部以二进制位的方式存储,对应的下标如果以十进制来看,就分别为 1,2,4,8,...,pow(2,63)。3. 最大支持 64 个不同的元素,重复元素的插入,取出来直接去重。4. 元素之间可以组合插入,比如下标为 1 和 2 的可以一起插入,直接插入 3 即可。-是什么意思
mysql-(ytt/3305)-》create table c7(c1 set(’mysql’,’oracle’,’dble’,’postgresql’,’mongodb’,’redis’,’db2’,’sql server’));Query OK, 0 rows affected (0.02 sec)-c
mysql-(ytt/3305)-》INSERT INTO c7WITH RECURSIVE ytt_number (cnt) AS ( SELECT 1 AS cnt UNION ALL SELECT cnt + 1 FROM ytt_number WHERE cnt 《 pow(2, 7) )SELECT *FROM ytt_number;Query OK, 128 rows affected (0.01 sec)Records: 128 Duplicates: 0 Warnings: 0-是什么意思
示例 10
mysql-(ytt/3305)-》select ytt_sample_data_type(1111,222) ’result’;+--------------------------+| result |+--------------------------+| The result is: ’246642’. |+--------------------------+1 row in set (0.00 sec)-c
请点击输入图片描述
请点击输入图片描述
请点击输入图片描述
综上所述,日期这块类型的选择遵循以下原则:
4. 如果有保存毫秒类似的需求,最好是用时间类型自己的特性,不要直接用字符类型来代替。MySQL 内部的类型转换对资源额外的消耗也是需要考虑的。
示例 5
binary 和 varbinary 对应了 char 和 varchar 的二进制存储,相关的特性都一样。不同的有以下几点:
示例 6
来看这个 binary 存取的简单示例,还是之前的变量 @a。
切记!这里要提前计算好 @a 占用的字节数,以防存储溢出。
bit 为 MySQL 里存储比特位的类型,最大支持 64 比特位, 直接以二进制方式存储,一般用来存储状态类的信息。比如,性别,真假等。具有以下特性:
示例 7
其实这样的场景,也可以定义为 char(0),这也是类似于 bit 非常优化的一种用法。
那现在我给表 c1 简单的造点测试数据。
把 c1 的数据全部插入 c2。
枚举类型,也即 enum。适合提前规划好了所有已经知道的值,且未来最好不要加新值的情形。枚举类型有以下特性:
示例 8
八、集合类型
集合类型 SET 和枚举类似,也是得提前知道有多少个元素。SET 有以下特点:
示例 9
定义表 c7 字段 c1 为 set 类型,包含了 8 个值,也就是下表最大为 pow(2,7)。
插入 1 到 128 的所有组合。
九、数据类型在存储函数中的用法
函数里除了显式声明的变量外,默认 session 变量的数据类型很弱,随着给定值的不同随意转换。
定义一个函数,返回两个给定参数的乘积。定义里有两个变量,一个是 v_tmp 显式定义为 int64,另外一个 @vresult 随着给定值的类型随意变换类型。
简单调用下。
总结
本篇把 MySQL 基本的数据类型做了简单的介绍,并且用了一些容易理解的示例来梳理这些类型。我们在实际场景中,建议选择适合最合适的类型,不建议所有数据类型简单的最大化原则。比如能用 varchar(100),不用 varchar(1000)。-是什么意思