Mysql入門-對錶資料的增刪改查

來源:互聯網
上載者:User

標籤:兄弟連

 

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

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

  增加資料:

  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,欄位n

  from 表一 as t1,表二 as t2 ,表三 as t3

  left join 表四 as t4 on t1.欄位1 = t4.欄位1

  left join 表五 as t5 on t1.欄位2 = t5.欄位2

  where t1.欄位1=1 and t2.欄位2=2 and t3.欄位3 > 3

  group by t1. 欄位1

  order by t1

  limit 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.