MySQL Server支持一些您不太可能在其他SQL dbms中找到的扩展。请注意,如果使用它们,您的代码很可能无法移植到其他SQL服务器。在某些情况下,你可以编写包含MySQL扩展的代码,但仍然是可移植的,通过使用以下形式的注释:
/ * !mysql代码* /
在这种情况下,MySQL Server解析并执行注释中的代码,就像它解析任何其他SQL语句一样,但是其他SQL服务器应该忽略扩展。例如,MySQL服务器识别STRAIGHT_JOIN
关键字,但其他服务器不应该:
选择/ * !从table1,table2 WHERE…
的后面添加版本号!
字符,只有当MySQL版本大于或等于指定的版本号时,注释中的语法才会执行。的KEY_BLOCK_SIZE
下面注释中的子句只在MySQL 5.1.10或更高版本的服务器上执行:
CREATE TABLE t1(a INT, KEY (a)) /*!50110 KEY_BLOCK_SIZE = 1024 * /;
下面的描述列出了MySQL扩展,按类别组织。
磁盘上数据的组织
MySQL Server将每个数据库映射到MySQL数据目录下的一个目录,并将数据库中的表映射到数据库目录中的文件名。因此,在具有区分大小写文件名的操作系统(如大多数Unix系统)上,MySQL Server中的数据库和表名是区分大小写的。看到
通用语言语法
默认情况下,字符串可以用
"
以及'
.如果ANSI_QUOTES
启用SQL模式时,字符串只能由'
服务器解释包含的字符串"
作为标识符。\
是字符串中的转义字符。在SQL语句中,可以使用
db_name.tbl_name
语法。一些SQL服务器提供相同的功能,但调用此功能用户空间
.MySQL Server不支持表空间,比如下面这样的语句:创建表拉尔夫。my_table……在my_tablespace
.
SQL语句语法
解释选择
以获取查询优化器如何处理表的描述。的
集
声明。看到的
显示
声明。看到显示
语句可以以更标准的方式通过使用选择
查询INFORMATION_SCHEMA
.看到使用
加载数据
.在许多情况下,这种语法与Oracle兼容加载数据
.看到使用
重命名表
.看到使用
取代
而不是删除
+插入
.看到使用
改变
,col_name
下降
,或col_name
指数下降
,忽略
或重命名
在ALTER TABLE
语句。使用多个添加
,改变
,下降
,或改变
条款的ALTER TABLE
声明。看到索引名的使用、列前缀上的索引以及
指数
或关键
在创建表
语句。看到第13.1.20节," CREATE TABLE语句".使用
临时
或如果不存在
与创建表
.用一个表删除多个表的能力
删除表
声明。插入
语法。tbl_name
集col_name
=……使用
到输出文件
或到DUMPFILE
在选择
语句。看到第13.2.10节," SELECT语句".选项,例如
STRAIGHT_JOIN
或SQL_SMALL_RESULT
在选择
语句。控件中所有选定的列都不必命名
集团
条款。这为一些非常特定但非常正常的查询提供了更好的性能。看到您可以指定
ASC
而且DESC
与集团
,而不仅仅是命令
.类在语句中设置变量的能力
:=
赋值运算符。看到数据类型
函数和运算符
为了方便从其他SQL环境迁移过来的用户,MySQL Server支持许多函数的别名。例如,所有字符串函数都支持标准SQL语法和ODBC语法。
MySQL Server理解
||
而且& &
操作符表示逻辑上的或和,如在C编程语言中。在MySQL服务器,||
而且或
是同义词吗& &
而且和
.由于这种良好的语法,MySQL服务器不支持标准SQL||
字符串拼接操作符;使用CONCAT ()
代替。因为CONCAT ()
取任意数量的参数,就很容易转换使用||
MySQL服务器的操作符。使用
计数(不同的
在哪里value_list
)value_list
有一个以上的元素。默认情况下,字符串比较不区分大小写,排序顺序由当前字符集的排序规则决定,即
utf8mb4
默认情况下。方法来声明列,以执行区分大小写的比较二进制
属性或使用二进制
类型转换,它导致使用底层字符代码值而不是词法顺序进行比较。的
%
运算符是的同义词国防部()
.也就是说,
相当于N
%米
国防部(
.N
,米
)%
支持C程序员和与PostgreSQL的兼容性。的
=
,<>
,< =
,<
,> =
,>
,<<
,>>
,< = >
,和
,或
,或就像
的表达式中可以使用运算符从
)选择
语句。例如:SELECT col1=1 AND col2=2 FROM my_table;
的
LAST_INSERT_ID ()
函数返回最近的AUTO_INCREMENT
价值。看到就像
允许在数值上使用。CONCAT ()
或CHAR ()
用一个或两个以上的论点。(在MySQL Server中,这些函数可以接受不同数量的参数。)的
BIT_COUNT ()
,情况下
,英语教学()
,FROM_DAYS ()
,FORMAT ()
,如果()
,MD5 ()
,PERIOD_ADD ()
,PERIOD_DIFF ()
,TO_DAYS ()
,工作日()
功能。使用
削减()
调整子字符串。标准SQL只支持删除单个字符。的
集团
功能性病()
,BIT_OR ()
,BIT_AND ()
,BIT_XOR ()
,GROUP_CONCAT ()
.看到