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

典型數據字典

本文以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,則為非法除數,返回結果為NULL。

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與邏輯AND選擇2和0;結果是0或邏輯或選擇2或0;結果是1 XOR邏輯XOR選擇null或1;結果是1。

位運算符是對二進制數執行計算的運算符。位運算會先把操作數變成二進制數進行位運算。然後將計算結果從二進制數改為十進制數。

運算符描述壹個實例&;按位and選擇3 &;5;結果是1 I按位or選擇3I5結果是7位異或選擇3I5結果是7位異或選擇3^5;結果是6 ~按位反選~ 1844674073709551612;結果是3 > >換檔選擇3 & gt& gt1;結果是1

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

註意:如果不能確定優先級,可以用括號()來改變優先級,這樣會使計算過程更清晰。

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

參數描述:

基本格式:

創建視圖的示例:

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

刪除示例:

函數描述實例char_length(s)返回字符串S的字符長度,選擇char _ length(“hello”)作為內容;Concat(s1,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) Format time或DATE Select DATE _ FORMAT(current _ timestamp()," % y-% m-% d % h:% I:% s ");IFNULL(v1,v2)如果v1的值不為NULL,則返回v1,否則返回v2select IFNULL(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 a 8-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用戶的密碼,同時擁有所有權限,設置為遠程訪問!

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

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

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

最後需要註意的是:mysql8使用強驗證,所以密碼太簡單會報錯,密碼盡量復雜!

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