增:
insert into table1(id, name, address) values(1, ygl, 'beijing')——適用於t-sql和pl/sql;
select id, name, address into table2 from table1——自動建立table2,t-sql用法;
insert into table2(id, name, address) select id, name, address from table1
這裡簡單說一下第三句sql插入語句,由於可以指定插入到talbe2中的列,以及可以通過相對較複雜的查詢語句進行資料來源獲取,可能使用起來會更加
的靈活一些,但我們也必須注意,我們在指定目標表的列時,一定要將所有非空列都填上,否則將無法進行資料插入,還有一點比較容易出錯的地方就是
,當我們寫成如下簡寫格式:
insert into table2 select id, name, address from table1
此時,我們如果略掉了目標表的列的話,則缺省會對目標表的全部列進行資料插入,且select後面的列的順序 必須和目標表中的列的定義順序完全一
致才能完成正確的資料插入,這是乙個很容易被忽略的地方,值得注意。刪:
delete from table where 範圍
批量刪除
1.like與 in批量刪除指定記錄
like語法
like主要是用來模糊查詢
sql = "delete from a where field like '%abc%'" 這個可用於字元與數字
in 語法
sql = "delete from a where field id(1,2,3)" 這個只能用在數字
關聯刪除
delete b from b
where exists (select 1 from a where b.accountid=a.accountid);
sql = "delete from a where field like '%abc%'" 這個可用於字元與數字
in 語法
sql = "delete from a where field id(1,2,3)" 這個只能用在數字
關聯刪除
delete b from b
where exists (select 1 from a where b.accountid=a.accountid);
最大刪除範圍
假設有乙個表(syslogs)有1000萬條記錄,需要在業務不停止的情況下刪除其中statusid=1的所有記錄,差不多有600萬條, 直接執行 delete from syslogs where statusid=1
會發現刪除失敗,因為lock wait timeout exceed的錯誤。因為這條語句所涉及的記錄數太多,因此我們通過limit引數分批刪除,比如每10000條進行一次刪除,那麼我們可以利用 mysql這樣的語句來完成
delete from syslogs where status=1 order by statusid limit 10000; 改:
update table_name查:set column1
=value
,column2
=value2
,...
where some_column
=some_value
全部select * from table
部分內容
select values from table
條件查詢
select values from table where values=kkfd
分頁查詢
select * from table limit 21,31
mysql 基本語句總結
1.開啟 關閉資料庫服務 dos下輸入 net start mysql net stop mysql 開啟 關閉服務 2.建立 使用資料庫 create database 資料庫名稱 use 資料庫名稱 3.建立資料庫表 create table 表名 列名 屬性 屬性 列名 屬性 屬性 4.插入i...
MySql相關語句總結
cmd命令列進入資料庫mysql u root p 敲回車 輸入設定的密碼建立資料庫create database mydb mydb是需要建立的資料庫的名字 檢視建立資料庫的語句show create database mydb 改變當前的資料庫use mydb 檢視所有的資料庫show data...
mysql語句總結3
mysql中使用foreach迴圈,可以使用在批量刪除和匯出 exportcheckboksdata parametertype page resulttype pd select m.equ id,m.equ name m.accident,m.end date,m.equ description...