程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL與標准的兼容性

MySQL與標准的兼容性

編輯:關於MYSQL數據庫

MySQL包含了一些可能在其他SQL數據庫找不到的擴充。要注意如果你使用他們,你的代碼將不與其他SQL服務器兼容。在一些情況下,你可以編寫包括MySQL擴展的代碼,但是仍然是可移植的,通過使用/*! ... */形式的注釋。在這種情況下,MySQL將進行詞法分析並且執行在注釋內的代碼,好像它是任何其它MySQL語句,但是其他SQL服務器將忽略擴展。例如:

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

如果你在'!'後增加一個版本數字,該語法將僅在MySQL版本是等於或比使用的版本數字新時才執行:

CREATE /*!32302 TEMPORARY */ TABLE (a int);

上面的意思是如果你有3.23.02或更新,那麼MySQL將使用TEMPORARY關鍵詞。

MySQL擴展被列在下面:

字段類型MEDIUMINT、SET、ENUM和不同的BLOB和TEXT類型。

字段屬性AUTO_INCREMENT、BINARY、UNSIGNED和ZEROFILL。

缺省地,所有的字符串比較是忽略大小寫的,由當前的字符集決定了(缺省為ISO-8859-1 Latin1)排序順序。如果你不喜歡這樣,你應該用BINARY屬性或使用BINARY強制符聲明列,它導致根據MySQL服務器主機的ASCII順序進行排序。

MySQL將每個數據庫映射一個MySQL數據目錄下面的目錄,將數據庫表映射到數據庫目錄下的數據庫文件名。這有2個含意:

在區分大小寫文件名的操作系統(象大多數 Unix 系統一樣)上的MySQL中數據庫名字和表名是區分大小寫的。如果你有困難記得表名,接受一個一致的約定,例如總是用小寫名字創建數據庫和表。

數據庫、表、索引、列或別名可以以數字開始(但是不能僅由數字組成)。

你可以使用標准的系統命令備份、重命名、移動、刪除和拷貝表。例如,重命名一個表,重命名“.MYD”、“.MYI”和“.frm”文件為相應的表。

在SQL語句中,你可以用db_name.tbl_name語法訪問不同數據庫中的表。一些SQL服務器提供同樣的功能但是稱它們為這User space(用戶空間)。MySQL不支持類似在create table ralph.my_table...IN my_tablespace中的表空間。

LIKE在數字列上被允許。

在一SELECT語句裡面使用INTO OUTFILE和STRAIGHT_JOIN。見7.12 SELECT句法.

在一個SELECT語句中SQL_SMALL_RESULT選項。

EXPLAIN SELECT得到如何聯結表的描述。

在一個CREATE TABLE語句裡面使用索引、在字段前綴上的索引和使用INDEX或KEY。見7.7 CREATE TABLE 句法。

CREATE TABLE使用TEMPORARY或IF NOT EXISTS。

使用COUNT(DISTINCT list),這裡“list”超過一個元素。

在一個ALTER TABLE語句裡面使用CHANGE col_name、DROP col_name或DROP INDEX。見7.8 ALTER TABLE句法。

在一個ALTER TABLE裡面語句使用IGNORE。

在一個ALTER TABLE語句中使用多重ADD、ALTER、DROP或CHANGE子句。

使用帶關鍵詞IF EXISTS的DROP TABLE。

你能用單個DROP TABLE語句拋棄多個表。

DELETE語句的LIMIT子句。

INSERT和REPLACE語句的DELAYED子句。

INSERT, REPLACE, DELETE和UPDATE語句的LOW_PRIORITY子句。

使用LOAD DATA INFILE。在多數情況下,這句法與Oracle的LOAD DATA INFILE兼容。見7.16 LOAD DATA INFILE 句法。

OPTIMIZE TABLE語句。。

SHOW語句。見7.21 SHOW句法(得到表、列等的信息)。

[1] [2] [3] [4] [5] 下一頁

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved