MySQL高級選擇、FULLTEXT查找、執(zhí)行事務、數據加密

9.高級選擇

9.1 選擇最大值和最小值

GREATEST() //返回列表中最大值
LEAST() //返回列別中最小值

9.2 IF

語法
SELECT IF (condition, return_if_true, return_if_false)

10.執(zhí)行FULLTEXT 查找

10.1 ALTER 語法

ALTER TABLE tb_name CLAUSE

ALTER的子句[CLAUSE]


ADD COLUMN col_name TYPE //添加新列
CHANGE COLUMN c c TYPE //更改列的數據類型和屬性
ADD INDEX
DROP COLUMN
DROP INDEX
RENAME TO //更改表名


10.2 使用\G結尾替代分號,將以縱列的方式返回表格。

10.3 語法

    //添加索引
    ALTER TABLE tb_name ADD FULLTEXT (col_name1,col_name2,...)  //這是在表創(chuàng)建好之后添加FULLTEXT索引,也可以直接在創(chuàng)建表的時候添加
    //使用FULLTEXT查找
    SELECT * FROM tb_name WHERE MATCH (col_name) AGAINST (terms)
    //如 
    

10.4 注意事項


FULLTEXT 查找只能在MyISAM表類型中使用;
SHOW ENGINES可以查看數據庫支持的表類型(或者存儲引擎)。
MATCH()括號中的列名必須和添加索引的列保持一致,不能是單獨中的一個;


10.5 布爾型FULLTEXT查找

語法
SELECT * FROM tb_name WHERE MATCH(col_name) AGAINST('terms' IN BOOLEAN MODE)
運算符


+ //必須存在于每個匹配中
- //絕對不會存在于任何匹配中
~ //如果存在,則降低一個等級
* //通配符
< //降低
> //提升單詞重要性
"" //精確匹配
() //創(chuàng)建子表達式


如:

    SELECT * FROM tb_name WHERE 
    MATCH(col_name) AGAINST('>"Web develop" +html ~JavaScript' IN BOOLEAN MODE);

11. 執(zhí)行事務

事務是指在一次會話中執(zhí)行的一系列語句。如果其中任何一個語句執(zhí)行失敗,將撤銷所有的執(zhí)行語句。具有一定的保護性。

    START TRANSACTION;
    //執(zhí)行任何語句...
    //如果沒有發(fā)生錯誤,
    COMMIT;     //在commit之后,之前所做的所有操作才會永久保存;
    //如果其中任何一個語句執(zhí)行失敗,將撤銷所有的執(zhí)行語句
    //還可以手動撤銷
    ROLLBACK [TO SAVEPOINT savepoint_name];
    //創(chuàng)建保存點 SAVEPOINT savepoint_name;

12.數據庫加密

12.1 SHA1()&SHA2()

函數將會返回一個長度為40的散列數據,可以將存儲的字段類型設置成 VARCHAR(40);
這樣的密碼被保存后無法還原查看。
SHA2()需要MySQL5.5或者更高版本的支持。

12.2 AES_ENCRYPT() & AES_DECRYPT()

函數返回的是長度為16的二進制格式數據,人類不可讀??梢詫⒋鎯Φ淖侄晤愋驮O置成 VARBINARY(16);
語法格式: AES_ENCRYPT('password', salt) //salt為字符串,用作隨機加密,解密時需使用同樣的salt,同??梢詫alt同樣存在數據庫中。
加密舉例://pin列保存的是用戶的密碼,nacl保存的是salt字符串。

    UPDATE customers SET nacl = SUBSTRING(MD5(RAND()), -20)
    WHERE customer_id =1;
    UPDATE customers SET pin = AES_ENCRYPT('1234', nacl)
    WHERE customer_id =1;

解密:

    SELECT customer_id, AES_DECRYPT(pin, nacl) AS pin
    FROM customers WHERE customer_id =1;
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,534評論 19 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,638評論 18 399
  • 今天是星期五,我、媽媽和爸爸要。一起到鄭州方特玩,我好開心??!準備出發(fā)了,我們收拾好東西,上了車,向目的地...
    Greybear_閱讀 362評論 0 0
  • 代碼一 預覽源碼 代碼二 預覽源碼 代碼三 3-1預覽3-1源碼3-2預覽3-2源碼 代碼四 預覽源碼
    饑人谷_小敏閱讀 192評論 0 0

友情鏈接更多精彩內容