精华内容
下载资源
问答
  • 字符串基本使用 CHAR 和 VARCHAR基本用法:CHAR(size)固定长度字符串,最大255字符VARCHAR(size)可变长度字符串 ,最大 65532字节;[utf8最大编码21844字符,1-3字节用于记录大小]#2. char和varchar 字符占用char(4...

    #    1. 字符串基本使用 CHAR 和 VARCHAR

    基本用法:

    CHAR(size)

    固定长度字符串,最大255字符

    VARCHAR(size)

    可变长度字符串 ,最大 65532字节;[utf8最大编码21844字符,1-3字节用于记录大小]

    #    2. char和varchar 字符占用

    char(4)    这里的4表示字符数(绝对最大为255),即不管中文还是字母都是可存放4个,按字符计算

    varchar(4)    这里的4同样表示字符数,即无论是中文还是字母都以定义的表的编码来存放,utf8 占3个字节,gbk占2个字节

    #    3. varchar(n) 中 n 的范围大小确定

    1> varchar   n 的长度可以指定为 0~65535 之间的值,其中1-3个字节用来记录该字节的大小,故有效字节数为 65532 = 65535 - 3

    2> 当表的编码为 utf8 时,varchar(n) 最大值为 65532/3 = 21844  [utf8 中,一个汉字占3字节];表编码为 gbk 时,varchar(n) 最大值为 65532/2 = 32766  [gbk 中,一个汉字占2字节]

    CREATE TABLE chr_var (id int, num varchar(21844)) character set utf8;

    CREATE TABLE chr_var (id int ,num varchar(32766))  character set gbk;

    3> mysql 中 varchar 单行数据 最大不能超出 65535

    int 的4 个字节 +     varchar + 3个记录大小的字节 ≤ 65535;

    #    4. char() 和 varchar () 空间占用的机制区别

    char(4) 是定长的, 其中的4就表示占用4个字符,即使你插入的'aa',系统也会分配4个字符;

    varchar(4) 是变长的,插入'aa',实际占用空间大小为 L +1,其中L是字串的实际大小, 1 是用来记录字串大小的一个字节,剩余 2个字节保留[1-3字节记录字符大小];

    #    5. char() 和 varchar () 选择使用

    1> 查询速度 : char > varchar ;

    2> 空间利用: varchar > char;

    3>  char 在存放尾部有空格的字串时,空格会丢失;varchar 则保留;

    #    6. Text 类型

    在存放文本时也可以使用Text 类型,基本用法与 varchar 基本一致;在定义时不要使用默认值

    CREATE TABLE my_arc(id int,comment  text  not  null );/ * 在这里不要使用default等 ,其他可当做varchar来对待 */

    #     7.日期和时间类型52b15c0c2e2b1b68adeb0e68cdd52a17.png日期时间

    例如:

    CREATE TABLE san_bir (

    t1  date,

    t2  datetime,

    t3  timestamp);262b0036192c5c54de3c7a236975f3be.pngdate/datetime

    这里 可以看到timestamp自动添加当前操作记录时间。

    展开全文
  • MySQL中数据类型 [数值型、字符串型、时间日期型] MySQL中各数据类型 1. 数值类型(整型) 2. 时间和日期类型 3. 字符串类型 char与varchar的区别: char:固定长度字符串长度可以指定为从0到255任何值。当...

    MySQL中的数据类型 [数值型、字符串型、时间日期型]

    MySQL中各数据类型

    1. 数值类型(整型)

    在这里插入图片描述

    2. 时间和日期类型

    在这里插入图片描述

    3. 字符串类型

    char与varchar的区别:
    char:固定长度字符串。长度可以指定为从0到255的任何值。当保存char值时,在它们的右边填充空格以达到指定的长度。当检索到char值时,尾部的空格被删除掉。
    varchar:可变长度字符串。长度可以指定为0到65,535之间的值。另外varchar需要用额外的1-2个字节存储字符串长度 。当检索到varchar值时,尾部的空格仍然保留。因此,VARCHAR列的有效最大长度为65,532字符。

    • varchar(M):
      当字符串长度M小于255时,用额外的1个字节来记录长度,存储空间L+1。[L为值的长度]
      当字符串长度M大于255时,用额外的2个字节来记录长度,存储空间L+2。[L为值的长度]
    • char(M):存储空间 = 指定的长度 (0 <= M <= 255)
    • 比如:char(255)和varchar(255),在存储字符串"hello world"时:
      char会用255个字节的空间放那个11个字符;
      varchar就不会用255个,它先计算字符串长度为11,然后再加上一个记录字符串长度的字节,一共用12个字节存储,这样varchar在存储不确定长度的字符串时会大大减少存储空间。
    • 从效率上考虑,固定长度,存储空间一次性分配,CHAR更好(长度较短的字段:门牌号等、固定长度的字段:性别、身份证号、手机号等)。
    • 从空间上考虑,可变长度,根据长度动态调整存储空间,VARCHAR更好。
    • 下面的表显示了将各种字符串值保存到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别:
      在这里插入图片描述
      另外:
    • varchar(n):为n个字节的可变长度,且非Unicode的字符数据。n的值必须介于1与8,000之间的数值。存储大小是输入数据的字节的实际长度
    • nvarchar(n):为n个字符的可变长度,且Unicode字符数据。n的值必须介于1与4,000之间的数值。存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。

    4. 数值类型的存储空间

    在这里插入图片描述
    decimal和numeric类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值,并且要指定标度和精度,例如货币数据。
    在这里插入图片描述

    • 实际上小数数值只有两种数据类型:float 和 decimal,分别是近似数值和精确数值。
    • 其他小数类型,都可以使用float和decimal来替代,例如,双精度(double precision)数据类型等价于
      float(53),real等价于float(24)。
    • numeric是 decimal的同义词,应该避免在程序中直接使用 double precision、real和numeric,而是用
      float(24) 、float(53)和decimal 代替。

    5. 字符串类型的存储空间[L为值的长度]

    在这里插入图片描述
    VARCHAR、BLOB和TEXT类是变长类型。每个类型的存储需求取决于列值的实际长度(用前面的表中的L表示)。
    在这里插入图片描述
    varbinary、binary、char、varchar异同:

    • 1:
      binary 与 varbinary 类型和char与varchar类型是相似的,只是他们存储的是二进制数据,也就是说他们是包含字节流而不是字符流,他们有二进制字符的集合和顺序,他们的对比,排序是基于字节的数值进行的。
      binary与varbinary的最大长度和char与varchar是一样的,只不过他们是定义字节长度,而char和varchar对应的是字符长度。
    • 2:
      存储和取出时对尾部空格的处理:
       char(N)用来存储非二进制字符串,插入时,对于少于N个字符的会自动在尾部加空格,查询时,尾部的空格就会被丢弃掉
       vachar(N) 用来存储非二进制字符串,插入时,对于少于N个字符的不填补空格,查询时,尾部的空格不会被丢弃掉
       binary(N)存储二进制字符串,插入进,少于N个字节的会自动在尾部加0x00,取出时,所有的字节都保留,返回定义长度的字节长度,在比较的时候,所有的字节都是有效的,并且0x00<space (space对应的是0x20)
       varbinary在插入不会去填补0x00字节,查询的时候也不会丢弃任何字节,在比较的时候,所有的字节都是有效的,并且0x00<space (space对应的是0x20)
    • 3:
      大小比较时:
        char与varchar的字符比较中,是忽略大小写与最后的空格的.
        binary及varbinary的字节比较中,所有的信息都不会被忽略.

    参考文档:
    MySql中char、varchar和nvarchar的区别:https://www.cnblogs.com/zeroingToOne/p/9568687.html
    MySql数据类型的取值范围:https://www.csdn.net/gather_25/MtTaIgzsMDg3MC1ibG9n.html
    MySql中bigint、int、mediumint、smallint 和 tinyint的取值范围:https://blog.csdn.net/iteye_7932/article/details/82399758
    数据库中char, nchar,varchar, nvarchar的差异:https://jingyan.baidu.com/article/c85b7a645639ac003bac959a.html
    SQL Server 小数类型(float 和 decimal):https://www.cnblogs.com/ljhdo/p/4910699.html
    mysql中varbinary、binary、char、varchar异同:https://www.cnblogs.com/zejin2008/p/6606120.html

    展开全文
  • MySQL数据类型--------字符串类型实战发布时间:2020-05-14 15:23:04来源:51CTO阅读:1367作者...2. 字符串类型所需存储和值范围类型说明N含义是否有字符集最大长度CHAR(N)定义字符字符是255VARCHAR(N)变长字符...

    MySQL数据类型--------字符串类型实战

    发布时间:2020-05-14 15:23:04

    来源:51CTO

    阅读:1367

    作者:asd1123509133

    1. 背景

    * MySQL支持的字符串类型有CHAR、VARCHAR、二进制、var二进制、BLOB、文本等等。

    2. 字符串类型所需的存储和值范围类型说明N的含义是否有字符集最大长度

    CHAR(N)定义字符字符是255

    VARCHAR(N)变长字符字符是16384

    BINARY(N)定长二进制字节字节否255

    VARBINARY(N)变长二进制字节字节否16384

    TINYBLOB二进制大对象字节否256

    BLOB二进制大对象字节否16K

    MEDIUMBLOB二进制大对象字节否16M

    LONGBLOB二进制大对象字节否4G

    TINYTEXT大对象字节是256

    TEXT大对象字节是16K

    MEDUIMBLOB大对象字节是16M

    LONGTEXT大对象字节是4G

    3. 定义与变长区别 (CHAR VS VARCHAR)值CHAR(4)占用空间VARHCAR(4)占用空间

    '''    '4 bytes''1 bytes

    'ab''ab  '4 bytes'ab'3 bytes

    'abcd''abcd'4 bytes'abcd'5 bytes

    'abcdefgh''abcd'4 bytes'abcd'5 bytes

    4. 字符串类型相关注意事项

    * 在BLOB和TEXT列上创建索引时,必须制定索引前缀的长度

    * VARCHAR和VARBINARY必须长度是可选的

    * BLOB和TEXT列不能有默认值

    * BLOB和TEXT列排序时只使用该列的前max_sort_length个字节mysql> show variables like 'max_sort_length';

    +-----------------+-------+

    | Variable_name   | Value |

    +-----------------+-------+

    | max_sort_length | 1024  |

    +-----------------+-------+

    1 row in set (0.01 sec)

    5. 字符串类型与排序规则

    * 查看字符串相关信息 [ Default collation: 默认排序规则 ]mysql> show character set like 'utf8mb4';

    +---------+---------------+--------------------+--------+

    | Charset | Description   | Default collation  | Maxlen |

    +---------+---------------+--------------------+--------+

    | utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci |      4 |

    +---------+---------------+--------------------+--------+

    1 row in set (0.01 sec)

    * 查看utfmb4所有排序规则mysql> show collation like 'utf8mb4%';

    +------------------------+---------+-----+---------+----------+---------+

    | Collation              | Charset | Id  | Default | Compiled | Sortlen |

    +------------------------+---------+-----+---------+----------+---------+

    | utf8mb4_general_ci     | utf8mb4 |  45 | Yes     | Yes      |       1 |

    | utf8mb4_bin            | utf8mb4 |  46 |         | Yes      |       1 |

    | utf8mb4_unicode_ci     | utf8mb4 | 224 |         | Yes      |       8 |

    | utf8mb4_icelandic_ci   | utf8mb4 | 225 |         | Yes      |       8 |

    | utf8mb4_latvian_ci     | utf8mb4 | 226 |         | Yes      |       8 |

    | utf8mb4_romanian_ci    | utf8mb4 | 227 |         | Yes      |       8 |

    | utf8mb4_slovenian_ci   | utf8mb4 | 228 |         | Yes      |       8 |

    | utf8mb4_polish_ci      | utf8mb4 | 229 |         | Yes      |       8 |

    | utf8mb4_estonian_ci    | utf8mb4 | 230 |         | Yes      |       8 |

    | utf8mb4_spanish_ci     | utf8mb4 | 231 |         | Yes      |       8 |

    | utf8mb4_swedish_ci     | utf8mb4 | 232 |         | Yes      |       8 |

    | utf8mb4_turkish_ci     | utf8mb4 | 233 |         | Yes      |       8 |

    | utf8mb4_czech_ci       | utf8mb4 | 234 |         | Yes      |       8 |

    | utf8mb4_danish_ci      | utf8mb4 | 235 |         | Yes      |       8 |

    | utf8mb4_lithuanian_ci  | utf8mb4 | 236 |         | Yes      |       8 |

    | utf8mb4_slovak_ci      | utf8mb4 | 237 |         | Yes      |       8 |

    | utf8mb4_spanish3_ci    | utf8mb4 | 238 |         | Yes      |       8 |

    | utf8mb4_roman_ci       | utf8mb4 | 239 |         | Yes      |       8 |

    | utf8mb4_persian_ci     | utf8mb4 | 240 |         | Yes      |       8 |

    | utf8mb4_esperanto_ci   | utf8mb4 | 241 |         | Yes      |       8 |

    | utf8mb4_hungarian_ci   | utf8mb4 | 242 |         | Yes      |       8 |

    | utf8mb4_sinhala_ci     | utf8mb4 | 243 |         | Yes      |       8 |

    | utf8mb4_german2_ci     | utf8mb4 | 244 |         | Yes      |       8 |

    | utf8mb4_croatian_ci    | utf8mb4 | 245 |         | Yes      |       8 |

    | utf8mb4_unicode_520_ci | utf8mb4 | 246 |         | Yes      |       8 |

    | utf8mb4_vietnamese_ci  | utf8mb4 | 247 |         | Yes      |       8 |

    +------------------------+---------+-----+---------+----------+---------+

    26 rows in set (0.00 sec)

    * 修改默认排序规则mysql> set names utf8mb4 collate utf8mb4_bin;

    Query OK, 0 rows affected (0.00 sec)

    mysql> show character set like 'utf8mb4';

    +---------+---------------+--------------------+--------+

    | Charset | Description   | Default collation  | Maxlen |

    +---------+---------------+--------------------+--------+

    | utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci |      4 |

    +---------+---------------+--------------------+--------+

    1 row in set (0.00 sec)

    6. 总结

    以需求驱动技术,技术本身没有优略之分,只有业务之分。

    展开全文
  • 平常我们用Oracle主要有两种字符串类型1.char始终为固定的长度,如果设置了长度小于char列的值,则Oracle会自动用空格填充的。当比较char时,Oracle用空格将其填充为等长,再进行比较。2.VarChar2数据类型为可变长度...

    最近换了新公司,又用回Oracle数据库了,很多东西都忘记了,只是有个印象,这两晚抽了点时间,把oracle对字符串的一些处理函数做了一下整理,供日后查看。。

    平常我们用Oracle主要有两种字符串类型

    1.char始终为固定的长度,如果设置了长度小于char列的值,则Oracle会自动用空格填充的。当比较char时,Oracle用空格将其填充为等长,再进行比较。

    2.VarChar2数据类型为可变长度,虽然与VarChar数据类型是同义的,但在今后的Oracle版本中也许会有变化,所以应该避免使用VarChar,优先使用VarChar2。

    固定长度的字符串字段使用Char,而其他所有的字符串字段都应使用VarChar2.

    下面列出部分Oracle针对字符串操作的一些函数,以下函数可以使用在字符串上,也可以使用在列名上:

    1.LOWER(string) 将输入的字符串转换成小写

    2.UPPER(string) 将输入的字符串转换成大写

    3.INITCAP(string) 将输入的字符串单词的首字母转换成大写。PS:如果不是两个字母连在一起,则认为是新的单词,例:a_b a,b  a b  类似前面这些情况,都a和b都会转换成大写

    4.连接符(||),将两个字符串用||连接起来,除此之外还可以使用Concat函数来连接字符串。例:select CONCAT(City,country) from Table

    5.LPAD和RPAD,填充函数,这是两个十分相似的函数,使用方式完全一样。允许在列的左[右]边填充一组字符。例:RPAD(city,20,'.'),如果ciy的值没有小于长度20的话,则用'.'在右边补齐,补到20个,如果是用空格补齐,看上去就是像左对齐一样。

    6.LTRIM,RTRIM和TRIM,他们的作用是从字符串的左边,右边,左右两边删除不需要的字符,默认时删除空格。

    式:RTRIM、LTRIM(字符串,'删除字符集')

    第一个参数就是要进行删除的字符,第二个参数是一个字符集来的,如果填写的是'AB',Oracle会认为是A和B,然后反复检查字符串的右端,直到字符

    串中的每个字符都被删除了,也就是说,直到遇到被删除字符集中未出现的第一个字符时,才停止删除。这样讲可能有点不是很明白,看下面例子

    原数据

    1 AAA.

    2 AAA."

    3 AA.AAB

    RTRIM(name,'.B"')

    1 AAA

    2 AAA

    3 AA.AA

    如果觉得不够明白的话,自己试多几次就明白了!我也觉得讲得好像不是很清楚一样!

    TRIM

    格式有点不一样,直接看例子吧 select trim('A' from 列名) from tableName 或者trim(leading

    'A' from 列名)或者trim(trailing 'A' from 列名)

    等价于LTRIM和RTRIM函数一样,其实TRIM函数就只是为了简化代码而以。

    7.LENGTH 该函数很简单,就是告诉用户一个字符串有多长,即字符串中有多少个字符,该函数本身并不是很好用,但可以做为其它函数的一部分,用于计算表格需要多少空格,或者做为orderby 子句的一部分。PS:您不能对一个使用LONG数据类型的列使用LENGTH之类的函数。

    8.SUBSTR(string,start [,count]) 该函数告诉oracle提取出string一个子集,start开始位置,count提取长度,不指定count时,默认提取到该字符串的尾部。

    start同时也可以指定为负数,指定为正数的时候是从字符串的起始位置开始算(左边),指定负数时,是从末尾位置算(右边)。PS:负数不能使用于Char数据类型,因为Char是固定长度的,   所以将使用空格填充他们的值,直到扩展到列的全长。

    9.INSTR 返回指定的字符串所在的位置

    INSTR(string,set[,start [,occurrence ] ] )

    如果指定start,oracle则跳过前面所有字符串到该位置开始搜索,occurence,是强迫instr跳过前几次与字符串匹配,给出下一次匹配

    的位置,如果occurence指定3,那就是匹配第三次的位置了。 例 instr('ABACAAA','A',2,2)

    从ABACAAA中匹配A这个字符串,从2个位置开始匹配,匹配第2次A所在的位置。PS:如果set中不止有一个字符而是有几个字符组成的,则

    INSTR给出该字符集中的第一个字符的位置。

    10.Chr和ascii函数在即席查询中很少使用。Chr把数值转换成等价的ascii字符串 例:select chr(70) from dual

    ascii函数执行的结果刚好是相反的,传递给他字符串,它将转换成对应的数值(只转换第一个字符串),如果需要同时转换多个字符串可以使用DUMP函数 DUMP(string)

    PS:INSTR,REPLACE和SUBSTR的功能已经得到扩展,可以支持正则表达式。

    通过以上函数可以单独使用或者组合使用,这是一个简单的过程,即将简单的逻辑步骤组合起来完成非常复杂的任务。

    后续应该还会有一些Oracle方面的日志记录吧。。

    字符函数——返回字符值

    这些函数全都接收的是字符族类型的参数(CHR 除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值.字符函数的返回类型所受的限制和基本数据库类型所受的限制是 相同的,比如: VARCHAR2数值被限制为2000字符(ORACLE 8中为4000字符),而CHAR数值被限制为255字符(在ORACLE8中是2000).当在过程性语句中使用时,它们可以被赋值给VARCHAR2 或者CHAR类型的PL/SQL变量.

    CHR

    语法: chr(x)

    功能:返回在数据库字符集中与X拥有等价数值的字符。CHR和ASCII是一对反函数。经过CHR转换后的字符再经过ASCII转换又得到了原来的字符。

    使用位置:过程性语句和SQL语句。

    CONCAT

    语法: CONCAT(string1,string2)

    功能:返回string1,并且在后面连接string2。

    使用位置:过程性语句和SQL语句。

    INITCAP

    语法:INITCAP(string)

    功能:返回字符串的每个单词的第一个字母大写而单词中的其他字母小写的string。单词是用.空格或给字母数字字符进行分隔。不是字母的字符不变动。

    使用位置:过程性语句和SQL语句。

    LTRIM

    语法:LTRIM(string1,string2)

    功能:返回删除从左边算起出现在string2中的字符的string1。String2被缺省设置为单个的空格。数据库将扫描string1,从最左边开始。当遇到不在string2中的第一个字符,结果就被返回了。LTRIM的行为方式与RTRIM很相似。

    使用位置:过程性语句和SQL语句。

    NLS_INITCAP

    语法:NLS_INITCAP(string[,nlsparams])

    功能:返回字符串每个单词第一个字母大写而单词中的其他字母小写的string,nlsparams

    指定了不同于该会话缺省值的不同排序序列。如果不指定参数,则功能和INITCAP相同。Nlsparams可以使用的形式是:

    ‘NLS_SORT=sort’

    这里sort制订了一个语言排序序列。

    使用位置:过程性语句和SQL语句。

    NLS_LOWER

    语法:NLS_LOWER(string[,nlsparams])

    功能:返回字符串中的所有字母都是小写形式的string。不是字母的字符不变。

    Nlsparams参数的形式与用途和NLS_INITCAP中的nlsparams参数是相同的。如果nlsparams没有被包含,那么NLS_LOWER所作的处理和LOWER相同。

    使用位置;过程性语句和SQL语句。

    NLS_UPPER

    语法:nls_upper(string[,nlsparams])

    功能:返回字符串中的所有字母都是大写的形式的string。不是字母的字符不变。nlsparams参数的形式与用途和NLS_INITCAP中的相同。如果没有设定参数,则NLS_UPPER功能和UPPER相同。

    使用位置:过程性语句和SQL语句。

    REPLACE

    语法:REPLACE(string,search_str[,replace_str])

    功能:把string中的所有的子字符串search_str用可选的replace_str替换,如果没有指定replace_str,所有的string中的子字符串search_str都将被删除。REPLACE是TRANSLATE所提供的功能的一个子集。

    使用位置:过程性语句和SQL语句。

    RPAD

    语法:RPAD(string1,x[,string2])

    功能:返回在X 字符长度的位置上插入一个string2中的字符的string1。如果string2的长度要比X字符少,就按照需要进行复制。如果string2多于 X字符,则仅string1前面的X各字符被使用。如果没有指定string2,那么使用空格进行填充。X是使用显示长度可以比字符串的实际长度要长。 RPAD的行为方式与LPAD很相似,除了它是在右边而不是在左边进行填充。

    使用位置:过程性语句和SQL语句。

    RTRIM

    语法: RTRIM(string1,[,string2])

    功能:返回删除从右边算起出现在string1中出现的字符string2. string2被缺省设置为单个的空格.数据库将扫描string1,从右边开始.当遇到不在string2中的第一个字符,结果就被返回了RTRIM的行为方式与LTRIM很相似.

    使用位置:过程性语句和SQL语句。

    SOUNDEX

    语法: SOUNDEX(string)

    功能:返回string的声音表示形式.这对于比较两个拼写不同但是发音类似的单词而言很有帮助.

    使用位置:过程性语句和SQL语句。

    SUBSTR  截取子串

    语法: SUBSTR(string,a[,b])

    功能: 返回从a位置开始的b个字符长的string的一个子字符串. 第一个字符的位置是1. 如 果a是0,那么它就被认为从第一个字符开始.如果是正数,返回字符是从左边向右边进行计算的.如果b是负数,那么返回的字符是从string的末尾开始从 右向左进行计算的.如果b不存在,那么它将缺省的设置为整个字符串.如果b小于1,那么将返回NULL.如果a或b使用了浮点数,那么该数值将在处理进行 以前首先被却为一个整数.

    使用位置:过程性语句和SQL语句。

    TRANSLATE

    语法: TRANSLATE(string,from_str,to_str)

    功能:返回将所出现的from_str 中的每个字符替换为to_str中的相应字符以后的string. TRANSLATE是REPLACE所提供的功能的一个超集.如果from_str比to_str长,那么在from_str中而不在to_str中而外 的字符将从string中被删除,因为它们没有相应的替换字符. to_str不能为空.Oracle把空字符串认为是NULL,并且如果TRANSLATE中的任何参数为NULL,那么结果也是NULL.

    使用位置:过程性语句和SQL语句。

    UPPER

    语法: UPPER(string)

    功能:返回大写的string.不是字母的字符不变.如果string是CHAR数据类型的,那么结果也是CHAR类型的.如果string是VARCHAR2类型的,那么结果也是VARCHAR2类型的.

    使用位置: 过程性语句和SQL语句。

    F.2 字符函数——返回数字

    这些函数接受字符参数回数字结果.参数可以是CHAR或者是VARCHAR2类型的.尽管实际下许多结果都是整数值,但是返回结果都是简单的NUMBER类型的,没有定义任何的精度或刻度范围.

    ASCII

    语法: ASCII(string)

    功能:数据库字符集返回string的第一个字节的十进制表示.请注意该函数仍然称作为ASCII.尽管许多字符集不是7位ASCII.CHR和ASCII是互为相反的函数.CHR得到给定字符编码的响应字符. ASCII得到给定字符的字符编码.

    使用位置: 过程性语句和SQL语句。

    INSTR

    语法: INSTR(string1, string2[a,b])

    功能:得到在string1中包含string2的位置. string1时从左边开始检查的,开始的位置为a,如果a是一个负数,那么string1是从右边开始进行扫描的.第b次出现的位置将被返回. a和b都缺省设置为1,这将会返回在string1中第一次出现string2的位置.如果string2在a和b的规定下没有找到,那么返回0.位置的 计算是相对于string1的开始位置的,不管a和b的取值是多少.

    使用位置: 过程性语句和SQL语句。

    INSTRB

    语法: INSTRB(string1, string2[a,[b]])

    功能:和INSTR相同,只是操作的对参数字符使用的位置的是字节.

    使用位置: 过程性语句和SQL语句。

    LENGTH

    语法: LENGTH(string)

    功能: 返回string的字节单位的长度.CHAR数值是填充空格类型的,如果string由数据类型CHAR,它的结尾的空格都被计算到字符串长度中间.如果string是NULL,返回结果是NULL,而不是0.

    使用位置: 过程性语句和SQL语句。

    LENGTHB

    语法: LENGTHB(string)

    功能:返回以字节为单位的string的长度.对于单字节字符集LENGTHB和LENGTH是一样的.

    使用位置: 过程性语句和SQL语句。

    NLSSORT

    语法: NLSSORT(string[,nlsparams])

    功能:得到用于排序string的字符串字节.所有的数值都被转换为字节字符串,这样在不同数据库之间就保持了一致性. Nlsparams的作用和NLS_INITCAP中的相同.如果忽略参数,会话使用缺省排序.

    使用位置: 过程性语句和SQL语句。

    展开全文
  • Oracle字符串函数

    2019-09-28 08:22:08
    平常我们用Oracle主要有两种字符串类型1.char始终为固定的长度,如果设置了长度小于char列的值,则Oracle会自动用空格填充的。当比较char时,Oracle用空格将其填充为等长,再进行比较。2.VarChar2数据...
  • "ORA-01830: 日期格式图片在转换整个输入字符串之前结" 问题:varchar2类型转换成date类型 原因:INVOICE_DATE=‘2005-11-10 00:00:00’的长度大于格式化'yyyy-mm-dd'的长度 解决: (使用s
  • varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位浮点数...
  • varchar和char区别: 1、varchar在存取方面与char相反,它存取慢,因为...3、超过char和varchar的n设置后,字符串会被截断。 4、char在存储时候会截断尾部空格,varchar不会。 5、char上限为255字节,varchar
  • CHAR与VARCHAR区别:(都是用来存储字符串的)保存和检索方式不同。char属于固定长度的字符类型,而VARCHAR属于可变长字符类型。(时间和空间问题) (在严格模式,超过列长度的值不会被保存,并且会出现错误...
  • 首先建测试表,NAME字段是VARCHAR2(10),10个字节的字符串类型,表有256万数据。我们将其长度改为20,从执行时间看,只有20毫秒,我们对上面操作,做一下10046 trace,发现确实,首先使用LOCK以EXCLUSIV
  • LENGTHB──返回以字节为单位的字符串长度,它和类型定义中的长度是一个概念,比如你定义的varchar2(10)中的10.在不同的数据库,因为字符集 ...在报表中给session赋值实现报表间参数共享1.问题描述 在报表开发工具...
  • 2、MySQL数据类型

    2021-03-10 16:47:26
    目录环境一、简述二、常用三、全部1、数值2、日期/时间3、字符串/字符 环境 一、简述 MySQL支持多种类型,大致分为三类:数值、日期/时间字符串(字符)类型。 MySQL中定义数据字段类型对你数据库优化是非常...
  • mysql sid_mysql学习笔记

    2021-01-20 23:04:08
    字符数据类型Char 固定长度的字符串Varchar 可变长度的字符串2.Unicode数据类型Nchar 固定长度的unicode数据Nvarchar 可变长度的unicode数据Ntext3.numbers数据类型int 整型float带有浮动小数点数字double带有浮动...
  • 目录[隐藏]1字符串类型2数值类型3日期和时间类型4使用建议5艺搜参考字符串类型CHAR 0-255字节 定长字符串VARCHAR(size) 保存可变长度的字符串。在括号中指定字符串最大长度。最多 255 个字符。TINYTEXT 存放最大...
  • 但是注意,VARCHAR:变长字符类型,n为长度,取值范围 1 到 65535STRING:字符串类型,目前长度限制为 8M ;方法4:放弃存储原始数据,改为存储中间结果; 暂时没时间验证以上方案性能,请听日后分解。 ...
  • 1.MySQL数据类型和约束 ...varchar表示可变长度的字符串,如varchar(3),填充’ab’时就会存储’ab’,3表示字符数 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存
  • char和varcha区别

    2018-09-18 22:59:43
    VARCHAR:存储可变长字符串,比定长类型更节省时间,但是需要使用1或2个额外字节记录字符串的长度。 使用场景:字符串列的最大长度比平均长度大很多;列的更新很少,碎片问题不大。 CHAR:定长的,根据需要采用空格...
  • 字符串:char()固定长度的字符串 varchar()非固定长度的字符串 数字:int(4字节) smallint(2字节) bigint(8字节) 数据库引擎:INNODB:安全,用实时事务存储数据,但速度较慢 MEMORY:速度快,用内存存储...
  • 字符串varchar,char char表示固定长度的字符串,如char(3),如果填充’ab’时会补一个空格为’ab ’ varchar表示可变长度的字符串,如varchar(3),填充’ab’时就会存储’ab’。 日期时间: date, time, ...
  • 字符串存储类型char和varchar2的区别 char(10):表示长度为10个字节的字符串,定长,如果长度不为10,就用空格补到10(耗费空间,节省时间) varchar2(10):表示最大长度为10的字符串,如果长度不为10,不用补齐,...
  • 现象: 用过数据库时间函数 ...1:将时间转换为字符串且截取一定长度 2:在指定日期上增加一年进行比较 代码块: SUBSTRING(convert(varchar(100),i.forarrivedate,20),1,4) as year...
  • 固定长度的字符串使用空格向右填充,以保证占用同样字节数。变长字符串不需要向右填充,字节数可变。 类型 最大字节数 描述 char 255 定长字符串 varchar 65 535 可变长字符串 char(n) 和 varchar(n) ...
  • 一.Oracle数据库中常用数据类型 varchar2(长度)可变长字符串 char(长度) 定长 number()表示整数或者浮点数number(8) number(8,2) clog 字符大对象 blog 二进制大对象 ...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 180
精华内容 72
关键字:

时间字符串varchar2的长度