网络编程
位置:首页>> 网络编程>> 数据库>> MySQL 语言参考(2)

MySQL 语言参考(2)

 来源:MYSQL.CN 发布时间:2007-11-21 20:37:00 

标签:mysql,语法,参考

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 程序以一个  字符作为表名的前缀。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com