Mysql (高級查詢)

@作者 Stone的博客 www.1314sl.com

    ----- 字段屬性:
    主鍵:primary key 主鍵 唯一約束;不能重復(fù)
        
        在創(chuàng)建表的時候,在后面加 primary key 關(guān)鍵字
        
    -- 追加主鍵
        alter table 表名 modify 字段名 primary key
        alter table 表名 add primary key(字段名);

    --更新&刪除主鍵
        
        alter table 表名 drop primary key;


    --主鍵分類
    id int primary key comment '邏輯主鍵'
    
    
------ 自動增長
    不給值或者給NULL的時候哺窄,會自動被系統(tǒng)+1操作
    
    --自增長通常跟主鍵搭配
    
    auto_increment
    1.任何一個字段要做自增長前提是本身是一個索引(Key 攔有值)
    2.必須是int型
    3.一張表只能有一個自增長
    
    default NUll 不給值 都會觸動自增長
    
    
----列屬性(修改自增長)
    向下修改不生效
    向上修改生效
    
    alter table 表名 auto_increment = 值;
    
    
    查看字增長變量
    show variables like 'auto_increment%';
    -- 修改自增長步長
    set auto_increment_increment=5;--一次自增5

-- 刪除自增長
    字段的一個屬性奥吩,可以通過 modify 進(jìn)行修改(沒有 auto_increment)
    Alter table 表名 modify 字段 類型;
    
    alter table 表 modify id int;
    
    --查看 desc 表名
    

-- 列屬性(唯一鍵) 
    unique key  --唯一鍵 
    數(shù)據(jù)不能重復(fù),可以有多個唯一嘀韧,允許為空胰舆。
    
    本質(zhì)與主鍵差不多塞蹭。
    
    
-- 增加唯一鍵
    1.在創(chuàng)建表的時候棘捣,字段之后跟 unique / unique key;
    
    2.在所有的字段之后。unique key(字段默勾,字段);
        not null unique key --PRI 表中又沒有主鍵
        
    3.在創(chuàng)建表之后增加唯一
        
        alter table 表名 add unique key (字段);
        
    

--- 刪除唯一鍵
    先刪除后新增
    
    alter table 表名 drop unique key -- 錯誤的
    
    alter table 表名 dropindex 索引名字;
    
    

--------索引

    幾乎所有的索引都是建立在字段之上
    
    根據(jù)某種算法碉渡,將已有得數(shù)據(jù)(未來可能新增的數(shù)據(jù))
    
    
    --索引的意義
        1.提示查詢數(shù)據(jù)的效率
        2.約束數(shù)據(jù)的有效性(唯一性等)
        

        Mysql中提供了多種索引
        
        主鍵:primary key
        唯一: unique key
        全文: fulltext index
        普通: index
        
        全文索引,最大的問題是如何確定關(guān)鍵字
            英文很容易:單詞與單詞之間有空格
            中文很難:沒有空格母剥,中文可以各種隨意組合(分詞:sphinx)
            
            
    
    
---------------- 關(guān)系
    一對一
    一對多(多對一)
    多對多
    
    sqlserver 主表 外表
    
    
    ---- 范式:減少數(shù)據(jù)冗余
    
    1NF - 6NF
    
    
------- 1NF
        第一范式:在設(shè)計(jì)表存儲數(shù)據(jù)的時候滞诺,如果表中設(shè)計(jì)的字段存儲的數(shù)據(jù),在取出來使用之前
        還血藥額外的處理环疼,不滿足第一范式习霹。
        
        數(shù)據(jù)不需要再次拆封
    
    -- 2NF
        /*
        不允許出現(xiàn)部分依賴
        在輸出舍得的過程中,如果有復(fù)合主鍵
        且表中又字段并不是由整個主鍵來確定炫隶,
        而是依賴主鍵中的某個字段淋叶,存在字段依賴的部分問題
        稱之為:部分依賴
        */
    
    -- 3NF
    不能出現(xiàn)傳遞依賴
    
    --逆規(guī)范化
    磁盤利用率與效率的對抗
    就是增大空間,提高效率
    

    
    
