如果你初識mysql的話,那么這些語法糖你有必要知道。
-
Sqlmysql
--?如果存在數據庫order,則刪除。否則創建數據庫 drop?database?if?exists?`order`; --?創建數據庫 create?database?`order`;
2.Sql創建數據表
CREATE?TABLE?`Users`?( ??`ID`?bigint(20)?NOT?NULL?AUTO_INCREMENT?COMMENT?'客戶id', ??`Member`?varchar(20)?DEFAULT?NULL?COMMENT?'會員號', ??`Name`?varchar(100)?DEFAULT?NULL?COMMENT?'姓名', ??`Phone`?varchar(20)?DEFAULT?NULL?COMMENT?'手機號碼', ??`QQ`?varchar(20)?DEFAULT?NULL?COMMENT?'QQ', ??`PassWord`?varchar(50)?DEFAULT?NULL?COMMENT?'密碼', ??`IsOpen`?char(2)?DEFAULT?'Y'?COMMENT?'是否禁用', ??`Createtime`?datetime?DEFAULT?NULL?COMMENT?'創建時間', ??PRIMARY?KEY?(`ID`) )?ENGINE=InnoDB?AUTO_INCREMENT=1000?DEFAULT?CHARSET=utf8; 我這里創建了一個Users表,如果你的MySql里面存在多個數據庫的話你可以使用?關鍵詞?Use?來告訴mysql你所創建的表屬于哪一個庫,我這里創建到了上面新建的Order庫里面,如果你有mysql或者SQLserver的基礎的話 你會覺得這些都很簡單,確實如此,主鍵,默認值,是否為空,是否自增等等,你都了解,不過還是有兩個東西值的說一下,一個是沒個字段的備注,我個人開發過程中覺得這個非常重要,所以一個簡單的備注能讓你快速的回憶起 這個字段的作用,COMMENT?就是專門做這個的。第二個是我創建表中的1000這個值,這個是該表的記錄會從1000開始,可以自己去定義。uft8設置編碼格式。
我這里創建了一個Users表,如果你的MySql里面存在多個數據庫的話你可以使用 關鍵詞 Use 來告訴mysql你所創建的表屬于哪一個庫,我這里創建到了上面新建的Order庫里面,如果你有mysql或者SQLserver的基礎的話 你會覺得這些都很簡單,確實如此,主鍵,默認值,是否為空,是否自增等等,你都了解,不過還是有兩個東西值的說一下,一個是沒個字段的備注,我個人開發過程中覺得這個非常重要,所以一個簡單的備注能讓你快速的回憶起 這個字段的作用,COMMENT 就是專門做這個的。第二個是我創建表中的1000這個值,這個是該表的記錄會從1000開始,可以自己去定義。uft8設置編碼格式。
3.創建存儲過程
DELIMITER?$$ CREATE?DEFINER=`root`@`%`?PROCEDURE?`RecordPage`( ????tblName?varchar(2000), ????SelectFieldName?varchar(4000), ????strWhere?varchar(4000), ????OrderField?varchar(2000), ????PageSize?int, ????PageIndex?int, ????out?iRowCount?int??,????????????--?總記錄數 ????out?pagecount?int???????????????--?總分頁數 ) $$:begin ?????declare?v_sqlcounts?varchar(4000); ?????declare?v_sqlselect?varchar(4000); ?????#拼接查詢總記錄的SQL語句 ?????set?strWhere=concat('?where?',?strWhere); ?????set?OrderField=concat('?order?by?',?OrderField); ????#拼接分頁查詢記錄的動態SQL語句 ????set?v_sqlselect?=?concat('select?',SelectFieldName,'?from?',tblName,strWhere,if(OrderField?is?not?null,OrderField,''),'?limit?',(PageIndex-1)*PageSize,'?,?',PageSize); ???#select?v_sqlselect;leave?$$; ???set?@sqlselect?=?v_sqlselect; ???prepare?stmtselect?from?@sqlselect; ????????execute?stmtselect; ???deallocate?prepare?stmtselect; ??? ???????--?set?v_sqlcounts?=?concat('select?count(*)?into?@recordcount?from?',tblName,strWhere); ?????set?v_sqlcounts?=?concat('select?SQL_CALC_FOUND_ROWS?',SelectFieldName,'??from?',tblName,strWhere); ????#select?v_sqlcounts;leave?$$; ????set?@sqlcounts?=?v_sqlcounts; ????prepare?stmt?from?@sqlcounts; ?????????execute?stmt; ????deallocate?prepare?stmt; ????#獲取動態SQL語句返回值 ????--?set?iRowCount?=?@recordcount; ?????set?iRowCount?=?(select?FOUND_ROWS()); ??? end?$$$$ DELIMITER?; 創建存儲過程的格式,上面是我創建的一個通用分頁的存儲過程,親測,可用,只需要對應傳參數就行了
4.關于批量
立即學習“PHP免費學習筆記(深入)”;
--?批量插入 INSERT?INTO?`order`.`users`(`ID`,`Member`,`Name`,`Phone`,`QQ`,`PassWord`,`IsOpen`,`Createtime`) VALUES(),(),(),(),(),(),()......; --批量更新 UPDATE?`order`.`users` SET?Name=?case?ID ????WHEN?1?THEN?'111' ????WHEN?2?THEN?'222' ????WHEN?3?THEN?'333'? ????END WHERE?`ID`?in(1,2,3)?; 更新多個字段的時候可以將SET與END之間的部分復制替換成要更新的字段信息
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END