国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySql 排序規(guī)則

這篇具有很好參考價值的文章主要介紹了MySql 排序規(guī)則。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、MySQL的排序規(guī)則是干什么的?

我們在使用 Navicat for MySQL 或 MySQL Workbench 創(chuàng)建數(shù)據(jù)庫的時候,除了數(shù)據(jù)庫名稱和字符集外,我們還可以設(shè)置 Collation【排序規(guī)則】 (當然我們也可以使用默認的排序規(guī)則),那么這里的排序規(guī)則到底是干什么的?

排序規(guī)則概念:是指對指定字符集下不同字符的比較規(guī)則。排序規(guī)則有以下特征:

它和字符集(CHARSET)相關(guān)

每種字符集都有多種它支持的排序規(guī)則

每種字符集都會默認指定一種排序規(guī)則為默認值。

排序規(guī)則作用:排序規(guī)則指定后,它會影響我們使用 ORDER BY語句查詢的結(jié)果順序,會影響到 WHERE條件中大于小于號的篩選結(jié)果,會影響 DISTINCT、GROUP BY、HAVING 語句的查詢結(jié)果。另外,mysql 建索引的時候,如果索引列是字符類型,也會影響索引創(chuàng)建,只不過這種影響我們感知不到。總之,凡是涉及到字符類型比較或排序的地方,都和排序規(guī)則有關(guān)。

2、排序規(guī)則設(shè)置及優(yōu)先級

2.1 排序規(guī)則設(shè)置

排序規(guī)則設(shè)置可以分為:MySQL實例級別、庫級別、表級別、列級別以及SQL指定。

2.1.1 MySQL實例級別設(shè)置

實例級別的排序規(guī)則設(shè)置就是 MySQL 配置文件或啟動指令中的 collation_connection 系統(tǒng)變量。

實例級別設(shè)置排序規(guī)則

可以通過修改mysql的配置文件 my.ini來修改相應(yīng)的排序規(guī)則,修改好后,重啟mysql服務(wù)。

查看MySQL實例級別的字符集和排序規(guī)則

show variables like '%character%';

show variables like '%collation%';

從上圖可以看到,當前實例級別的字符集是 utf8,排序規(guī)則是 utf8-general_ci。

2.1.2 庫級別設(shè)置

庫級別設(shè)置排序規(guī)則

在創(chuàng)建數(shù)據(jù)庫的時候指定數(shù)據(jù)集和排序規(guī)則

CREATE DATABASE TESTDB? ? ? ? ?

DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;?

查看庫級別排序規(guī)則

show create database testdb;

2.1.3 表級別設(shè)置

表級別設(shè)置排序規(guī)則

在創(chuàng)建表的時候指定表的數(shù)據(jù)集和排序規(guī)則

use testdb;

CREATE TABLE user(

? `id` int(11) NOT NULL,

? `name` varchar(255) DEFAULT NULL,

? PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

查看表級別排序規(guī)則

show table status from testdb like 'user';

-- testdb 為數(shù)據(jù)庫名, user 為要查看的表名

2.1.4 列級別設(shè)置

列級別設(shè)置排序規(guī)則

在創(chuàng)建表的時候指定列的數(shù)據(jù)集和排序規(guī)則

CREATE TABLE `user` (

? `id` int(11) NOT NULL,

? `name` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL,

? PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

查看列級別排序規(guī)則

show full columns from user;

2.1.5 SQL指定設(shè)置

SQL語句中指定排序規(guī)則

SELECT id, name FROM `user`

ORDER BY name COLLATE utf8mb4_unicode_ci;

2.2 排序規(guī)則優(yōu)先級

優(yōu)先級順序是 SQL語句 > 列級別設(shè)置 > 表級別設(shè)置 > 庫級別設(shè)置 > 實例級別設(shè)置

也就是說,如果SQL語句中指定了排序規(guī)則,則以其指定為準,否則以下一級為準(也就是列級別),如果列級別沒有指定,默認是繼承表級別的設(shè)置,以此類推。

3、幾種常用排序規(guī)則介紹

我們以字符集utf8mb4為例,常用的排序規(guī)則有:utf8mb4_general_ci、utf8mb4_bin、utf8mb4_unicode_ci。

3.1 utf8mb4_general_ci

ci即case insensitive,不區(qū)分大小寫。沒有實現(xiàn)Unicode排序規(guī)則,在遇到某些特殊語言或者字符集,排序結(jié)果可能不一致,但是,在絕大多數(shù)情況下,這些特殊字符的順序并不需要那么精確。另外,在比較和排序的時候速度更快。

3.2 utf8mb4_bin

將字符串每個字符用二進制數(shù)據(jù)編譯存儲,區(qū)分大小寫,而且可以存二進制的內(nèi)容。

3.3 utf8mb4_unicode_ci

不區(qū)分大小寫,基于標準的Unicode來排序和比較,能夠在各種語言之間精確排序,在特殊情況下,Unicode排序規(guī)則為了能夠處理特殊字符的情況,實現(xiàn)了略微復(fù)雜的排序算法,所以兼容度比較高,但是性能不高。文章來源地址http://www.zghlxwxcb.cn/news/detail-470649.html

到了這里,關(guān)于MySql 排序規(guī)則的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 什么是tomcat?tomcat是干什么用的?

    什么是tomcat?tomcat是干什么用的?

    什么是tomcat Tomcat是常見的免費的web服務(wù)器. Tomcat 這個名字的來歷,Tomcat是一種野外的貓科動物,不依賴人類,獨立生活。 Tomcat的作者,取這個名字的初衷是希望,這一款服務(wù)器可以自力更生,自給自足,像Tomcat這樣一種野生動物一般,不依賴其他插件,而可以獨立達到提供

    2023年04月11日
    瀏覽(24)
  • python cv2是什么,可以用來干什么

    OpenCV (Open Source Computer Vision Library) 是一個流行的開源計算機視覺庫,提供了豐富的圖像和視頻處理功能。通過使用 OpenCV 的 Python 綁定庫 cv2,可以實現(xiàn)以下一些功能: 圖像讀取和顯示:使用 cv2.imread() 讀取圖像文件,使用 cv2.imshow() 顯示圖像窗口。 圖像處理:包括圖像濾波、

    2024年02月14日
    瀏覽(20)
  • Hessian 矩陣漢語叫什么名字,是什么意思,是用來干什么的?

    問題描述:Hessian 矩陣漢語叫什么名字,是什么意思,是用來干什么的? 問題解答: Hessian 矩陣的漢語名字是“黑塞矩陣”或“海森矩陣”。 這個名字的來源是對德國數(shù)學家Ludwig Hessian(海森)的姓氏的翻譯。Hessian 矩陣是一個方陣,其中的元素是一個函數(shù)的二階偏導(dǎo)數(shù),用

    2024年01月22日
    瀏覽(45)
  • node.js是干什么的

    node.js是干什么的

    Node.js是一個開源和跨平臺的JavaScript運行時環(huán)境。它幾乎是任何類型項目的流行工具! Node.js在瀏覽器之外運行V8 JavaScript引擎(Google Chrome的內(nèi)核)。這使得Node.js的性能非常好。 Node.js應(yīng)用程序在單個程序中運行,無需為每個請求創(chuàng)建新的線程。Node.js在其標準庫中提供了一組異

    2023年04月09日
    瀏覽(20)
  • 在線ios免簽是干什么的?

    在本教程中,我們將介紹在iOS設(shè)備上實現(xiàn)免簽名應(yīng)用程序安裝的原理和詳細步驟。首先,請注意,這些應(yīng)用程序通??赡艽嬖陲L險,因為它們沒有經(jīng)過蘋果官方的簽名審核。但是,現(xiàn)實中確實有一些情況,您可能需要安裝一些非官方渠道的iOS應(yīng)用。在這種情況下,下面的內(nèi)容

    2024年02月07日
    瀏覽(24)
  • SpringBoot 配置文件:什么是配置文件?配置文件是干什么?

    SpringBoot 配置文件:什么是配置文件?配置文件是干什么?

    學習一個東西,我們先要知道它有什么用處。整個項目中所有重要的數(shù)據(jù)都在配置文件中配置,例如:數(shù)據(jù)庫的連接信息、項目啟動窗口、第三方系統(tǒng)調(diào)用密鑰、日志等級…,如果沒有配置信息,那么 SpringBoot 項目就無法連接數(shù)據(jù)庫,不能保存關(guān)鍵日志,因此,在項目中,配

    2024年02月16日
    瀏覽(22)
  • DNS劫持是什么意思?DNS劫持是干什么用的?

    DNS劫持又稱域名劫持,是指在劫持的網(wǎng)絡(luò)范圍內(nèi)攔截域名解析的請求,分析請求的域名,把審查范圍以外的請求放行,否則返回假的IP地址或者什么都不做使請求失去響應(yīng),其效果就是對特定的網(wǎng)絡(luò)不能反應(yīng)或訪問的是假網(wǎng)址。 DNS劫持原理 我們以用戶訪問淘寶網(wǎng):www.taobao.

    2024年02月08日
    瀏覽(18)
  • 路由器是什么東西?路由器是干什么用的?

    路由器是什么東西?雖然這個問題對于大多數(shù)人來說都不是一個問題,但是任然有少數(shù)缺乏網(wǎng)絡(luò)基礎(chǔ)的朋友,不知道路由器到底是個什么東西,本文就簡單的介紹一下。 路由器(Router),是連接局域網(wǎng)與局域網(wǎng)、局域網(wǎng)與廣域網(wǎng)(Internet)的一種設(shè)備,它會根據(jù)信道的情況自

    2024年02月08日
    瀏覽(21)
  • WAF是干什么的 有哪些功能

    Web應(yīng)用防火墻簡稱:WAF(Web Application Firewall,Web應(yīng)用防火墻),很多人不了解WAF是干嘛的,WAF的功能有哪些,以及WAF的應(yīng)用場景!接下來小情給大家說一說! WAF是Web應(yīng)用防火墻(Web Application Firewall)的簡稱,Web應(yīng)用防火墻是通過執(zhí)行一系列針對HTTP/HTTPS的安全策略來專門為W

    2024年02月15日
    瀏覽(19)
  • 國外的大齡程序員在干什么?

    國外的大齡程序員在干什么?

    在Quora有個帖子: 我今年35歲了,是不是太老了,沒法加入Google, Facebook, Microsoft 或者 Apple了? 下面的回復(fù)讓人嘆為觀止,我摘錄幾個: 薩特南·辛格 ?Google軟件工程師?(2017–present) 不,我在51歲的時候加入了Google ,我們團隊還有幾個比我年長的人!他們都是非常卓越的軟件

    2024年02月05日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包