Mysql學習筆記(三)對錶資料的增刪改查。

來源:互聯網
上載者:User

標籤:

寫在前面:(一些牢騷,可以直接跳到分割線後)

太過敏感的人不會快樂,不幸的是我正是這種性格的人。

從培訓機構畢業後,迫於經濟方面的壓力,和當時的班裡的一個同學住在了一起,我們在一個公司上班。誰知道這都是不開心生活的源頭,從每天早晨開始心情就很糟糕。他是個脾氣很慢的人,我是個急脾氣,特別是在早上上班的時候。由此種種吧,實在是不勝枚舉。算了,還是不說了,太痛苦了,我不太喜歡說別人的壞話。我是學心理學的,已經用各種方法去安慰自己,但是都不太奏效。

回想以往和朋友的交往中,我雖然不算十分合群的人,但絕對算不上孤僻。但是現在和他住在一起,我居然出現了某種程度上退行,真是糟糕極了。

房子到明年三月才到期,明年工資也能漲一點吧,到時一個人租一間屋子,快快樂樂的工作學習。

一定要找一個合得來的人合租,否則是噩夢的開端。

一定要找一個合得來的人合租,否則是噩夢的開端。

一定要找一個合得來的人合租,否則是噩夢的開端。

 前面發了不少牢騷,心情糟糕透了。現在開始分享本文內容。

        這一部分是最簡單的,也是最麻煩的。簡單是因為其實只包括增刪該插四個部分。大體上看,增加資料、刪除資料、修改資料、查詢資料都不麻煩啊,我們日常都是常用的。這個誰不會呢?以前在培訓機構學mysql的時候,我就知道,程式員的成長路程上的一個瓶頸就在於資料庫。如何書寫高維護性的sql語句,如何能保持高維護性的同時又保持執行的高效率,這是個難題。我最近在做一個比較棘手的項目,常常left join 5~6張表,掃表10幾萬,查詢速度慢的驚人。10幾萬還僅僅是測試資料,等真正的項目上線,資料量可能會達到百萬層級。因此低效率的mysql 語句,可能程式直接就崩潰了。

       因此關於資料這部分的增刪改插是最難的,也是至關重要的,一定要學好。但我們今天僅僅書寫最簡單的增刪該插,後面的部落格將會持續深入的去整理相關方面的知識。

增加資料:

   insert into 表名 (欄位1, 欄位2, 欄位3, 欄位n) values (值1,值2,值3,值4);

       這個比較簡單。這是一條通用語句。可以值inset一條資料,也是insert多條資料。這個在《Mysql學習筆記(二)對錶結構的增刪改查》的測試sql裡面有。可以參考一下,這裡就不重複貼代碼了。

       注意事項:

                    向char 、varchar 、text 以及日期型的欄位插入時,欄位值要用單引號括起來。

                    向自增型auto_increment欄位插入資料時,建議插入NULL值,此時欄位將向自增型欄位插入下一個編號。其實我平時都直接不寫。

                    向預設值限制欄位插入資料時,欄位值可以使用default關鍵字,表示插入的是該欄位的預設值。

                    插入新紀錄時,需要注意表之間的外鍵約束關係,原則上先給父表插入資料,然後給子表插入資料。

 

刪除資料:

      刪除資料是比較危險的操作,平時在開發測試階段,可能會用到,但是到了真正的項目上線階段,是不會有delete許可權的。

      文法: delete  from 表名 where 條件;

      delete from classes where class_no = 53;   (可以繼續用《Mysql學習筆記(二)對錶結構的增刪改查》中的測試sql);

      強調一句,刪除資料與修改資料,不加條件都是臭流氓。

 

修改資料:

      修改資料也是很危險的操作,在項目上線的時候,只有某些表的某些欄位允許更改。

      文法:update 表名 set 欄位名=欄位值  where 條件。

      update classes set class_name=‘roverliang‘ where class_no=52;

      強調一句,刪除資料與修改資料,不加條件都是臭流氓。

 

查詢資料:

     基本上項目中有90%以上關於資料庫的操作是查詢操作。因此查詢語句寫的好不好,將直接體現出一個程式員的編程能力。

     反對那些人,一看到很長sql語句就搖頭表示否定。他們從一些資料中得知,sql語句寫的長會使執行效率下降、簡直對長長的mysql語句是避而遠之。將本來能一氣呵成的mysql硬生生的分成了幾個零散的片段。

     對於我們搞技術的人來說,憑感覺是不對的。一切要以事實為基礎,sql執行快慢優劣不是憑感覺拍腦袋決定的。真正決定sql執行速度的還是mysql本身,所以遇到疑惑的,就放進mysql裡跑一跑。那個快那個慢,就高下立見了。

     如果兩者執行時間幾乎相當,當然要毫不猶豫的選用一氣呵成的sql。好維護啊!能夠大大的減少代碼量。

     有些朋友可能會反駁說,那麼長一段sql,看著都煩人,怎麼會好維護呢?這其實與個人習慣有關,對於長的sql語句,我個人平時是這麼寫的,不知道對不對,請大家給指點下。

      

#長長的sql; select 欄位1,欄位2,欄位3,欄位nfrom  表一  as  t1,表二  as  t2 ,表三  as  t3                                            left join    表四  as  t4  on t1.欄位1 =  t4.欄位1left join    表五  as  t5  on t1.欄位2 =  t5.欄位2where        t1.欄位1=1 and t2.欄位2=2 and t3.欄位3 > 3 group        by     t1. 欄位1    order        by     t1limit        1,5; 

總之,一切的原則是要邏輯清晰,排版美觀,能對齊的一定要對齊。

將代碼當作白居易的詩歌來寫,力求簡練,但要兼顧可讀性,讓三歲小兒與七十歲老嫗可懂。

將代碼當作平面設計作品來寫, 等號之間、變數之間排版整齊。程式碼片段與程式碼片段之間錯落有致,整齊劃一。

不要吝嗇空格與分行符號。將代碼想象為資料流,讓代碼有流動的空間。

 

       

 

 

       

 

Mysql學習筆記(三)對錶資料的增刪改查。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.