當前位置:成語大全網 - 書法字典 - Sql公共數據字典

Sql公共數據字典

本文以Mysql數據庫為基礎,對常用的sql語句進行了深入總結。由於篇幅較長,難免會有壹些疏漏。歡迎網友批評指出!

具體內容主要包括以下幾個部分:

創建數據庫相對簡單,創建時直接指定字符集和排序規則即可!

示例:

有三種方法可以修改數據庫的名稱。如果是MyISAM存儲引擎,您可以直接轉到數據庫目錄mv。如果是Innodb,將提示您相關表不存在。

這個語法是在mysql-5.1.7中添加的,但在mysql-5.1.23中被刪除了。政府不建議這樣做,而且有丟失數據的危險!

其思路是先創建壹個新庫,然後將舊庫中的數據導入到新庫中,這樣就完成了庫名的修改!

當然,盡管這種方法是安全的,但如果數據量很大,它將非常耗時,並且需要考慮磁盤空間等硬件成本。

示例:

直接運行壹個shell腳本!

其中p123456,p是密碼的縮寫,123456代表數據庫密碼值!

刪除庫比較簡單,直接刪除就行了!

或者

MySQL主要有以下操作符:

運算符描述實例+加法選擇1+2;結果是3-減法選擇1-2;結果是-1 *乘選2 * 3;結果是6/除法選擇6/3;結果是2%余數選擇10% 3;結果是1。

註意:在除法和模運算中,如果除數為0,則為非法除數,返回結果為空。

SELECT語句中的條件語句通常使用比較運算符。通過這些比較運算符,我們可以判斷表中哪些記錄是合格的。如果比較結果為真,則返回1;如果為假,則返回0;如果比較結果不確定,將返回NULL。

操作員描述實例=等於select * from t _ user其中user _ ID = 1查詢用戶ID為1的信息!=不等於select * from t_user where user_id!= 1查詢用戶ID不是1》的信息;大於select * from t _ user where user _ id》;1查詢用戶id大於1》的信息:=大於select * from t _ user where user _ id》= 1查詢用戶ID大於或等於1的信息大於select * from t _ user where user _ ID

註意:在mysql中,IN語句中的參數數量是無限的。但是整個sql語句的長度是有限的,最大不超過4M!

邏輯運算符用於判斷表達式是否為真。如果表達式為真,結果將返回1。如果表達式為false,則結果返回0。

運算符描述實例NOT or!邏輯非選擇非1;結果是0和邏輯和選擇2和0;結果是0或邏輯或選擇2或0;結果是1 XOR邏輯XOR選擇null或1;結果是1。

位運算符是對二進制數執行計算的運算符。位運算首先將操作數轉換為二進制數進行位運算。然後將計算結果從二進制數改為十進制數。

運算符描述壹個實例&;按位and選擇3 &;5;結果是1 I按位或選擇3I5結果是7位異或選擇3I5結果是7位異或選擇3^5;結果是6 ~按位反向選擇~ 654438+0844674073709551612;結果是3》》;換檔選擇3》& gt1;結果是1

優先級(從高到低)運算符1!2-(減號),~(按位求反)3(按位異或)4*,/(DIV),%(MOD)5+,-6 & gt;& gt,& lt& lt7 & amp8I 9=(比較操作),

註意:如果無法確定優先級,可以使用括號()來更改優先級,這將使計算過程更加清晰。

視圖是虛擬表和邏輯表,不包含任何數據。作為select語句存儲在數據字典中。

參數描述:

基本格式:

創建視圖的示例:

刪除視圖意味著刪除數據庫中的現有視圖。刪除視圖時,只能刪除視圖的定義,不會刪除數據,即不會移動基表:

刪除示例:

函數描述實例char _ length(S)返回字符串S的字符長度,選擇char _ length(“hello“)作為內容;concat(s 1,s2...sn)字符串s1、s2和其他字符串合並為壹個字符串Select concat(“hello”、“world”)作為內容;format(x,n)將數字x格式化為小數點後n位數字,最後壹位數字四舍五入後選擇format(500.5634,2)作為內容;lower(s)將所有字母轉換為小寫字母select lower(‘HELLO‘);Current_timestamp()返回當前日期和時間select current _ timestamp();DATE _ FORMAT(DATE,FORMAT)格式時間或日期選擇DATE _ FORMAT(current _ timestamp(),“% y-% m-% d % h:% I:% s“);If NULL(v1,v2)如果v1的值不為空,則返回v 1,否則返回v2 select If NULL(NULL,‘hello word‘);

