mysql使用筆記

常用界面工具

有時候爲了方面,可以使用界面工具查看修改mysql,推薦兩個工具:

  • Navicat 需要破解

  • HeidiSQL 開源免費

shell操作

遠程登錄

mysql -u username -p123456 -h 192.168.97.200 -P 3300 -D dbname ## 注意 -p後面無空格,緊跟密碼 

查看數據庫和表

show databases;

show tables;

use database_name; # 進入這個數據庫

desc table_name;   # 查看錶結構

status;            # 查看當前數據庫的名稱、ip、端口等等信息

select database(); #查看當前的數據庫名稱 這是調用函數

查看存儲過程或者函數

SHOW CREATE { PROCEDURE | FUNCTION } sp_name ;

//例子
SHOW CREATE PROCEDURE GetTableReset\G;
*************************** 1. row ***************************
           Procedure: GetTableReset
            sql_mode: 
    Create Procedure: NULL
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
1 row in set (0.00 sec)

因爲沒有root權限,所以 Create ProcedureNULL,看不到具體的定義。

常用函數

-- unix時間戳轉爲日期  
select FROM_UNIX(timestamp) ;
-- 獲取unix時間戳  
select UNIX_TIMESTAMP();

-- 字符串IP轉爲整數
select INET_ATON("192.168.1.1")
-- 整數IP轉爲字符串IP
select INET_NTOA(12343445)
 

補充–函數和存儲過程的區別

存儲過程,包括的多條SQL,可以返回結果集,調用存儲過程,就像調用sql一樣。

而函數則不同,函數強調的是計算獲得一個結果,和內置的函數類似,比如sum count等等。

1:限制

存儲函數和存儲過程統稱爲存儲例程(store routine),存儲函數的限制比較多,例如不能用臨時表,只能用表變量,而存儲過程的限制較少,存儲過程的實現功能要複雜些,而函數的實現功能針對性比較強

2:返回值不同

存儲函數必須有返回值,且僅返回一個結果值
存儲過程可以沒有返回值,但是能返回結果集(out,inout)

3:調用時的不同

存儲函數嵌入在SQL中使用,可以在select 存儲函數名(變量值);
存儲過程通過call語句調用 call 存儲過程名

4:參數的不同

存儲函數的參數類型類似於IN參數
存儲過程的參數類型有三種
1: in 數據只是從外部傳入內部使用(值傳遞),可以是數值也可以是變量
2: out 只允許過程內部使用(不用外部數據),給外部使用的(引用傳遞:外部的數據會被先清空纔會進入到內部),只能是變量
3: inout 外部可以在內部使用,內部修改的也可以給外部使用,典型的引用 傳遞,只能傳遞變量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章