這部分是最簡單的,也是最麻煩的。簡單是因為其實只包含增刪該插四個部分。大體上看,增加資料、刪除資料、修改資料、查詢資料都不麻煩啊,我們日常都是常用的。這個誰不會呢?以前在培訓機構學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關鍵字,表示插入的是該欄位的預設值。
插入新紀錄時,必須注意表之間的外鍵約束關係,原則上先給父表插入數據,然後將子表插入資料。
刪除資料:
刪除資料是比較危險的操作,平時在開發測試階段,可能會用到,但是到了真正的專案上線階段,是不會有deleteete的。
語法: delete from 表名where 條件;
delete from classes where class_no = 53; delete from classes where class_no = 53; delete from classes where class_no = 53; (可以繼續用《增查》學習的表(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. t1.字段1=1 and t2.2=2 and t3. 1. 字段1
order by t1
limit 1,5;
版對齊
複製
的總之道
將程式碼當作白居易的詩歌來寫,力求簡練,但要兼顧可讀性,讓三歲小兒與七十歲老嫗可懂。
將程式碼當作平面設計作品來寫, 等號之間、變數之間排版整齊。程式碼段與程式碼段之間錯落有致,整齊劃一。
不要吝嗇空格與換行符。將程式碼想像為資料流,讓程式碼有流動的空間。
以上就是Mysql學習筆記(三)對錶資料的增刪改查。的內容,更多相關內容請關注PHP中文網(www.php.cn)!