1. 程式人生 > 其它 >25 MySQL資料型別、運算子

25 MySQL資料型別、運算子

經典問題解決方案

命令列亂碼

  • 資料庫預設編碼為utf8,而windows預設編碼為GBK

    mysql> set names gbk;  
    Query OK, 0 rows affected (0.00 sec) 
    

退出當前錯誤語句

  • 語句打錯以後在語句後打 \c 可以快速退出本語句

破解資料庫密碼

  • 關掉mysqld服務程序

  • 通過 mysqld --skip-grant-tables開啟mysqld

  • mysql -uroot無密碼登入伺服器

  • 修改許可權表

    use mysql;
    update user set Password=password('123456') where User='root';
    flush privileges;
    
  • 重啟mysql服務

MySQL的資料型別

整數

  • TINYINT
  • INT
  • BIGINT

浮點型

  • DOUBLE

定點型

  • DECIMAL
  • 在MySQL內部以字串形式存放,比浮點數更精確

日期時間型別

  • date : YYYY-MM-DD
  • time : HH:MM:SS
  • datetime : YYYY-MM-DD HH:MM:SS
  • year : YYYY
  • timestamp : 時間戳

字串型

  • char:定長字串
  • Varchar:變長字串

特殊的NULL值

  • 所有型別的值都可以是null,包括int、float等資料型別
  • 空字串"" 不等於null,0也不等於null,false也不等於null
  • 任何運算子、判斷符碰到null都得null
  • null的判斷只能用is null,is not null
  • null影響查詢速度,一般避免使值為null

MySQL的運算子

算數運算子

  • “+”,“-”,“*”,“/”,“%”

比較運算子

  • “=”,“>=”,“<=”,“!=”(不等於,<>),“<=>”(安全的等於)

邏輯運算子

  • “&&”,“||”,“!”
  • AND,OR,NOT(非),XOR(異或)

範圍和集合

  • between...and..
  • in(集合)

模糊查詢

  • like
  • _ 匹配單個字元
  • % 匹配任意個字元