30分鐘回顧MySQL文法(下)

來源:互聯網
上載者:User

標籤:結構   update   ...   date   基礎上   info   基礎   記錄   table   

十一.增加資料

現有一張student表,表設計如下:

 

sno為主鍵並自增,saddress 表示地址,設定了預設值:‘廣東省廣州市‘ 

1.完整的增加一條  insert into tables values(val1,val2,...,valn)

insert into student values(NULL,‘李冰‘,‘男‘,‘[email protected]‘)

注意:

  a.必需要保證values() 中的值 與 表中列的按順序順序一一對應 ,個數一致

  b.sno主鍵設定自增後,可以交由mysql 自動處理, 可以傳入NULL值,此時該記錄的 sno 會由自動產生

缺點:當表結構發生變化時,此時insert 會報錯 

  

2.按照指定列增加 insert into table_name(column1,column2,...,columnn)  values(val1,val2,...,valn)

insert into student(sname,ssex) values(‘王明‘,‘男‘)

注意:

  a.同樣需要保證values中的值的個數 與前面指定的 列的個數順序 對應

優點:

  a.列的順序可以自己指定, 同樣value值也要與列名對應 ,以後表中新增列時,insert 語句 不會受影響 

  b.相比插入完整的一行 , 插入指定列,一些不必要的值,可以不用傳, 只需要傳一些必傳的值,sql語句變的更簡潔了

 

3.增加多行記錄 Insert into table_name valuesvalues(val1,val2,...,valn),values(val1,val2,...,valn),values(val1,val2,...,valn)

insert into student values(NULL,‘李玲‘,‘女‘,‘liling163.com‘),(NULL,‘大才‘,‘男‘,NULL),(NULL,‘逍遙‘,‘男‘,‘[email protected]‘)

 

在 1 ,2 的基礎上 只需要在values 後 跟上多組資料即可,插入多行

優點: 插入多行有兩種形式, 單行插入執行多次 ,  多行插入執行1次 , 相比前者而言 ,多行插入執行1次, 效能耗時會大大減少

 

4.插入 select語句查詢出的資料

insert into student(sname,ssex,semail,saddress)

select sname,ssex,semail,saddress from student

這種方式 不會要求select查出的列名與 需要插入資料的表的列名 一致, 只需保證順序一致, 資料相容即可

 

insert 提高資料庫效能:

1.生產中, 可能會出現並發訪問資料庫,進行增刪改查的情況, 一般情況查的優先順序更高一些. 同時insert 時,需要建立索引 耗時較久,同時還可能造成後續select語句效能的降低

   此時可以通過降低 insert 語句的優先順序, 來提高效能 ;文法格式: insert low_priority into ... . 同樣也適用於delete update語句

2.多行插入執行1次  效能要高於  一行插入執行多次

安全: 可以禁用使用者的insert許可權,限制部分使用者的不可以進行insert 保證資料的安全

 

 十二.更新,刪除 資料

update 語句一定要搭配where子句使用,否則更新就是更新整張表中的所有資料,這種誤操作,會造成難以想象的結果....

更新單列 update tablename set column = newValue where condition

update student  set semail = ‘[email protected]‘  where sname = ‘王明‘

 

更新多列update tablename set column1 = newValue1 ,column2 = newValue2,...column_n = newValuen where condition

update student  set semail = ‘[email protected]‘,saddress = ‘廣東省東莞市‘  where sname = ‘王明‘

 

30分鐘回顧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.