明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

php程序員對(duì)數(shù)據(jù)庫(kù)設(shè)置必須要知道的一些語(yǔ)法

[摘要]如果你初識(shí)MySql的話,那么這些語(yǔ)法糖你有必要知道。Sql創(chuàng)建數(shù)據(jù)庫(kù)-- 如果存在數(shù)據(jù)庫(kù)order,則刪除。否則創(chuàng)建數(shù)據(jù)庫(kù)drop database if exists `order`;-- 創(chuàng)建數(shù)據(jù)庫(kù)create database `order`;2.Sql創(chuàng)建數(shù)據(jù)表CREATE TABLE ...
如果你初識(shí)MySql的話,那么這些語(yǔ)法糖你有必要知道。

  1. Sql創(chuàng)建數(shù)據(jù)庫(kù)

-- 如果存在數(shù)據(jù)庫(kù)order,則刪除。否則創(chuàng)建數(shù)據(jù)庫(kù)
drop database if exists `order`;
-- 創(chuàng)建數(shù)據(jù)庫(kù)
create database `order`;

2.Sql創(chuàng)建數(shù)據(jù)表

CREATE TABLE `Users` (
  `ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '客戶id',
  `Member` varchar(20) DEFAULT NULL COMMENT '會(huì)員號(hào)',
  `Name` varchar(100) DEFAULT NULL COMMENT '姓名',
  `Phone` varchar(20) DEFAULT NULL COMMENT '手機(jī)號(hào)碼',
  `QQ` varchar(20) DEFAULT NULL COMMENT 'QQ',
  `PassWord` varchar(50) DEFAULT NULL COMMENT '密碼',
  `IsOpen` char(2) DEFAULT 'Y' COMMENT '是否禁用',
  `Createtime` datetime DEFAULT NULL COMMENT '創(chuàng)建時(shí)間',
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8;
我這里創(chuàng)建了一個(gè)Users表,如果你的MySql里面存在多個(gè)數(shù)據(jù)庫(kù)的話你可以使用 關(guān)鍵詞 Use 來(lái)告訴mysql你所創(chuàng)建的表屬于哪一個(gè)庫(kù),我這里創(chuàng)建到了上面新建的Order庫(kù)里面,如果你有mysql或者SQLserver的基礎(chǔ)的話
你會(huì)覺(jué)得這些都很簡(jiǎn)單,確實(shí)如此,主鍵,默認(rèn)值,是否為空,是否自增等等,你都了解,不過(guò)還是有兩個(gè)東西值的說(shuō)一下,一個(gè)是沒(méi)個(gè)字段的備注,我個(gè)人開(kāi)發(fā)過(guò)程中覺(jué)得這個(gè)非常重要,所以一個(gè)簡(jiǎn)單的備注能讓你快速的回憶起
這個(gè)字段的作用,COMMENT 就是專門(mén)做這個(gè)的。第二個(gè)是我創(chuàng)建表中的1000這個(gè)值,這個(gè)是該表的記錄會(huì)從1000開(kāi)始,可以自己去定義。uft8設(shè)置編碼格式。
我這里創(chuàng)建了一個(gè)Users表,如果你的MySql里面存在多個(gè)數(shù)據(jù)庫(kù)的話你可以使用 關(guān)鍵詞 Use 來(lái)告訴mysql你所創(chuàng)建的表屬于哪一個(gè)庫(kù),我這里創(chuàng)建到了上面新建的Order庫(kù)里面,如果你有mysql或者SQLserver的基礎(chǔ)的話
你會(huì)覺(jué)得這些都很簡(jiǎn)單,確實(shí)如此,主鍵,默認(rèn)值,是否為空,是否自增等等,你都了解,不過(guò)還是有兩個(gè)東西值的說(shuō)一下,一個(gè)是沒(méi)個(gè)字段的備注,我個(gè)人開(kāi)發(fā)過(guò)程中覺(jué)得這個(gè)非常重要,所以一個(gè)簡(jiǎn)單的備注能讓你快速的回憶起
這個(gè)字段的作用,COMMENT 就是專門(mén)做這個(gè)的。第二個(gè)是我創(chuàng)建表中的1000這個(gè)值,這個(gè)是該表的記錄會(huì)從1000開(kāi)始,可以自己去定義。uft8設(shè)置編碼格式。

3.創(chuàng)建存儲(chǔ)過(guò)程

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  ,            -- 總記錄數(shù)
    out pagecount int               -- 總分頁(yè)數(shù)
)
$$:begin
     declare v_sqlcounts varchar(4000);
     declare v_sqlselect varchar(4000);
     #拼接查詢總記錄的SQL語(yǔ)句
     set strWhere=concat(' where ', strWhere);
     set OrderField=concat(' order by ', OrderField);

    #拼接分頁(yè)查詢記錄的動(dòng)態(tài)SQL語(yǔ)句
    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;
    #獲取動(dòng)態(tài)SQL語(yǔ)句返回值
    -- set iRowCount = @recordcount;
     set iRowCount = (select FOUND_ROWS());
   
end $$$$
DELIMITER ;

創(chuàng)建存儲(chǔ)過(guò)程的格式,上面是我創(chuàng)建的一個(gè)通用分頁(yè)的存儲(chǔ)過(guò)程,親測(cè),可用,只需要對(duì)應(yīng)傳參數(shù)就行了

4.關(guān)于批量

-- 批量插入
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) ;

更新多個(gè)字段的時(shí)候可以將SET與END之間的部分復(fù)制替換成要更新的字段信息

以上就是php程序員對(duì)數(shù)據(jù)庫(kù)操作必須要知道的一些語(yǔ)法的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門(mén)到精通的SQL知識(shí)。