-------------數(shù)據(jù)高級操作---------------------    
    
    數(shù)據(jù)操作:增刪改查
    
    新增:
    insert into 表名【字段名】 values (值列表);
    
    在數(shù)據(jù)插入的時候伪阶,假設(shè)主鍵對應(yīng)的值已經(jīng)存在煞檩,插入一定會失敗栅贴!
    
    -- 主鍵沖突
        更新操作
        insert into 表名【字段名】values(值列表) on dupllcate key update 字段=值;
        
      替換
        replace into 表名【字段名】values(值列表;
    
    
    
-------蠕蟲復(fù)制
        
        復(fù)制創(chuàng)建表(表結(jié)構(gòu))
        
        create table 新表名 like 舊表名; 
        
        蠕蟲復(fù)制:先查出數(shù)據(jù)斟湃,然后將查出的數(shù)據(jù)新增一遍
        
        insert into 表名【字段列表】 select 字段列表 * from 數(shù)據(jù)表名(舊表)
        
        -- 蠕蟲復(fù)制 成倍增長
        insert into 自己 select * from 自己;
        
        
        意義:
            1.從已有表拷貝數(shù)據(jù)到新表中
            2.可以迅速的讓表中的數(shù)據(jù)膨脹到一定的數(shù)量級。測試表的壓力已經(jīng)效率
        
---- 高級 更新數(shù)據(jù)

        基本語法
        update 表名 set 字段=值 |where 條件|
        
        高級更新
        update 表名 set 字段 =值 |where 條件| limit 更新數(shù)量|
        
            -- 把表中的 a 變成 c
            update 表 set 字段='c' where 字段='a' limit 3;
            
            !!!GBK 不區(qū)分大小寫筹误。
    
---- 高級 刪除數(shù)據(jù) 可以 通過 limit 來限制數(shù)量

    delete from 表名【where 條件】【limit 數(shù)量】;
     
    刪除數(shù)據(jù)以后桐早,自增長
    
    思路:數(shù)據(jù)的刪除是不會該表表結(jié)構(gòu),只能刪除表后重建厨剪。
    
    TRUNCATE 表名  -刪除后,重置自增長
    
    
------- 高級 數(shù)據(jù)查詢(select 選項(xiàng))

    基本語法:
    select 字段列表 * from 表名 where 條件|
    
    完整語法:
    select 字段列表 * from 數(shù)據(jù)源 where 條件 group by 
    having  order  by limit;
    
        All:默認(rèn)的友存,保留所有的結(jié)果
        Distinct : 去重祷膳,將重復(fù)的去掉
    
    
    -- 字段別名
        
        字段名 [as] 別名;
        
        不寫 as 也行
        
    --- 數(shù)據(jù)源
    /*  從一張表中取出一條記錄,去另外一張表中匹配所有的記錄
        而且保留  記錄數(shù)和字段數(shù)
        這種結(jié)果為:笛卡爾積(交叉連接)
        沒什么用屡立,盡量不用

    */  
    
    子查詢:
    
    select * from (select * from 表名);
    
    
    
    
-- 高級 where 子句

        where 子句的目標(biāo)用來判斷數(shù)據(jù)直晨,篩選數(shù)據(jù)
        
        where 返回結(jié)果 0 或者 1   0 帶表false 1帶表true ;
        
    
    運(yùn)算符:
            >   大于
            <   小于
            >=  大于等于
            <=  小于等于
            !=  <>  不等于
            =   等于
            模糊查詢里用到的:
            like
            between  and
            in / not in
            
    邏輯運(yùn)算符:
            &&(and)  并
            ||(or)  或者
            !(not)  非
    
    rand 取得一個0和1之間的隨機(jī)數(shù)
    floor 向下取整!
    1.
        select * from 表 where id=1 || id=3 || id=5;
                        ||
                        ||
        select * from 表 where id in(1,3,5);
        
    2.
        select * from 表 where height>=170 and heihgt<=180;
                        ||
                        ||
        select * from 表 where height between 170 and 180;               
    

--------------- Group by  分組----------------
    聚合函數(shù):
    COUNT() :統(tǒng)計(jì)分組后的記錄數(shù),每一組有多少條記錄
    Max()   :統(tǒng)計(jì)每組中最大的值
    Min()   :統(tǒng)計(jì)最小值
    AVG()   :統(tǒng)計(jì)平均值
    SUM()   : 統(tǒng)計(jì)和
    
    
select  聚合函數(shù),字段名 from 表名 group by 字段名

多字段排序:
    --order by  放在語句最后
select * from 表名 border by 字段名(desc/asc),

    group_concat(字段)
    
    回溯統(tǒng)計(jì):with rollup
    
    
--  Having 子句
    
    Having 字句 進(jìn)行條件判斷
     
    having 能做 where 能做的幾乎所有事情 但是where卻不能
    
    select 字段名 from 表名 group by 字段  having 條件
    
--- order by    
    
    select * from 表名 order by 字段 desc/asc;
    
    
--  limit 子句
    limit 有兩種使用方式勇皇。
        只用來限制長度
    
    
    ------
    length:每頁顯示的數(shù)量
    Offset:offset-(頁碼-1)*每頁顯示數(shù)量


@作者 Stone的博客 www.1314sl.com

oneNate筆記
oneNate筆記

@作者 Stone的博客 www.1314sl.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末罩句,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子敛摘,更是在濱河造成了極大的恐慌门烂,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兄淫,死亡現(xiàn)場離奇詭異屯远,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)捕虽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門慨丐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泄私,你說我怎么就攤上這事房揭。” “怎么了晌端?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵崩溪,是天一觀的道長。 經(jīng)常有香客問我斩松,道長伶唯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任惧盹,我火速辦了婚禮乳幸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钧椰。我一直安慰自己粹断,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布嫡霞。 她就那樣靜靜地躺著瓶埋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诊沪。 梳的紋絲不亂的頭發(fā)上养筒,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機(jī)與錄音端姚,去河邊找鬼晕粪。 笑死,一個胖子當(dāng)著我的面吹牛渐裸,可吹牛的內(nèi)容都是我干的巫湘。 我是一名探鬼主播装悲,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼尚氛!你這毒婦竟也來了诀诊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤阅嘶,失蹤者是張志新(化名)和其女友劉穎属瓣,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奈懒,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奠涌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了磷杏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溜畅。...
    茶點(diǎn)故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖极祸,靈堂內(nèi)的尸體忽然破棺而出慈格,到底是詐尸還是另有隱情,我是刑警寧澤遥金,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布浴捆,位于F島的核電站,受9級特大地震影響稿械,放射性物質(zhì)發(fā)生泄漏选泻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一美莫、第九天 我趴在偏房一處隱蔽的房頂上張望页眯。 院中可真熱鬧,春花似錦厢呵、人聲如沸窝撵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碌奉。三九已至,卻和暖如春寒砖,著一層夾襖步出監(jiān)牢的瞬間赐劣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工入撒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留隆豹,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓茅逮,卻偏偏與公主長得像璃赡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子献雅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前言 我們使用SQL查詢不能只使用很簡單碉考、最基礎(chǔ)的SELECT語句查詢。如果想從多個表查詢比較復(fù)雜的信息挺身,就會使用...
    暖熊熊閱讀 615評論 0 0
  • 我們使用SQL查詢不能只使用很簡單侯谁、最基礎(chǔ)的SELECT語句查詢。如果想從多個表查詢比較復(fù)雜的信息章钾,就會使用高級查...
    PythonMaO閱讀 2,368評論 0 10
  • 望里風(fēng)高起陣云墙贱,登樓一為散幽襟。 背天鷗去渾渾舊贱傀,接地春來浩浩新惨撇。 歌哭千家聽曠野,飛潛無數(shù)動天心府寒。 奔來萬事交生...
    李野航閱讀 236評論 0 1
  • 不要拿他人的錯誤來懲罰自己株搔!不值得剖淀!也沒必要!
    葉子隨筆閱讀 195評論 0 0
  • 秋風(fēng)又起 曉月殘輝 驀回首 已成空 心悲涼 愁斷腸 半絲秋意 一世情長 沉默 寂然 簫涼 悲楚 凄凄慘慘戚戚
    再回首已成空閱讀 208評論 0 0