iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL基础教程11 —— 函数之Cast函数和操作符
  • 607
分享到

MySQL基础教程11 —— 函数之Cast函数和操作符

binaryCASTMySQL 2022-05-27 17:05:26 607人浏览 泡泡鱼
摘要

BINARY BINARY操作符将后面的字符串抛给一个二进制字符串。这是一种简单的方式来促使逐字节而不是逐字符的进行列比较。这使得比较区分大小写,即使该列不被定义为 BINARY或 BLOB。BINARY也会产生

  • BINARY

BINARY操作符将后面的字符串抛给一个二进制字符串。这是一种简单的方式来促使逐字节而不是逐字符的进行列比较。这使得比较区分大小写,即使该列不被定义为 BINARY或 BLOB。BINARY也会产生结尾空白,从而更加显眼。

MysqlSELECT 'a' = 'A';

-> 1

mysqlSELECT BINARY 'a' = 'A';

-> 0

mysqlSELECT 'a' = 'a ';

-> 1

mysql> SELECT BINARY 'a' = 'a ';

-> 0

BINARY影响整个比较;它可以在任何操作数前被给定,而产生相同的结果。

BINARY str 是CAST(str AS BINARY)的缩略形式。

注意,在一些语境中,假如你将一个编入索引的列派给BINARY, MySQL 将不能有效使用这个索引。

假如你想要将一个 BLOB值或其它二进制字符串进行区分大小写的比较,你可利用二进制字符串没有字符集这一事实实现这个目的,这样就不会有文书夹的概念。为执行一个区分大小写的比较,可使用  CONVERT()函数将一个字符串值转化为一个不区分大小写的字符集。其结果为一个非二进制字符串,因此 LIKE 操作也不会区分大小写:

SELECT 'A' LIKE CONVERT(blob_col USING latin1) FROM tbl_name;

若要使用一个不同的字符集, 替换其在上述语句中的latin1名。

CONVERT()一般可用于比较出现在不同字符集中的字符串。

  • CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name)

CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。

这个类型 可以是以下值其中的 一个:

    • BINARY[(N)]
    • CHAR[(N)]
    • DATE
    • DATETIME
    • DECIMAL
    • SIGNED [INTEGER]
    • TIME
    • UNSIGNED [INTEGER]

BINARY 产生一个二进制字符串。关于它怎样影响比较结果的说明见本章中 BINARY操作符项。

假如给定了随意长度N,则 BINARY[N] 使 cast使用该参数的不多于 N 个字节。同样的, CHAR[N]会使 cast 使用该参数的不多于N 个字符。

CAST() and CONVERT(... USING ...) 是标准 SQL语法。CONVERT()的非USING 格式是ofis ODBC语法。

带有USING的CONVERT() 被用来在不同的字符集之间转化数据。在 MySQL中, 自动译码名和相应的字符集名称相同。例如。 这个语句将服务器的默认字符集中的字符串 'abc'转化为utf8字符集中相应的字符串:

SELECT CONVERT('abc' USING utf8);

当你想要在一个CREATE ... SELECT 语句中创建一个特殊类型的列,则cast函数会很有用:

CREATE TABLE new_table SELECT CAST('2000-01-01' AS DATE);

该函数也用于ENUM 列按词法顺序的排序。通常ENUM列的排序在使用内部数值时发生。将这些值按照词法顺序派给CHAR 结果:

SELECT enum_col FROM tbl_name ORDER BY CAST(enum_col AS CHAR);

CAST(str AS BINARY)和BINARY str相同 CAST(expr AS CHAR) 将表达式视为一个带有默认字符集的字符串。

若用于一个诸如 CONCAT('Date: ',CAST(NOW() AS DATE))这样的比较复杂的表达式的一部分,CAST()也会改变结果。

你不应在不同的格式中使用 CAST() 来析取数据,但可以使用诸如LEFT() 或 EXTRACT() 的样的字符串函数来代替。请参见“日期和时间函数”。

若要在数值语境中将一个字符串派给一个数值, 通常情况下,除了将字符串值作为数字使用外,你不需要做任何事:

mysql> SELECT 1+'1';

-> 2

若要在一个字符串语境中使用一个数字,该数字会被自动转化为一个BINARY 字符串。

mysql> SELECT CONCAT('hello you ',2);

-> 'hello you 2'

MySQL 支持带符号和无符号的64比特值的运算。若你正在使用数字操作符  (如 +) 而其中一个操作数为无符号整数,则结果为无符号。可使用SIGNED 和UNSIGNED cast 操作符来覆盖它。将运算分别派给带符号或无符号64比特整数。

mysql> SELECT CAST(1-2 AS UNSIGNED)

-> 18446744073709551615

mysql> SELECT CAST(CAST(1-2 AS UNSIGNED) AS SIGNED);

-> -1

注意,假如任意一个操作数为一个浮点值,则结果为一个浮点值, 且不会受到上述规则影响 (关于这一点, DECIMAL 列值被视为浮点值)。

mysql> SELECT CAST(1 AS UNSIGNED) - 2.0;

-> -1.0

若你在一个算术运算中使用了一个字符串,它会被转化为一个浮点数。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL基础教程11 —— 函数之Cast函数和操作符

