<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      mysql的那點事兒,你知道嗎

      1、count(*) 和 count(1)和count(列名)區別  

      執行效果上:  
      count(*)包括了所有的列,相當于行數,在統計結果的時候,不會忽略列值為NULL  
      count(1)包括了忽略所有列,用1代表代碼行,在統計結果的時候,不會忽略列值為NULL  
      count(列名)只包括列名那一列,在統計結果的時候,會忽略列值為空(這里的空不是只空字符串或者0,而是表示null)的計數,即某個字段值為NULL時,不統計。

      執行效率上:  
      列名為主鍵,count(列名)會比count(1)快  
      列名不為主鍵,count(1)會比count(列名)快  
      如果表多個列并且沒有主鍵,則 count(1) 的執行效率優于 count(*)  
      如果有主鍵,則 select count(主鍵)的執行效率是最優的  
      如果表只有一個字段,則 select count(*)最優。

      2、校對規則

      MySQL在Linux下數據庫名、表名、列名、別名大小寫規則是這樣的:

      1、數據庫名與表名是嚴格區分大小寫的;

      2、表的別名是嚴格區分大小寫的;

      3、列名與列的別名在所有的情況下均是忽略大小寫的;

      4、字段內容默認情況下是大小寫不敏感的。

      因為默認情況下字段內容是不區分大小寫的,也即大小寫不敏感。所以解決方案就是要新增字段內容的校驗規則。

      使用mysql 的BINARY 關鍵字使搜索區分大小寫。

      在查詢的sql中加入BINARY 關鍵字,select * from tb_user where BINARY username ='user';

      這種方式相對較簡單,不用改動表結構,只需在需要區分查詢的字段前加上關鍵字。這種方式也是有缺點的,每次寫查詢的時候都要注意加關鍵字,并可能需要改動的代碼較多。

       

      在創建表的時候進行限制

      CREATE TABLE `tb_user1` (
          `id` BIGINT (20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用戶id',
          `username` VARCHAR (50) BINARY NOT NULL COMMENT '用戶名',
          PRIMARY KEY (`id`)
      ) ENGINE = INNODB DEFAULT CHARSET = utf8 COMMENT = '用戶表';
      
      
      mysql> show create table tb_user1;
      tb_user1 | CREATE TABLE `tb_user1` (
        `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '用戶id',
        `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '用戶名',
        PRIMARY KEY (`id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用戶表'
      1 row in set
      

      或者 使用

      CREATE TABLE `tb_user2` (
          `id` BIGINT (20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用戶id',
          `username` VARCHAR (50) NOT NULL COMMENT '用戶名',
          `info` VARCHAR (100) NOT NULL COMMENT '詳情描述',
          PRIMARY KEY (`id`)
      ) ENGINE = INNODB DEFAULT CHARSET = utf8 COLLATE=utf8_bin COMMENT = '用戶表';
      
      mysql> show create table tb_user2;
      tb_user2 | CREATE TABLE `tb_user2` (
        `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '用戶id',
        `username` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '用戶名',
        `info` varchar(100) COLLATE utf8_bin NOT NULL COMMENT '詳情描述',
        PRIMARY KEY (`id`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='用戶表'
      

      使用 NGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin會將字段中varchar類型的全部設置區分大小寫。這兩種查看表的詳情,本質上都是 在字段上 加上了 COLLATE utf8_bin

      總結:

      字段值的大小寫由mysql的校對規則來控制。提到校對規則,就不得不說字符集。字符集是一套符號和編碼,校對規則是在字符集內用于比較字符的一套規則。 一般而言,校對規則以其相關的字符集名開始,通常包括一個語言名,并且以ci(大小寫不敏感)、cs(大小寫敏感)或_bin(二元)結束 。

      比如 utf8字符集,,如下表:

      1)utf8bin:utf8bin將字符串中的每一個字符用二進制數據存儲,區分大小寫。

      2)utf8generalci:utf8generaci不區分大小寫,ci為case insensitive的縮寫,即大小寫不敏感。

      3)utf8generalcs:utf8generalcs區分大小寫,cs為case sensitive的縮寫,即大小寫敏感。

       

      3、ON DUPLICATE KEY UPDATE

      mysql提供了這樣的語法,即當我們往表里插數據里,如果數據已經存在(通過主鍵或唯一索引確定),我們可以對已存在的記錄做更新操作。如:

      INSERT USER(id,username) VALUES(1,'張三豐') ON DUPLICATE KEY UPDATE username='王老五'
      面的sql意思是,如果id為1的記錄不存在,則insert一條id=1、username=張三豐的記錄;否,將id為1記錄的username改為王老五。這只是插入單行數據,mysql甚至支持批量操作,如:INSERT INTO table (id,a,b,c) select id,a,b,c from xxx ON DUPLICATE KEY UPDATE a=VALUES(a),b=VALUES(b),c=VALUES(c)

      即通過insert into ...from 來批量插入,然后通過values(xxx)來取得結果集中對應的字段值。

      posted @ 2020-07-03 11:38  pretty.sunshine  Views(236)  Comments(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲无av在线中文字幕| 亚洲欧洲无码av电影在线观看| 亚洲AV无码破坏版在线观看| 六十路熟妇乱子伦| 国产人妻高清国产拍精品| 国产无遮挡又黄又爽免费网站| 亚洲精品一区二区三区小| 99久久亚洲综合精品成人网| 国产成人不卡一区二区| 狠狠亚洲色一日本高清色| 国产成人8X人网站视频| 欧美黑人巨大videos精品| www免费视频com| 国产成人精品区一区二区| 亚洲AV日韩AV激情亚洲| 亚洲精品色国语对白在线| 锡林浩特市| 国产视频精品一区 日本| 92精品国产自产在线观看481页| 国产亚洲AV电影院之毛片| 精品日本免费一区二区三区| 国产女人被狂躁到高潮小说| 亚洲成A人片在线观看无码不卡| 噜妇插内射精品| 久久精品国产99麻豆蜜月| 2021国产成人精品久久| 狠狠综合久久综合88亚洲| 日本熟妇浓毛| 91产精品无码无套在线| 国产麻豆精品一区一区三区| 国产suv精品一区二区| 国产日本一区二区三区久久| 亚洲精品日韩中文字幕| 成人午夜在线观看刺激| 欧美丰满熟妇性xxxx| 久久99精品久久久久麻豆 | 亚洲视频欧美不卡| 国产在线拍揄自揄拍无码| 成人国产精品中文字幕| 亚洲精品国产精品乱码不| 成年女人免费v片|