最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL對標準SQL的擴展方式

 更新時間:2025年02月27日 11:00:20   作者:費曼樂園  
MySQL對標準SQL的擴展包括磁盤上的數(shù)據(jù)組織方式、通用語言語法、SQL語句語法、數(shù)據(jù)類型、函數(shù)和運算符等,這些擴展使得MySQL在某些方面與其他SQL數(shù)據(jù)庫管理系統(tǒng)不同

MySQL對標準SQL的擴展

MySQL服務器支持一些其他SQL數(shù)據(jù)庫管理系統(tǒng)中不太可能找到的擴展功能。請注意,如果您使用這些擴展功能,您的代碼可能無法在其他SQL服務器上移植。

在某些情況下,您可以編寫包含MySQL擴展功能但仍然可移植的代碼,通過使用以下形式的注釋:

/*! MySQL-specific code */

在這種情況下,MySQL服務器解析并執(zhí)行注釋中的代碼,就像處理任何其他SQL語句一樣,但其他SQL服務器應該忽略這些擴展功能。

例如,MySQL服務器可以識別以下語句中的STRAIGHT_JOIN關鍵字,但其他服務器則不會:

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

如果在'!'字符之后添加版本號,那么注釋中的語法只有在MySQL版本大于或等于指定的版本號時才會執(zhí)行。

以下注釋中的KEY_BLOCK_SIZE子句僅在MySQL 5.1.10或更高版本的服務器上執(zhí)行:

CREATE TABLE t1(a INT, KEY (a)) /*!50110 KEY_BLOCK_SIZE=1024 */;

以下描述按照類別列出了MySQL的擴展功能:

磁盤上的數(shù)據(jù)組織方式

MySQL服務器將每個數(shù)據(jù)庫映射到MySQL數(shù)據(jù)目錄下的一個目錄,并將數(shù)據(jù)庫中的表映射到數(shù)據(jù)庫目錄中的文件名。因此,在具有區(qū)分大小寫文件名的操作系統(tǒng)上(例如大多數(shù)Unix系統(tǒng)),MySQL服務器中的數(shù)據(jù)庫和表名區(qū)分大小寫。

通用語言語法

  • 默認情況下,字符串可以用雙引號 " 或單引號 ' 括起來。如果啟用了ANSI_QUOTES SQL模式,則字符串只能用單引號 ' 括起來,而服務器將雙引號括起來的字符串解釋為標識符。
  • \ 是字符串中的轉義字符。
  • 在SQL語句中,您可以使用db_name.tbl_name語法訪問不同數(shù)據(jù)庫中的表。一些SQL服務器提供相同的功能,但將其稱為用戶空間。MySQL服務器不支持類似以下語句中使用的表空間:CREATE TABLE ralph.my_table ... IN my_tablespace。