參數描述:

參數描述:

參數描述:

參數描述:

示例:

參數描述:

參數描述:

創建壹個用於查詢用戶信息的存儲過程示例:

輸出結果:

刪除示例:

觸發器是壹個與表相關的數據庫對象,當滿足定義的條件時會被觸發,並執行觸發器中定義的壹組語句。

定義語法

參數描述:

例如,創建了壹個名為trig1的觸發器,壹旦t_user表中有插入操作,當前時間將自動插入t_time表中。

使用多個執行語句創建觸發器語法。

例子如下:

插入成功後,開始...將執行END語句!

所有觸發器信息都存儲在information_schema數據庫下的觸發器表中,可以使用SELECT語句查詢該表。如果觸發器信息太多,最好通過TRIGGER_NAME字段指定查詢。

例子如下:

刪除觸發器後,最好使用上述方法再次檢查。

盡可能少使用觸發器,因為無論如何,它仍然會消耗資源。如果您使用它們,您應該小心使用它們,並確保它們非常有效:觸發器是針對每壹行的;切記不要對頻繁添加或刪除的表使用觸發器,因為這會消耗大量資源。

在MySQL中,有幾種方法可以實現獨特的價值:

在mysql中,通常我們可以將主鍵字段設置為自動遞增模式,例如:

在這種模式下,當存在單個數據庫和單個表時沒有問題,但如果將test_db表劃分到不同的數據庫和表中,此時問題就會出現。如果對數據庫進行水平分割,此時將數據插入test_db_1和test_db_2中,會出現相同的ID!

當然,為了避免這種情況,壹些大神創建了自增序列表並單獨維護,這樣在劃分表時就不會出現相同的id了!

實現過程也很簡單!

這種方案在某些情況下解決了表拆分的問題,但是如果數據庫被拆分,相同的ID仍然會出現!

UUID基於十六進制16,由十六進制16中的32個小寫數字組成,如下所示:

例如,d0c 754 A8-178 e-11e B- ae3d-2 a7 bea 22 ed3d是典型的UUID。

在MySQL的UUID()函數中,前三組數字由時間戳生成,第四組數字暫時保持時間戳的唯壹性,第五組數字是IEEE 802節點標點值,以確保空間的唯壹性。

使用UUID()函數,可以生成時間和空間的唯壹值。據說只要使用UUID,就不可能看到兩個重復的UUID值。當然,這只是在理論情況下。

使用方法也很簡單,可以直接作為sql中的函數調用!

在MySQL 5.1之後,提供了UUID _肖特()函數來生成壹個64位無符號整數,java中的Long類型可以接受該整數。此外,需要註意的是server_id的範圍必須是0-255,並且不支持語句模式復制,否則可能會生成重復的id。

同時,應該註意到UUID _肖特()返回無符號長整型。設置字段類型時,必須勾選無符號類型,否則生成的ID可能會超過long類型的最大長度!

描述:

請使用管理員帳戶登錄後再進行其他授權!

註意:由上述命令授權的用戶不能授權給其他用戶。如果您希望該用戶授權,請使用以下命令!

只需在末尾添加授予選項即可!

您可以使用以下命令壹鍵設置root用戶的密碼,同時您擁有所有權限並將其設置為遠程訪問!

如果您想關閉根用戶的遠程訪問權限,只需使用以下命令!

最後,使用以下命令使其生效!

創建用戶並授權給他們。您還可以使用以下快捷命令!

最後要註意的是:mysql8使用強驗證,因此如果密碼太簡單,它將報告錯誤,並且密碼應盡可能復雜!

本文主要對Mysql中常用的語法進行了梳理和介紹。這些語法大多也適用於其他數據庫,如oracle、sqlserver、postgres等。數據操作欄裏,除了分頁功能,基本都是通用的!