本文链接: https://www.lsjlt.com/news/9357.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql基础之常见函数
    目录一、常见函数分类1.1单行函数:1.2分组函数:二、单行函数三、数学函数四、日期函数五、其他函数六、控制函数一、常见函数分类 1.1单行函数: 字符函数 字符控...
    99+
    2024-04-02
  • MySQL数据库基础学习之JSON函数各类操作详解
    目录前言一、jsON语法规则二、JSON函数1.JSON_CONTAINS(json_doc,value)函数2.JSON_SEARCH()函数 3.JSON_PRETTY(json_doc)函数4.JSON_...
    99+
    2023-02-17
    MySQL JSON函数操作 MySQL JSON函数 MySQL JSON
  • Python编程基础之函数和模块
    目录二、函数(一)定义函数1、语法格式2、函数类型3、案例演示(二)调用函数1、简要说明2、案例演示(三)函数参数1、参数的多态性2、参数赋值传递三、利用函数实现模块化1、创建多级菜...
    99+
    2024-04-02
  • Python基础之函数和模块
    函数的基本使用 函数的定义:把具有独立功能的代码块组织成一个小模块,在需要的时候调用。或者说,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 函数的使用:1.定义函数;2.调用函数。 函数的作用:能提高应用的模...
    99+
    2023-01-31
    函数 模块 基础
  • Python基础之操作MySQL数据库
    目录一、数据库操作1.1 安装PyMySQL1.2 连接数据库1.3 创建数据表1.4 插入,查询数据1.5 更新,查询数据1.6 删除,查询数据二、连接与游标对象的方法2.1 连接...
    99+
    2024-04-02
  • 【MySQL基础教程】函数的介绍与使用
    前言 本文为 【MySQL基础教程】函数的介绍与使用 相关知识,下边具体将对字符串函数,数值函数,日期函数,流程函数等进行详尽介绍~ 📌博主主页:小新要变强 的主页 👉Java全栈学习路线可参考:【Java...
    99+
    2023-08-18
    mysql 数据库 java
  • Kotlin基础教程之Run,标签Label,函数Function-Type
    Kotlin基础教程之Run,标签Label,函数Function-Type在Java中可以使用{}建立一个匿名的代码块,代码块会被正常的执行,除了改变了作用域之外,似乎并没有什么其他的作用。然而在Kotlin中却不能这么做,这是为什么呢?...
    99+
    2023-05-31
    kotlin 标签label function-type
  • Go基础教程系列之回调函数和闭包详解
    Go回调函数和闭包 当函数具备以下两种特性的时候,就可以称之为高阶函数(high order functions): 函数可以作为另一个函数的参数(典型用法是回调函数)函数可以返回另...
    99+
    2024-04-02
  • C语言进阶教程之字符函数&字符串函数
    目录1、strlen1.1、三种模拟实现2、长度不受限制的字符串函数2.1、strcpy2.1.1、模拟实现2.2、strcat2.2.1、模拟实现2.3、strcmp2.3.1、模...
    99+
    2024-04-02
  • python基础之引用和匿名函数
    a=1 #1 为对象, def func(x): print('x的地址{}'.format(id(x))) x=2 print('x的地址{}'...
    99+
    2024-04-02
  • FreeRTOS信号量API函数基础教程
    目录前言1创建二进制信号量2创建计数信号量3创建互斥量4创建递归互斥量5删除信号量6获取信号量7获取信号量(带中断保护)8获取递归互斥量9释放信号量10释放信号量(带中断保护)11释...
    99+
    2024-04-02
  • python数据分析基础知识之shape()函数的使用教程
    目录python中shape()函数1、shape()输入参数2、判断数组的维度总结python中shape()函数 shape函数是numpy.core.fromnumeric中的...
    99+
    2024-04-02
  • MySQL——存储过程和函数从零基础到入门必学教程(涵盖基础实战)
    目录 ​前言 一、创建存储过程 二、在存储过程中使用变量 1.定义变量 2.为变量赋值 三、光标的使用 1.打开光标 2.打开光标 3.使用光标 4.关闭光标 四、流程控制的作用 1.IF语句 2.CASE语句 3.LOOP语句 4.LEA...
    99+
    2023-09-01
    mysql 数据库 sql
  • MySQL数据库基础篇SQL窗口函数示例解析教程
    目录本文简介正文介绍聚合函数 + over()排序函数 + over()ntile()函数 + over()偏移函数 + over()本文简介 前段时间,黄同学写了一篇《MySQL窗...
    99+
    2024-04-02
  • python基础之函数的定义和调用
    # 第一题 # 写函数,接受n个数字,求这些参数数字的和 def sumFunc(*args): # 处理接受的数据 result=0 for item...
    99+
    2024-04-02
  • PHP循环函数使用介绍之PHP基础入门教程
    PHP中的循环主要用户执行相同代码块运行指定的次数。 PHP循环主要有四种:while,do…while,for,foreach。下面我们分开讲解每种循环的用法。 while语句: ...
    99+
    2022-11-15
    PHP循环
  • python基础之函数和面向对象详解
    目录函数函数参数变量作用域内嵌函数和闭包lambda 表达式面向对象三大特性类、类对象 和 实例对象类属性 和 对象属性私有魔法方法基本的魔法方法算术运算符属性访问 描述符...
    99+
    2024-04-02
  • 超详细的c语言字符串操作函数教程
    目录一,常量指针与指针常量二,字符串长度问题三,c语言中的字符串拷贝函数1) strcpy()2), strncpy()3), strcat()4), strncat()5), st...
    99+
    2024-04-02
  • Java8函数式接口的基础学习教程
    函数式接口 1.1 函数式接口概述 函数式接口:有且仅有一个抽象方法的接口 Java中的函数式编程体现就是Lambda表达式,所以函数式接口就是可以使用与Lambda使用的接口 只...
    99+
    2024-04-02
  • Excel中Sumproduct函数使用方法基础教程
    Sumproduct函数是Excel中的一个非常有用的函数,它可以将多个数组相乘并求和。Sumproduct函数可以用于多种情况,例...
    99+
    2023-09-16
    excel
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作