| 网站首页 | JAVA文章 | AppServers | Web开发 | 应用开发 | 资源下载 |
    想学好编程,外语很重要,最新的编程技术还是在国外  [enadd  2006年12月25日]        
设为首页 加入收藏 联系站长
您现在的位置: 编程笔记网 >> 数据库 >> mysql >> mysql教程 >> 文章正文
MySQL中文参考手册---5 MySQL与标准的兼容性?            【字体:
MySQL中文参考手册---5 MySQL与标准的兼容性?
作者:不详    文章来源:网络    点击数:    更新时间:2007-1-21

5.1 MySql对ANSISQL92扩充

MySql包含了一些可能在其他SQL数据库找不到的扩充。要注意如果你使用他们,你的代码将不与其他SQL服务器兼容。在一些情况下,你可以编写包括MySql扩展的代码,但是仍然是可移植的,通过使用/*!...*/形式的注释。在这种情况下,MySql将进行词法分析并且执行在注释内的代码,好像它是任何其它MySql语句,但是其他SQL服务器将忽略扩展。例如:

SELECT/*!STRAIGHT_JOIN*/col_nameFROMtable1,table2WHERE...

如果你在!后增加一个版本数字,该语法将仅在MySQL版本是等于或比使用的版本数字新时才执行:

CREATE/*!32302TEMPORARY*/TABLE(aint);

上面的意思是如果你有3.23.02或更新,那么MySQL将使用TEMPORARY关键词。

MySQL扩展被列在下面:

  • 字段类型MEDIUMINTSETENUM和不同的BLOBTEXT类型。
  • 字段属性AUTO_INCREMENTBINARYUNSIGNEDZEROFILL
  • 缺省地,所有的字符串比较是忽略大小写的,由当前的字符集决定了(缺省为ISO-8859-1Latin1)排序顺序。如果你不喜欢这样,你应该用BINARY属性或使用BINARY强制符声明列,它导致根据MySQL服务器主机的ASCII顺序进行排序。
  • MySQL将每个数据库映射一个MySQL数据目录下面的目录,将数据库表映射到数据库目录下的数据库文件名。这有2个含意:
    • 在区分大小写文件名的操作系统(象大多数Unix系统一样)上的MySQL数据库名字和表名是区分大小写的。如果你有困难记得表名,接受一个一致的约定,例如总是用小写名字创建数据库和表。
    • 数据库、表、索引、列或别名可以以数字开始(但是不能仅由数字组成)。
    • 你可以使用标准的系统命令备份、重命名、移动、删除和拷贝表。例如,重命名一个表,重命名“.MYD”“.MYI”“.frm”文件为相应的表。
  • 在SQL语句中,你可以用db_name.tbl_name语法访问不同数据库中的表。一些SQL服务器提供同样的功能但是称它们为这Userspace(用户空间)。MySQL不支持类似在createtableralph.my_table...INmy_tablespace中的表空间。
  • LIKE在数字列上被允许。
  • 在一SELECT语句里面使用INTOOUTFILESTRAIGHT_JOIN。见7.12SELECT句法.
  • 在一个SELECT语句中SQL_SMALL_RESULT选项。
  • EXPLAINSELECT得到如何联结表的描述。
  • 在一个CREATETABLE语句里面使用索引、在字段前缀上的索引和使用INDEXKEY。见7.7CREATETABLE句法。
  • CREATETABLE使用TEMPORARYIFNOTEXISTS
  • 使用COUNT(DISTINCTlist),这里“list”超过一个元素。
  • 在一个ALTERTABLE语句里面使用CHANGEcol_nameDROPcol_nameDROPINDEX。见7.8ALTERTABLE句法。
  • 在一个ALTERTABLE里面语句使用IGNORE
  • 在一个ALTERTABLE语句中使用多重ADDALTERDROPCHANGE子句。
  • 使用带关键词IFEXISTSDROPTABLE
  • 你能用单个DROPTABLE语句抛弃多个表。
  • DELETE语句的LIMIT子句。
  • INSERTREPLACE语句的DELAYED子句。
  • INSERT,REPLACE,DELETEUPDATE语句的LOW_PRIORITY子句。
  • 使用LOADDATAINFILE。在多数情况下,这句法与Oracle的LOADDATAINFILE兼容。见7.16LOADDATAINFILE句法。
  • OPTIMIZETABLE语句。见7.9OPTIMIZETABLE句法。
  • SHOW语句。见7.21SHOW句法(得到表、列等的信息)。
  • 字符串可以被“"”“”包围,而不只是“”
  • 使用“\”转义字符。
  • SETOPTION语句。见7.25SETOPTION句法。
  • 你不需要命名所有在GROUPBY部分的被选择的列。这为一些很特定的情况给出更好的性能,而不是一般的查询。见7.4.13用于GROUPBY子句的函数。
  • 为了方便来自于SQL环境其他为用户,MySQL对许多函数支持别名。例如,所有的字符串功能都支持ANSISQL句法和ODBC句法。
  • MySQL理解||&&意味着逻辑的OR和AND,就像在C程序语言中。在MySQL中,||OR是同义词,&&AND是同义词。正因为这个好的句法,MySQL对字符串并置的不支持ANSISQL||操作符;相反使用CONCAT(),因为CONCAT()接受任何数量的参数,很容易把||操作符使用变换到MySQL
  • CREATEDATABASEDROPDATABASE。见7.5CREATEDATABASE句法。
  • %操作符是MOD()一个同义词,即,N%M等价于MOD(N,M)%支持C程序员并与PostgreSQL兼容。
  • =,<>,<=,<,>=,>,<<,>>,<=>,AND,ORLIKE操作符可以放在SELECT语句的FROM左边用于比较列。例如

    [1] [2] [3] [4] 下一页  

文章录入:enadd    责任编辑:enadd 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • MySQL数据的导出和导入工具:…

  • mysql授课大纲

  • mysql技巧总结

  • PPTP + MPPE + RADIUS + MyS…

  • 使用函数递归实现基于php和M…

  • 基于MySQL的高性能数据库应用…

  • Mysql日期和时间函数

  • 深圳讯天 mysql 服务器错误分…

  • 几分钟让你走进mysql的门

  • 针对 Apache 2.x 的 MySQL 用…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |