程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySql 必須要知道的一些語法,MySql語法

MySql 必須要知道的一些語法,MySql語法

編輯:MySQL綜合教程

MySql 必須要知道的一些語法,MySql語法


如果你初識MySql的話,那麼這些語法糖你有必要知道。

1.Sql創建數據庫

-- 如果存在數據庫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設置編碼格式。

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.關於批量更新和插入數據到mysql

-- 批量插入
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之間的部分復制替換成要更新的字段信息

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved