1、Mysql系統時間自動獲取:
列類型 顯示格式
TIMESTAMP(14) YYYYMMDDHHMMSS
TIMESTAMP(12) YYMMDDHHMMSS
TIMESTAMP(10) YYMMDDHHMM
TIMESTAMP(8) YYYYMMDD
TIMESTAMP(6) YYMMDD
TIMESTAMP(4) YYMM
TIMESTAMP(2) YY
它會自動地用當前的日期和時間標記你的INSERT或UPDATE的操作。如果一張表中有多個TIMESTAMP列,只有第一個自動更新。
在下列情況下MySQL會自動更新第一個TIMESTAMP列為當前系統時間
1、當一個INSERT、UPDATE或LOAD DATA INFILE語句中沒有明確地指定其值時。
(注意一個UPDATE設置一個列為它已經有的值,這將不引起TIMESTAMP列被更新,因為如果你設置一個列為它當前的值,MySQL為了效率而忽略更改。看附例)
2、你明確地設定TIMESTAMP列為NULL.
3、除第一個以外的TIMESTAMP列也可以設置到當前的日期和時間,只要將列設為NULL,或NOW()。
例:
CREATE TABLE test(
Datetime timestamp(14) NOT NULL ,
)
2、Mysql刪除添加主鍵索引:
Mysql的兩種主鍵。Primary key 和not null auto_incriment
(1)在建立mysql表時,給一個字段添加了主鍵primary key沒有添加自增長時
在insert數據時可以不用insert主鍵,mysql會自動添加0,但是在第二次insert時沒有填寫值mysql數據庫還是默認添加0,會導致有重復的主鍵,這是不可以的。所有在定義了primary key時,在insert數據時要給主鍵填寫值。
(2)在建立mysql表時,給一個字段添加了主鍵not null auto_increment;
這也是一個主鍵。時自增長的以1為開始。這個字段是可以不用填寫值的,mysql數據庫會自動給填寫值,不會出現primary key的狀況。
Alter table tb add primary key(id);
Alter table tb change id id int(10) not null auto_increment=1;
(3)刪除自增長的主鍵id
先刪除自增長在刪除主鍵
Alter table tb change id id int(10);//刪除自增長
Alter table tb drop primary key;//刪除主建
(4)添加刪除索引
在執行CREATE TABLE語句時可以創建索引,也可以單獨用CREATE INDEX或ALTER TABLE來為表增加索引。
1)添加索引 ALTER TABLE table_name ADD INDEX index_name (column_list)
ALTER TABLE table_name ADD UNIQUE (column_list)
ALTER TABLE table_name ADD PRIMARY KEY (column_list)
其中table_name是要增加索引的表名,column_list指出對哪些列進行索引,多列時各列之間用逗號分隔。索引名index_name可選,缺省時,MySQL將根據第一個索引列賦一個名稱。另外,ALTER TABLE允許在單個語句中更改多個表,因此可以在同時創建多個索引。
2)索引類型
在創建索引時,可以規定索引能否包含重復值。如果不包含,則索引應該創建為PRIMARY KEY或UNIQUE索引。對於單列惟一性索引,這保證單列不包含重復的值。對於多列惟一性索引,保證多個值的組合不重復。
PRIMARY KEY索引和UNIQUE索引非常類似。事實上,PRIMARY KEY索引僅是一個具有名稱PRIMARY的UNIQUE索引。這表示一個表只能包含一個PRIMARY KEY,因為一個表中不可能具有兩個同名的索引。
下面的SQL語句對InodbTest表在No上添加PRIMARY KEY索引。
ALTER TABLE InodbTest ADD PRIMARY KEY (No)
3)刪除索引
可利用ALTER TABLE或DROP INDEX語句來刪除索引。類似於CREATE INDEX語句,DROP INDEX可以在ALTER TABLE內部作為一條語句處理,語法如下。
DROP INDEX index_name ON talbe_name
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY
其中,前兩條語句是等價的,刪除掉table_name中的索引index_name。
第3條語句只在刪除PRIMARY KEY索引時使用,因為一個表只可能有一個PRIMARY KEY索引,因此不需要指定索引名。如果沒有創建PRIMARY KEY索引,但表具有一個或多個UNIQUE索引,則MySQL將刪除第一個UNIQUE索引。
如果從表中刪除了某列,則索引會受到影響。對於多列組合的索引,如果刪除其中的某列,則該列也會從索引中刪除。如果刪除組成索引的所有列,則整個索引將被刪除。
4)查看索引
mysql> show index from tblname;
3、Mysql使用存儲過程:
(1)
查看databases中的存儲過程:
show procedure status;
查看存儲過程或函數的創建代碼
show create procedure proc_name;
show create function func_name;
(2)
創建一個存儲過程在InodbTest表中插入30個數據:
PS:
DELIMITER // 是用來改變結束鍵
concat('jk',ID) 是用來連接jk和數字的,轉換為varchar型
DELIMITER // create procedure test_insert997() BEGIN declare ID int; set ID=1; WHILE(ID<=30) do INSERT INTO InodbTest(name) VALUES(concat('jk',ID)); SET ID=ID+1; end while; END //
(3)
一.創建存儲過程
1.基本語法: create procedure sp_name()2.參數傳遞
二.調用存儲過程
1.基本語法:call sp_name()三.刪除存儲過程
1.基本語法:四.區塊,條件,循環
3.循環語句
(1).while循環<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KCjxpbWcgc3JjPQ=="https://www.aspphp.online/shujuku/UploadFiles_3118/201701/2017012012273572.gif" alt="\">[label:] WHILE expression DO
statements
END WHILE [label] ;
(2).loop循環
[label:] LOOP
statements
END LOOP [label];
(3).repeat until循環
[label:] REPEAT
statements
UNTIL expression
END REPEAT [label] ;
mysql存儲過程中要用到的運算符
算術運算符
+ 加 SET var1=2+2; 4
- 減 SET var2=3-2; 1
* 乘 SET var3=3*2; 6
/ 除 SET var4=10/3; 3.3333
DIV 整除 SET var5=10 DIV 3; 3
% 取模 SET var6=10%3 ; 1
比較運算符
> 大於 1>2 Falsemysq存儲過程中常用的函數,字符串類型操作,數學類,日期時間類
一.字符串類
CHARSET(str) //返回字串字符集TRIM([[BOTH|LEADING|TRAILING] [padding] FROM]string2) //去除指定位置的指定字符
UCASE (string2 ) //轉換成大寫
RIGHT(string2,length) //取string2最後length個字符
SPACE(count) //生成count個空格
二.數學類
ABS (number2 ) //絕對值mysql> select round(1.56);
+————-+
| round(1.56) |
+————-+
| 2 |
+————-+
1 row in set (0.00 sec)
(2)可以設定小數位數,返回浮點型數據
mysql> select round(1.567,2);
+—————-+
| round(1.567,2) |
+—————-+
| 1.57 |
+—————-+
1 row in set (0.00 sec)
SIGN (number2 ) //返回符號,正負或0
SQRT(number2) //開平方
三.日期時間類