DBMNG数据库管理与应用

独立思考能力,对于从事科学研究或其他任何工作,都是十分必要的。
当前位置:首页 > 数据库基础 > SQL语言

1.2.2MySQL

1.2.2  MySQL

MySQL服务器包含一些其他SQL DBMS中不具备的扩展。如果使用了它们,将无法把代码移植到其他SQL服务器。因此在编写MySQL代码时,应保持其可移植性。可以用“/*... */”注释掉这些扩展的语句。这样,将只有MySQL服务器能够解析并执行注释中的代码,其他SQL服务器将忽略这些扩展语句。例如:

SELECT /*! STRAIGHT_JOIN */ col_name FROM table1,table2 WHERE ...

如果在字符“!”后添加了版本号,仅当MySQL的版本等于或高于指定的版本号时才会执行注释中的语法。

1. 磁盘上的数据组织

MySQL服务器会将每个数据库映射到MySQL数据目录下的一个目录中,并将数据库中的表映射到数据库目录下的文件名,它具有以下特点。
● 如果操作系统的文件名区分大小写(如大多数UNIX系统),那么MySQL数据库名和表名也区分大小写。
● 可以使用标准的系统命令来备份、重命名、移动、删除、并复制由MyISAM或ISAM存储引擎管理的表。例如,要想重命名MyISAM表,可重命名表对应的.MYD、.MYI、以及.frm文件。
● 数据库、表、索引、列或别名能够以数字开头(但不能全部由数字构成)。

2. 通用语言语法

MySQL中通用语言的语法详细内容如下所示。
● 可以使用“"”或“'”括住字符串,而不仅是“'”。
● 在字符串中使用“\”作为转义字符。
● 在SQL语句中,可以使用db_name.tbl_name语法访问不同数据库中的表。某些SQL服务器提供了相同的功能,但调用该用户空间除外。MySQL服务器不支持表空间。

3. SQL语句的语法

MySQL中SQL语句的语法内容如下所示。

● ANALYZE TABLE-CHECK TABLE-OPTIMIZE TABLE以及REPAIR TABLE语句。
● CREATE DATABASE和DROP DATABASE语句。
● DO语句。
● EXPLAIN SELECT获取如何联合表的介绍。
● FLUSH和RESET语句。
● SET语句。
● SHOW语句。
● 使用LOAD DATA INFILE。在很多情况下,该语法与Oracle的LOAD DATA INFILE兼容。
● RENAME TABLE的使用。
● 使用索引名,字段前缀上的索引,并在CREATE TABLE语句中使用INDEX或KEY。
● 与CREATE TABLE一起使用TEMPORARY或IF NOT EXISTS。
● 与DROP TABLE一起使用IF EXISTS。
● 使用单个DROP TABLE语句,能够舍弃多个表。
● UPDATE和DELETE语句的ORDER BY和LIMIT子句。
● INSERT和REPLACE语句的DELAYED子句。
● INSERT、REPLACE、DELETE和UPDATE语句的LOW_PRIORITY子句。
● 在SELECT语句中使用INTO OUTFILE和STRAIGHT_JOIN。
● 不需要在GROUP BY部分命名所有选择的列。对于某些十分特殊但相当正常的查询,它能提供更好的性能。
● 可以与GROUP BY一起指定ASC和DESC。
● 能够在带有“:=”赋值操作符的语句中设置变量。

4. 列类型

MySQL中列的详细内容如下所示。

● 列类型:MEDIUMINT、SET、ENUM、以及不同的BLOB和TEXT类型。
● 列属性:AUTO_INCREMENT、BINARY、NULL、UNSIGNED以及ZEROFILL。

5. 函数和操作符

MySQL中函数和操作符的详细内容如下所示。

● 为了使其他SQL环境下的用户更容易入手,MySQL服务器对很多函数均支持别名特性。
● MySQL服务器能够理解“||”和“&&”操作符,将其当作逻辑OR和AND,就像在C编程语言中那样。在MySQL服务器中,||和OR是同义词,&&和AND也是同义词。由于采用了该优异的语法体系,MySQL服务器不支持SQL针对字符串连接的“||”操作符,而采用了CONCAT()取而代之。由于CONCAT()能够接受任意数目的参量,很容易将使用“||”操作符的情况转换为MySQL服务器支持的类型。
● 请在有多于一个元素的场合下使用COUNT(DISTINCT list)。
● 默认情况下,所有的字符串比较均区分大小写,其分类顺序由当前字符集确定(默认为cp1252 Latin1)。
● 在列比较中,可在SELECT语句的FROM左侧使用=、<>、<=、<、>=、>、<<、>>、<=>、AND、OR或LIKE操作符。例如:返回最近AUTO_INCREMENT值的LAST_INSERT_ID()函数,允许在数值列上使用LIKE。
● REGEXP和NOT REGEXP扩展了常规的表达式操作符。
● BIT_COUNT()、CASE、ELT()、FROM_DAYS()、FORMAT()、IF()、PASSWORD()、ENCRYPT()、MD5()、ENCODE()、DECODE()、PERIOD_ADD()、PERIOD_DIFF()、TO_DAYS()以及WEEKDAY()函数。
● 使用TRIM()来调整字符串。标准SQL仅支持单个字符的删除。
● GROUP BY、STD()、BIT_OR()、BIT_AND()、BIT_XOR()以及GROUP_CONCAT()函数。

上面的介绍并不是很详细,详细介绍请参见MySQL中文参考手册和相关资料。

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号