JAVA學習筆記(Mysql)

Mysql中drop、truncat、delete的用法區別:

? ? 1.truncat和delete只刪除數據不刪除表的結構(定義);drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index); 依賴于該表的存儲過程/函數將保留,但是變為invalid狀態.

2.delete語句是dml,這個操作會放到rollback segement中,事務提交之后才生效;如果有相應的trigger,執行的時候將被觸發.runcate,drop是ddl, 操作立即生效,原數據不放到rollback segment中,不能回滾. 操作不觸發trigger

3.delete語句不影響表所占用的extent, 高水線(high watermark)保持原位置不動 顯然drop語句將表所占用的空間全部釋放truncate語句缺省情況下見空間釋放到 minextents個 extent,除非使用reuse storage; truncate 會將高水線復位(回到最開始).

4.速度,一般來說: drop> truncate > delete

5.安全性:小心使用drop 和truncate,尤其沒有備份的時候.否則哭都來不及. 使用上,想刪除部分數據行用delete,注意帶上where子句. 回滾段要足夠大. 想刪除表,當然用drop 想保留表而將所有數據刪除. 如果和事務無關,用truncate即可. 如果和事務有關,或者想觸發trigger,還 是用delete.如果是整理表內部的碎片,可以用truncate跟上reuse stroage,再重新導入/插入數據

總結:

DROP用于刪除表,數據庫等.

TRUNCATE和DELETE都是刪除表數據.

但是TRUNCATE相當于初始化,比如如果有自增長ID,用TRUNCATE刪除后,自增長Id會從1開始,(truncat會釋放表所占的空間)而delete則不會.

相同點:

1.truncate和不帶where子句的delete、以及drop都會刪除表內的數據。

2.drop、truncate都是DDL語句(數據定義語言),執行后會自動提交。

不同點:

1. truncate 和 delete 只刪除數據不刪除表的結構(定義)

drop 語句將刪除表的結構被依賴的約束(constrain)、觸發器(trigger)、索引(index);依賴于該表的存儲過程/函數將保留,但是變為 invalid 狀態。

2. delete 語句是數據庫操作語言(dml),這個操作會放到 rollback segement 中,事務提交之后才生效;如果有相應的 trigger,執行的時候將被觸發。truncate、drop 是數據庫定義語言(ddl),操作立即生效,原數據不放到 rollback segment 中,不能回滾,操作不觸發 trigger。

3.delete 語句不影響表所占用的 extent,高水線(high watermark)保持原位置不動;drop 語句將表所占用的空間全部釋放。truncate 語句缺省情況下見空間釋放到 minextents個 extent,除非使用reuse storage;truncate 會將高水線復位(回到最開始)。

4.速度,一般來說: drop> truncate > delete

5.安全性:小心使用 drop 和 truncate,尤其沒有備份的時候.否則哭都來不及;使用上,想刪除部分數據行用 delete,注意帶上where子句. 回滾段要足夠大.;想刪除表,當然用 drop;想保留表而將所有數據刪除,如果和事務無關,用truncate即可。如果和事務有關,或者想觸發trigger,還是用delete。如果是整理表內部的碎片,可以用truncate跟上reuse stroage,再重新導入/插入數據。

6.delete是DML語句,不會自動提交。drop/truncate都是DDL語句,執行后會自動提交。

7.TRUNCATE?? TABLE?? 在功能上與不帶?? WHERE?? 子句的?? DELETE?? 語句相同:二者均刪除表中的全部行。但?? TRUNCATE?? TABLE?? 比?? DELETE?? 速度快,且使用的系統和事務日志資源少。DELETE?? 語句每次刪除一行,并在事務日志中為所刪除的每行記錄一項。TRUNCATE?? TABLE?? 通過釋放存儲表數據所用的數據頁來刪除數據,并且只在事務日志中記錄頁的釋放。

8.TRUNCATE?? TABLE?? 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重置為該列的種子。如果想保留標識計數值,請改用?? DELETE。如果要刪除表定義及其數據,請使用?? DROP?? TABLE?? 語句。

9、對于由?? FOREIGN?? KEY?? 約束引用的表,不能使用?? TRUNCATE?? TABLE,而應使用不帶?? WHERE?? 子句的?? DELETE?? 語句。由于?? TRUNCATE?? TABLE?? 不記錄在日志中,所以它不能激活觸發器。

10、TRUNCATE?? TABLE?? 不能用于參與了索引視圖的表。







? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?基礎語句學習


一、數據庫操作

? ? ?1、查看數據庫

? ? ? ? ? ?show ? databases;

? ? ? 2、創建數據庫:

? ? ? ? ? create database db_name; ? ?//db_name為數據庫的名字

? ? ? ?3、使用數據庫:

? ? ? ? ? ?use ? db_name;

? ? ? ? 4、刪除數據庫:

? ? ? ? ? ?drop databses db_name;

二、創建表:

1、創建表:

