本文目錄一覽:
MYSQL中執行插入操作的關鍵字是
一、關鍵字執行順序
1、查詢中用到的關鍵詞主要包含六個,並且他們的順序依次為 :
select–from–where–group by–having–order by 其中select和from是必須的,其他關鍵詞是可選的。
這六個關鍵詞的執行順序,與sql語句的書寫順序並不是一樣的,而是按照下面的順序來執行
from–where–group by–having–select–order by。
注意:雖然select在having後執行,但是mysql中仍然可以在having中使用select語句定義的別名。
原因分析:mysql在查詢的時候會產生一個臨時表,所有的欄位名稱(別名)在臨時表中已經產生,產生了臨時表之後才會進行having操作。也就是說mysql內部有一定的解析順序,解析順序select優先於having。在這裡我個人認為是mysql可能沒有將這一點做規範。Oracle中having無法使用select語句內的別名。
2、insert into 和replace into和merge into
insert into是mysql的基本插入語句。replace into 是mysql中的代替插入語句,可以理解為insert into的升級版。replace into在執行的時候,首先會根據指定的主鍵或者唯一索引判斷當前表中是否存在指定的主鍵或索引,如果主鍵或唯一索引已經存在,則先將對應的索引的數據刪除,然後在索引位置插入replace into中包含的數據。如果主鍵和唯一索引沒有存在,則直接在索引位置插入replace into中包含的數據。merge into 是oracle資料庫中的代替插入語句。實現方式和replace into類似。執行效率:如果指定索引位置沒有數據,insert into和replace into執行效率相差無幾,二者效率相同。如果指定位置索引已經存在,insert into語句不能正常執行,replace into語句可以正常執行。注意:雖然replace into比較好使用,但是也存在一定風險:replace每次要重新分配自增id;replace中執行delete時, 在有外鍵的情況下會很麻煩;如果delete時定義的有觸發器, 則會被執行;副作用也會被傳播到replica slave.推薦使用INSERT INTO … ON DUPLICATE KEY UPDATEON DUPLICATE KEY UPDATE是mysql特有的一個sql關鍵字,只能在mysql中使用。
在MySQL資料庫中,如果在insert語句後面帶上ON DUPLICATE KEY UPDATE 子句,而要插入的行與表中現有記錄的惟一索引或主鍵中產生重複值,那麼就會發生舊行的更新;如果插入的行數據與現有表中記錄的唯一索引或者主鍵不重複,則執行新紀錄插入操作。
比如有這樣一張表:
create table func(id int primary key,count int,birthday date);
insert into func values(1,1,’1990-09-09′);–插入一條數據
insert into func values(1,1,’1990-09-09′) on duplicate key update count = count+1;–表中有數據,刪除原表數據,將新數據插入。
提示兩行受到影響,說明先執行的刪除操作,然後插入新的數據。
觀察到沒有任何新數據插入,count欄位被更新。(count欄位更新是因為剛剛的插入語句中書寫了update count = count+1;)
如果不希望任何欄位更新,可以寫成如下格式:
insert into func values(1,1,’1990-09-09′) on duplicate key update count = values(count);–再次執行,沒有新數據插入到資料庫中。
二、mysql內置函數
內置函數眾多,不需要每一個都掌握,熟練掌握幾個在以後使用即可。可以查看mysql官方文檔學習內置函數。
三、其它注意事項
1、在已經存在的表中添加外鍵。(僅作為了解內容)
alter table tb_name add constraint fk_name foreign key (tb_name.id) references tb_stu(id);
例如:alter table emp add constraint forkey foreign key(dept_id) references dept(id);
該語句是在 tb_name表上添加一個外鍵約束,引用 tb_stu的主鍵,fk_name是約束的名字。
刪除約束:alter table tb_name drop constraint fk_name ;
2、外鍵的使用情景:
在不要求吞吐速度而對數據的正確性和安全性要求較高時,推薦使用外鍵。
如果面對高吞吐量,要求優先保證讀取效率時,則不推薦使用外鍵。
3、刪除的時候使用別名:
原句:delete from employee where id = 1;
別名:delete e from employee as e where id =1;
mysql 中怎麼查找一個關鍵字
需要用到的工具:Mysql資料庫,Navicate for mysql,步驟如下:
1、首先打開Navicate,連接Mysql資料庫,點擊圖中框中的Mysql資料庫右鍵即可。
2、Mysql資料庫右鍵之後,然後在出現的菜單欄選擇在資料庫中查找選項進入。
3、點擊在資料庫中查找之後,進入新的界面,輸入要查找的關鍵字或詞語。
4、輸入完成之後,然後點擊右側的查找按鈕即可完成。
5、然後就可以看到查找結果了,這樣就解決了問題。
mysql資料庫如何搜索關鍵詞
辦法如下:
select
*
from
table1
where
concat(`欄位`,`欄位`,`欄位`
)
like
‘%關鍵字%’
union
select
*
from
table2
where
concat(`欄位`,`欄位`,`欄位`
)
like
‘%關鍵字%’
union
select
*
from
table3
where
concat(`欄位`,`欄位`,`欄位`
)
like
‘%關鍵字%’
union
select
*
from
table4
where
concat(`欄位`,`欄位`,`欄位`
)
like
‘%關鍵字%’
union
select
*
from
table5
where
concat(`欄位`,`欄位`,`欄位`
)
like
‘%關鍵字%’
前提是查詢出來的欄位個數要一樣,類型要對應好,至於如何得到正確且符合你需要的sql就要在程序類中處理了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/192076.html