MySQL 语言参考(2)
来源:MYSQL.CN 发布时间:2007-11-21 20:37:00
6.1.1.2 数字
整数被表示为一个数字序列。浮点数使用 作为一个十进制的分隔符。这两种类型的数字可以前置 以表示一个负值。
有效整数的例子:
12210-32
有效浮点数的例子:
294.42-32032.6809e+10148.00
一个整数可以在浮点语境中使用;它被解释为等值的浮点数。
6.1.1.3 十六进制值
MySQL 支持十六进制数值。在数字的语境中,它们表现类似于一个整数(64位精度)。在字符串的语境中,它们表现类似于一个二进制的字符串,每一对十六进制数字被转换为一个字符:
mysql> Select x'4D7953514C'; -> MySQLmysql> Select 0xa+0; -> 10mysql> Select 0x5061756c; -> Paul
表达式 x'hexstring' (4.0 中新加入) 是基于 ANSI SQL 的,表达式 0x 是基于 ODBC 的。十六进制的字符串通常被 ODBC 用于为 BLOB 类型字段赋值。你可以通过 HEX() 将一个字符串或一个数值转化为十六进制格式。
6.1.1.4 NULL 值
NULL 值并不意味着“无数据”,并且是不同于例如数字类型的 0 或字符串类型的空串。
当使用文本文件导入与导出格式时 (LOAD DATA INFILE,Select ... INTO OUTFILE),NULL 可以用 \N 来描述。
6.1.2 数据库、表、索引、列和别名
数据库、表、索引、列和别名都需遵守 MySQL 同样的规则。
注意,从 MySQL 3.23.6 开始,规则发生改变了,此时引进了用引用标识符(数据库、表和字段名)。如果你以 ANSI 模式运行, 也可以用于引用标识符。
标识符 | 最大长度 | 允许的字符 |
数据库 | 64 | 一个目录名中允许的任何字符,除了、 或 。 |
表 | 64 | 一个文件名中允许的任何字符,除了 或 。 |
列 | 64 | 所有的字符。 |
别名 | 255 | 所胡的字符。 |
注意,除了上面的,在一个标识符中还不能有 ASCII(0) 或 ASCII(255) 或引用字符。
注意,如果标识符是一个受限掉的词或包含特殊的字符,当使用它时,必须以一个 ` (backtick) 来引用它。
mysql> Select * FROM `select` WHERE `select`.id > 100;
在 MySQL 3.23.6 以前的版本中,命名规则如下:
一个名字可以由当前字符集中包含的文字与数字字符以及 和 组成。缺省字符集为 ISO-8859-1 Latin1;这可以通过改变 mysqld 的 --default-character-set 的选项来改变。
一个名字可以以在名字中合法的任何字符开始。特别地,一个名字可以以一个数字开始(这不同于许多其它的数据库系统!)。但一个名字不能 仅仅 以数字组成。
不能在名字中使用 字符,因为它是用于扩充格式的,你可以用它引用列(见下面)。
建议不要使用象 1e 这样的名字,因为一个表达式 1e+1 是存在二义性的。它可以被解释为表达式 1e + 1 或数字 1e+1。
在 MySQL 中,你可以使用下列表格中的任一种方式引用一个列:
列引用 | 含义 |
col_name | 列 col_name 来自查询所用的任何一个表中对应字段 |
tbl_name.col_name | 列 col_name 来自当前数据库中的表 tbl_name |
db_name.tbl_name.col_name | 列 col_name 来自数据库 db_name 中的表 tbl_name。这个形式从 MySQL 3.22 或以后版本开始可用。 |
`column_name` | 该字段是一个关键词或包含特殊字符。 |
在一条语句中的列引用中,不需要明确指定一个 tbl_name 或 db_name.tbl_name 前缀,除非这个引用存在二义性。例如,假设表 t1 和 t2 均包含一个字段 c,当用一个使用了 t1 和 t2 的 SELECT 检索 c 时。在这种情况下,c 存在二义性,因为它在这个语句所使用的表中不是唯一的,因而必须通过写出 t1.c 或 t2.c 来指明你所需的是哪个表。同样的,如果从数据库 db1 的表 t 和数据库 db2 的表 t 中检索,你必须用db1.t.col_name 和 db2.t.col_name 来指定引用哪个库表的列。
句法 .tbl_name 意味着表 tbl_name 在当前数据库中。这个句法是为了与 ODBC 兼容,因为一些 ODBC 程序以一个 字符作为表名的前缀。
猜你喜欢
- 前言之前学习过node.js接触过express框架,最近为了编写一个mock server正好用到了express。下面正好就跟大家介绍一
- EXCEL的数值排序功能还是挺强大的,升序、降序,尤其自定义排序,能够对多个字段进行排序工作。那么,在Python * 中,有没有这样强大的排
- 前言:我们的vue代码打包上传到服务器之后,要是数据接口 以后换了域名什么的,是不是需要重新去vue文件里修改接口。能不能生成一个配置文件,
- 模式库 在模式库里,我将列出所有电子商务网站需要的模式.以下将罗列出经典常用的模式案例,我也试图让这些模式看起来更有趣味性与实用性。(Yah
- 可能由于操作系统不同,或者在安装SQL 2008的时候已经安装SQL其他版本,因此可能会遇到问题,那么这时我们的实际经验和动手测试的能力也是
- DropPath/drop_path 是一种正则化手段,其效果是将深度学习模型中的多分支结构随机”删除&ldqu
- 前言本文主要给大家介绍了关于Django快速分页的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。分页在web开发
- 除了使用pycharm外,还可使用vscode来操作pyqt,方法如下:1. 在vscode中配置相关的pyqt的相关根据自己实际情况修改第
- 之前用Vue+element写了一个后台管理系统,在登录时使用axios请求数据传参时无法正常的获取数据。之后也是一通百度,发现原因是传递参
- 在做接口自动化的时候,请求数据之前都是JSON格式的,Python有自带的包来解决。最近在做APP的接口,遇到XML格式的请求数据,费了很大
- Lambda函数,即Lambda 表达式(lambda expression),是一个匿名函数(不存在函数名的函数),Lambda表达式基于
- 栈是一种后进先出(LIFO)的数据结构,在实际生活和工作中也很常见。比如,在餐厅里的一摞盘子,总是从上面先取,也就是最后放到上面的先被取走。
- 整理自慕课笔记基础表单表单主要功能是用来与用户做交流的一个网页控件,良好的表单设计能够让网页与用户更好的沟通。表单中常见的元素主要包括:文本
- 在开发django项目时,启动开发服务器的命令为:python manager.py runserver [port]其中,[port]选项
- 报错[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE]问题描述pandas读取网络表格时pd.read_excel(u
- 很多深度神经网络模型需要加载预训练过的Vgg参数,比如说:风格迁移、目标检测、图像标注等计算机视觉中常见的任务。那么到底如何加载Vgg模型呢
- 前言最近需要源码部署一个项目,因此探索一下保护源码的方式,由简单到复杂主要总结为以下三大类:代码混淆:主要是改变一些函数名、变量名代码打包:
- sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。目前sysbench代码托管
- 泰勒展开与e的求法大家伙儿知道计算机里的 e是怎么求出来的吗?这还要从神奇的泰勒展开讲起……简单
- 引言在Scrapy中,在很多种情况下,需要一层层地进行爬取网页数据,就是基于url爬取网页,然后在从网页中提取url,继续爬取,循环往复。本