SQL語句語法

  • ANALYZE TABLE、CHECK TABLE、OPTIMIZE TABLE和REPAIR TABLE語句。
  • CREATE DATABASE、DROP DATABASE和ALTER DATABASE語句。
  • DO語句。
  • 使用EXPLAIN SELECT語句可以獲取查詢優(yōu)化器處理表的描述。
  • FLUSH和RESET語句。
  • SET語句。
  • SHOW語句。許多MySQL特定的SHOW語句產(chǎn)生的信息可以通過使用SELECT查詢INFORMATION_SCHEMA以更標準的方式獲得。
  • LOAD DATA的用法。在許多情況下,此語法與Oracle的LOAD DATA兼容。
  • RENAME TABLE的用法。
  • 使用REPLACE而不是DELETE加INSERT的用法。
  • 在ALTER TABLE語句中使用CHANGE col_name、DROP col_name、DROP INDEX、IGNORE或RENAME的用法。在ALTER TABLE語句中使用多個ADD、ALTER、DROP或CHANGE子句的用法。
  • 在CREATE TABLE語句中使用索引名稱、創(chuàng)建列前綴索引、以及使用INDEX或KEY的用法。
  • 在CREATE TABLE語句中使用TEMPORARY或IF NOT EXISTS的用法。
  • 使用IF EXISTS的用法在DROP TABLE和DROP DATABASE語句中。
  • 使用單個DROP TABLE語句刪除多個表的功能。
  • UPDATE和DELETE語句中的ORDER BY和LIMIT子句的用法。
  • INSERT INTO tbl_name SET col_name = ...語法的用法。
  • INSERT和REPLACE語句的DELAYED子句的用法。
  • 在SELECT語句中使用INTO OUTFILE或INTO DUMPFILE的用法。
  • 在SELECT語句中使用STRAIGHT_JOIN或SQL_SMALL_RESULT等選項的用法。
  • 在GROUP BY子句中不需要為所有選擇的列命名。這對于一些非常特定但相當常見的查詢可以提供更好的性能。
  • 可以在GROUP BY子句中使用ASC和DESC來指定排序順序,而不僅僅是在ORDER BY子句中使用。
  • 使用:=賦值運算符在語句中設置變量的能力。

數(shù)據(jù)類型

  • 中等整數(shù)類型(MEDIUMINT),集合類型(SET),枚舉類型(ENUM),以及各種二進制大對象(BLOB)和文本(TEXT)類型。
  • AUTO_INCREMENT(自動遞增)、BINARY(二進制)、NULL(空值)、UNSIGNED(無符號)和ZEROFILL(填充零)是數(shù)據(jù)類型的屬性。

函數(shù)和運算符(Functions and operators)

  • 為了方便從其他SQL環(huán)境遷移的用戶,MySQL Server支持許多函數(shù)的別名。例如,所有字符串函數(shù)都支持標準SQL語法和ODBC語法。
  • MySQL Server 中的 || 和 && 運算符被理解為邏輯 OR 和 AND,在 C 編程語言中也是如此。在 MySQL Server 中,|| 和 OR 是同義詞,&& 和 AND 也是如此。由于這種優(yōu)雅的語法,MySQL Server 不支持標準的 SQL || 運算符用于字符串連接;而是使用 CONCAT() 函數(shù)來進行字符串連接。由于 CONCAT() 函數(shù)接受任意數(shù)量的參數(shù),因此很容易將使用 || 運算符的代碼轉換為 MySQL Server 的語法。
  • 使用 COUNT(DISTINCT value_list) 的情況是 value_list 包含多個元素。
  • 字符串比較在默認情況下是不區(qū)分大小寫的,排序順序由當前字符集的校對規(guī)則(默認為utf8mb4)確定。若要執(zhí)行大小寫敏感的比較,您可以在聲明列時使用BINARY屬性,或者使用BINARY轉換操作符,這樣比較將使用底層字符代碼值而不是詞法順序進行。
  • % 運算符是 MOD() 的同義詞。也就是說,N % M 等同于 MOD(N, M)。% 運算符支持給 C 程序員使用,并且與 PostgreSQL 兼容性保持一致。
  • 在SELECT語句中,可以在輸出列列表(在FROM左側)的表達式中使用=、<>, <=、<、>=、>、<<、>>、<=>、AND、OR或LIKE運算符。
  • 例如:
mysql> SELECT col1=1 AND col2=2 FROM my_table;
  • LAST_INSERT_ID() 函數(shù)返回最近插入的 AUTO_INCREMENT 值。
  • LIKE 運算符允許在數(shù)值上使用。
  • REGEXP和NOT REGEXP是擴展正則表達式運算符。它們用于在比較中使用正則表達式來匹配或排除模式。
  • CONCAT() 或者 CHAR() 函數(shù)可以接受一個或多個參數(shù)。在 MySQL Server 中,這些函數(shù)可以接受可變數(shù)量的參數(shù)。
  • BIT_COUNT()、CASE、ELT()、FROM_DAYS()、FORMAT()、IF()、MD5()、PERIOD_ADD()、PERIOD_DIFF()、TO_DAYS() 和 WEEKDAY() 是MySQL中可用的一些函數(shù)。
  • 使用 TRIM() 函數(shù)來修剪子字符串。標準 SQL 只支持刪除單個字符。
  • GROUP BY 函數(shù)包括 STD()、BIT_OR()、BIT_AND()、BIT_XOR() 和 GROUP_CONCAT() 。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Linux下Mysql5.6 二進制安裝過程

    Linux下Mysql5.6 二進制安裝過程

    這篇文章主要介紹了Linux下Mysql5.6 二進制安裝過程,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • MySQL示例DTID主從原理解析

    MySQL示例DTID主從原理解析

    這篇文章主要介紹了MySQL示例DTID主從原理解析,其實包含了詳細的使用方法說明,有需要的朋友可以借鑒參考下,希望可以有所幫助,感謝閱讀
    2021-09-09
  • 通過SqlCmd執(zhí)行超大SQL文件的方法

    通過SqlCmd執(zhí)行超大SQL文件的方法

    這篇文章主要介紹了sql?server?與?mysql?中常用的SQL語句區(qū)別,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • MySQL命令行登入的兩種方式

    MySQL命令行登入的兩種方式

    MySQL是一個需要賬戶名密碼登錄的數(shù)據(jù)庫,登陸后使用,它提供了一個默認的root賬號,下面這篇文章主要給大家介紹了關于MySQL命令行登入的兩種方式,需要的朋友可以參考下
    2023-04-04
  • MySQL如何生成自增的流水號

    MySQL如何生成自增的流水號

    這篇文章主要介紹了MySQL如何生成自增的流水號問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 一次Mysql?update?sql不當引起的生產(chǎn)故障記錄

    一次Mysql?update?sql不當引起的生產(chǎn)故障記錄

    這篇文章主要給大家介紹了關于一次Mysql?update?sql不當引起的生產(chǎn)故障的相關資料,由于update涉及到數(shù)據(jù)的修改,所以很容易推斷,update語句比select語句會更復雜一些,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • MySQL安裝及初始密碼設置方式

    MySQL安裝及初始密碼設置方式

    這篇文章主要介紹了MySQL安裝及初始密碼設置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 通過mysqladmin遠程管理mysql的方法

    通過mysqladmin遠程管理mysql的方法

    在一些特殊場景下,想要遠程重啟mysql,以便讓某些修改能及時的生效,但是mysql并沒有提供遠程重啟的功能,唯一能做的就是遠程關閉mysql服務
    2013-03-03
  • 一篇文章帶你了解SQL之CASE WHEN用法詳解

    一篇文章帶你了解SQL之CASE WHEN用法詳解

    本文介紹下,在mysql數(shù)據(jù)庫中,有關case when語句的用法,介紹了case when語句的基礎知識,并提供了相關實例,供大家學習參考,有需要的朋友不要錯過
    2021-08-08
  • MySQL中SQL的執(zhí)行順序詳解

    MySQL中SQL的執(zhí)行順序詳解

    這篇文章主要介紹了MySQL中SQL的執(zhí)行順序,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05

最新評論

万载县| 遵义县| 钦州市| 萝北县| 原阳县| 建瓯市| 桂平市| 浙江省| 黄平县| 北流市| 临泽县| 吴堡县| 乌兰县| 博爱县| SHOW| 四平市| 积石山| 淅川县| 宝清县| 沙湾县| 萝北县| 安图县| 醴陵市| 紫金县| 新乐市| 桐柏县| 喜德县| 监利县| 海口市| 宾阳县| 汽车| 射洪县| 日土县| 宿州市| 白玉县| 大厂| 杭州市| 呼图壁县| 若尔盖县| 天峨县| 昭苏县|