? ? ?create table table_name(

? ? ? ? ? ? ? ?id tinyint unsigned not null auto_increament; //id值,無符號、非空、遞增,可以做主鍵

? ? ? ? ? ? ? ?name varchar(20) not null;

? ? ? ? ? ? ? ? score tinyint unsigned not null default 10; ?//設置默認值為10

? ? ? ? ? ? ? ? primary key(id);

? ? ? ? ? ? ? ? ENGINE = InnoDB //設置表的存儲引擎,一般常用InnoDB和MyIsAM;InnoDB可靠,支持事務;MyISAM高效不支持全文檢索

? ? ? ? ? ? ? ? default charset=utf8;? //默認的編碼,防止數據庫中文亂碼

)

2、復制表:

? ? ?create table table2 ?select * from table_name1;

3、創建臨時表:

? ? ? ?create temporary tabel table_name;

4、查看數據庫中可用的表:

? ? ?show tables;

5、查看表的結構:

? ? ? desc table_name;

? ? ?show columns from table_name;

6、刪除表:

? ? ?drop table if exists table_name;

7、表重命名:

? ? ? ?rename table name_old to name_new;

? ? ? ?alter table name_old rename name_new;

三、修改表:

? ? ? ? ?ALTER TABLE tb_name ADD[CHANGE,RENAME,DROP] ...要更改的內容...

? ? ? ? alter table table_name add column ?address varchar(10) not null ;

? ? ? ?alter table table_name drop address;

四、插入數據:

1、插入數據:

? ? ? insert ? into table_name (colums) ? values ?(values);

2、插入檢索出來的數據:

? ? insert ?into table_name1 ?(name,score) ?select name,score ?from table_name2;

五、更新數據:

? ? ?update table_name set name="www" wherd id=1;

六、刪除數據:

? ? ? delete from table_name where id ?= ?2;

七、條件控制:

1、WHERE 語句:

? ? ? SELECT * FROM tb_name WHERE id=3;

2、HAVING 語句:

? ? ? ?SELECT * FROM tb_name GROUP BY score HAVING count(*)>2;

3、相關條件控制符:

? ? ? ? =、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOT

? ? ? ? AND 、OR

? ? ? ? Linke()用法中 ? ? ?% ?為匹配任意、 ?_ ?匹配一個字符(可以是漢字)

? ? ? ? ?IS NULL 空值檢測

八、MySQL的正則表達式:

? ? ? ? 1、Mysql支持REGEXP的正則表達式:

? ? ? ? ? ? ?select * ?from table_name where name regexp '^[A-D]'; // 找出以A-D為開頭的name

? ? ? ? ? 2、特殊字符需要轉義



1.取url字段后三位字符:

select substring(url,-3) from link;

select right(url,length(url)-5) from link

2.從左開始第3位?。òǖ谌唬?

select substring(url,3)from link

3.取左邊的3位

select substring(url,1,3) from link

4.中間截?。◤牡?位開始取7位,如sDate字段值是 2013-06-07)

select SUBSTRING(sDate, 1,7) from forumdata;

5.正常的模糊查詢

select * from student where name like '%hello%';

6.一個字段共有13位,查詢倒數四五位為31的

select * from student ?where SUBSTRING(ordersn, 9,2) = 31;

7.找出比deptno=30的員工最低工資高的其他部門的員工

select * from emp where sal>ANY(select sal from emp where deptno=30)nd deptno<>30;

8.找出比deptno=30的員工最高工資高的其他部門的員工

select * from emp where sal>ALL(select sal from emp where deptno=30) and deptno<>30;

9.查詢前10行記錄

select * from student where rownum<=10;

10.查第幾行的數據

select * from emp where ?rownum<=3 ?and ?empno not in (select empno from emp where

rownum<=3)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,882評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,208評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,746評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,666評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,477評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,960評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,047評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,200評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,726評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,617評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,807評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,327評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,049評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,425評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,674評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,432評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,769評論 2 372

推薦閱讀更多精彩內容

  • 外鍵約束 刪除,更新時的四個選項 RESTRICT 當有關聯數據時,無法刪除(立即檢出) NO ACTION 當有...
    漁樵店閱讀 270評論 0 0
  • 索引的實現方式 1、B+樹我們經常聽到B+樹就是這個概念,用這個樹的目的和紅黑樹差不多,也是為了盡量保持樹的平衡,...
    大黃大黃大黃閱讀 2,388評論 1 14
  • .數據庫 數據庫的發展: 文件系統(使用磁盤文件來存儲數據)=>第一代數據庫(出現了網狀模型,層次模型的數據庫)=...
    小Q逛逛閱讀 990評論 0 2
  • 端午小長假瑜伽特訓速成班 正逢端午小長假,歡迎各位來北京度過一場瑜伽盛宴 5月27日 早6:45夏都公園北門集合 ...
    何以取暖閱讀 296評論 0 0
  • 母親的發質是“自來卷”。記憶中,母親從沒流過披肩長發,沒燙過發,自始至終沒有跟隨時尚的發型。她的發型都體現在樸素與...
    FASHION_e018閱讀 154評論 0 0