首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | linux相关 | linux认证 | 下载中心 | 专题
oklinux
 系统管理:中文环境 系统管理 桌面应用 内核技术 Linux基础:安装配置 常用命令 经验技巧 软件应用 Linux数据库:Mysql POSTGRE
 网络管理:网络安全 网络应用 Linux服务器 编程开发:PHP CC++ Python Perl SHELL 嵌入式开发 | PHP基础 PHP技巧 PHP应用 PHP文摘
 首页 linux资讯动态 Linux专题 | 其他Unix Linux解决方案 硬件相关 Linux认证 企业应用 Apache | 相关下载:软路由 参考手册 开发工具
 → 当前位置:首页>linux数据库>mysql>正文

MySQL語言參考

OKLinux www.oklinux.cn 2006-06-22 来源:oklinux收集整理 收藏本文

7.1 文字:怎麼寫字符串和數字

7.1.1 字符串

一個字符串是一個字符序列,由單引號(“'”)或雙引號(“"”)字符(後者只有你不在ANSI模式咝�)包圍。例如:

'a string'
"another string"

在字符串內,某個順序有特殊的意義。這些順序的每一個以一條反斜線(“”)開始,稱為轉義字符MySQL識別下列轉義字符:

一個ASCII 0 (NUL)字符。
n
一個新行符。
t
一個定位符。
r
一個回車符。
b
一個退格符。
'
一個單引號(“'”)符。
"
一個雙引號(“"”)符。
\
一個反斜線(“”)符。
%
一個“%”符。它用於在正文中搜索“%”的文字實例,否則這裡“%”將解釋為一個通配符。
_
一個“_”符。它用於在正文中搜索“_”的文字實例,否則這裡“_”將解釋為一個通配符。

注意,如果你在某些正文環境中使用“%”“%_”,這些將返回字符串“%”“_”而不是“%”“_”

有幾種方法在一個字符串內包括引號:

  • 一個字符串內用“'”加引號的“'”可以被寫作為“''”
  • 一個字符串內用“"”加引號“"”可以被寫作為“""”
  • 你可以把一個轉義字符(“”)放在引號前面。
  • 一個字符串內用“"”加引號的“'”不需要特殊對待而且不必被重複或轉義。同理,一個字符串內用“'”加引號的“"”也不需要特殊對待。

下面顯示的SELECT演示引號和轉義如何工作:

mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', ''hello';
+-------+---------+-----------+--------+--------+
| hello | "hello" | ""hello"" | hel'lo | 'hello |
+-------+---------+-----------+--------+--------+

mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", ""hello";
+-------+---------+-----------+--------+--------+
| hello | 'hello' | ''hello'' | hel"lo | "hello |
+-------+---------+-----------+--------+--------+

mysql> SELECT "ThisnIsnFournlines";
+--------------------+
| This
Is
Four
lines |
+--------------------+
 

如果你想要把二進制數據插入到一個BLOB列,下列字符必須由轉義序列表示:

NUL
ASCII 0。你應該用''(一個反斜線和一個ASCII '0')表示它。
ASCII 92,反斜線。用'\'表示。
'
ASCII 39,單引號。用“'”表示。
"
ASCII 34,雙引號。用“"”表示。

如果你寫C代碼,你可以使用C API函數mysql_escape_string()來為INSERT語句轉義字符。見20.3 C API 函數概述。在 Perl中,你可以使用DBI包中的quote方法變換特殊的字符到正確的轉義序列。見20.5.2 DBI介面

你應該在任何可能包含上述任何特殊字符的字符串上使用轉義函數!

7.1.2 數字

整數表示為一個數字順序。浮點數使用“.”作為一個十進制分隔符。這兩種類型的數字可以前置“-”表明一個負值。

有效整數的例子:

1221
0
-32

有效浮點數的例子:

294.42
-32032.6809e+10
148.00

一個整數可以在浮點上下文使用﹔它解釋為等值的浮點數。

7.1.3 十六進制值

MySQL支援十六進制值。在數字上下文,它們表現類似於一個整數(64位精度)。在字符串上下文,它們表現類似於一個二進制字符串,這裡每一對十六進制數字被變換為一個字符。

mysql> SELECT 0xa+0
       -> 10
mysql> select 0x5061756c;
       -> Paul

十六進制字符串經常被ODBC使用,給出BLOB列的值。

7.1.4 NULL

NULL值意味著“無數據”並且不同於例如數字類型的0為或字符串類型的空字符串。見18.15 NULL值問題

當使用文本文件導入或導出格式(LOAD DATA INFILE, SELECT ... INTO OUTFILE)時,NULL可以用N表示。見7.16 LOAD DATA INFILE句法

7.1.5 資料庫、表、索引、列和別名的命名

資料庫、表、索引、列和別名的名字都遵守MySQL同樣的規則:

注意,從MySQL3.23.6開始規則改變了,此時我們引入了用'引用的標識符(資料庫、表和列命名)(如果你以ANSI模式咝校�"也將用於引用標識符)。

標識符 最大長度 允許的字符
資料庫64在一個目錄名允許的任何字符,除了/.
64在文件名中允許的任何字符,除了/.
64所有字符
別名255所有字符

注意,除了以上,你在一個標識符中不能有ASCII(0)或ASCII(255)。

注意,如果標識符是一個限制詞或包含特殊字符,當你使用它時,你必須總是用`引用它:

SELECT * from `select` where `select`.id > 100; 

在 MySQL的先前版本,命名規則如下:

  • 一個名字可以包含來自當前字符集的數字字母的字符和“_”“$”。預設字符集是ISO-8859-1 Latin1﹔這可以通過重新編譯MySQL來改變。見9.1.1 用於數據和排序的字符集
  • 一個名字可以以在一個名字中合法的任何字符開始。特別地,一個名字可以以一個數字開始(這不同於許多其他的資料庫系統!)。然而,一個名字不能僅僅由數字組成。
  • 你不能在名字中使用“.”,因為它被用來擴充格式,你能用它引用列(見下面)。

建議你不使用像1e這樣的名字,因為一個表達式如1e+1是二義性的。它可以解釋為表達式1e + 1或數字1e+1

上一篇:MySQL 存取權限系統   下一篇:MySQL教學課程
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭

相关文章
·MySQL 存取權限系統
·MySQL教學課程
·从MySQL导出XLS数据库工具
·mysql 4.1采用了新验证方法后的认证问题
·MySQL数据库安全配置
·MySQL数据库账户授权相关管理
·Linux下建立Mysql镜像数据库
·Mysql中mysqldump命令使用详解
·Mysql服务器的启动与停止(全)
·图形化管理MySQL更轻松
发表评论
密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)
站内搜索
阅读排行榜
·Linux应用集成MySQL数据库
·MySQL运算符获得更多数据
·如何安全的远程使用MySQL
·MySQL学习笔记-MySQL的安
·MySQL运算符获得更多数据
·MySQL中的临时表使用方法
·ACCESS中使用SQL语句
·解决办法之MySQL忘记超级
·每天备份 mysql 数据库的
·在Linux 环境下安装 Mysql
最新文章
·针对MySQL和PostgreSQL两
·教你用PHP写MySQL数据库用
·MySQL数据库中备份/恢复的
·MySQL数据库中部分数据损
·MySQL数据库安全配置
·MySQL教學課程
·MySQL 存取權限系統
·从MySQL导出XLS数据库工具
·mysql 4.1采用了新验证方
·Mysql中mysqldump命令使用
·Linux下建立Mysql镜像数据
·MySQL数据库账户授权相关
·Mysql服务器的启动与停止(
·图形化管理MySQL更轻松
·MySQL图形化管理软件安装

设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2007 All rights reserved OKLinux.Cn 版权所有
合作联系 QQ:18743986 Email:arlan8005#163.com