mysql基礎(chǔ)知識整理(三)

4.更新數(shù)據(jù)表

更新數(shù)據(jù)表

語法:

UPDATE? 表名

SET 字段名=表達(dá)式 [, 字段名=表達(dá)式 ...]

[WHERE 更新條件]

[ORDER BY? 更新順序]

[LIMIT 限制更新記錄數(shù)量]

實例1:開發(fā)部加薪啦!將開發(fā)部全體員工加薪500元

為了看到更新效果,我使用了分組與排序!在以后的操作中,我們會更多的用到之前學(xué)到過的知識,如果仍感到吃力,建議把前面章節(jié)的知識,再仔細(xì)看一遍!

先看一下更新之前的開發(fā)部員工工資情況吧

查詢語句如下:

SELECT * FROM `tp5_staff` ORDER BY dept DESC;

現(xiàn)在開始更新操作,開發(fā)部的同志們,加薪啦~~~

更新語句如下:

UPDATE `tp5_staff` SET salary = salary + 500

WHERE dept = '開發(fā)部';

#查看加薪后的工資

SELECT * FROM `tp5_staff` ORDER BY dept DESC;

實例2: 將編號為1001的員工,姓名md5加密,入職日期設(shè)置為當(dāng)前日期

本例中,姓名加密沒有任何實際意義,僅用于演示函數(shù)使用效果

語句如下:

#將id=1001的記錄的姓名md5加密,入職日期設(shè)置為當(dāng)前日期

UPDATE `tp5_staff` SET name = MD5('name'), hiredate = CURRENT_DATE

WHERE id = 1001;

#查看更新結(jié)果

SELECT * FROM `tp5_staff` ;

分析:

SET關(guān)鍵字后面,用于表中字段的值,可以用常量、可以用表達(dá)式,也可用函數(shù)。本例中,使用了常量 :CURRENT_DATE表示當(dāng)前時間,MD5()函數(shù)對字符串name進行了加密!

實例3:將id=1001的員工姓名,工資,入職日期全部設(shè)置為NULL

分析

>[success] * 將字段值設(shè)置為NULL,根據(jù)字段類型不同,有不同的顯示方式

>* 數(shù)據(jù)型字段顯示為:0;

> * 字符串字段顯示為:空;

> * 日期時間型字段顯示為:NULL。

語句如下:

#將id=1001的記錄的姓名、工資、入職日期全部設(shè)置為NULL

UPDATE `user` SET name = NULL, salary = NULL, hiredate = NULL

WHERE id = 1001;

#查看更新結(jié)果

SELECT * FROM `tp5_staff` ;


5.編輯數(shù)據(jù)表結(jié)構(gòu)(重點)

編輯數(shù)據(jù)表結(jié)構(gòu)

基本語法:

ALTER TABLE 表名 [ADD ...]? [DROP ... ]? [CHANGE ...] [ RENAME ...]

####語句看上去并不復(fù)雜,下面我用一個個實例演示用法

FIRST :添加到表中第一個字段之前!

默認(rèn)情況下,新添加的字段做為表的最后一個字段。


實例:user表sex字段后添加新字段:age(年齡),要求整型、無符號、不為空、默認(rèn)值為22;

語句如下:

#添加新字段:age(年齡),要求整型、無符號、不為空、默認(rèn)值為22,加到sex字段后面

ALTER TABLE `tp5_staff` ADD age TINYINT(3) UNSIGNED NOT NULL DEFAULT '22'? AFTER sex;

#查看增加age字段后的表結(jié)構(gòu)

DESC `tp5_staff`;

2、修改字段名稱

語法:

ALTER TABLE 表名 CHANGE? 原字段名? 新字段名? 原字段類型? 原約束條件 ;

1、哪怕僅僅是修改字段名稱,新字段的類型也必須給出;

2、如果僅僅修改字段名稱,那么最好在修改之前,查詢一下原表要修改的字段類型和約束條件(DESC 表名),防止原來存儲的數(shù)據(jù)因類型不對而出錯;

實例:將user表sex字段修改為xb,其它內(nèi)容不變;

語句如下:

#添加新字段:age(年齡),要求整型、無符號、不為空、默認(rèn)值為22,加到sex字段后面

ALTER TABLE `user` CHANGE? sex? xb TINYINT(2) UNSIGNED NOT NULL DEFAULT? 1;

#查看增加age字段后的表結(jié)構(gòu)

DESC `user`;

3、修改字段名稱和類型

其實與上面的語法基本是一樣的。

1、如果僅修改類型,只要將新字段名,設(shè)置與原字段同名即可。

2、新字段后面要寫新的類型和約束條件等,不要復(fù)制原來字段的內(nèi)容。

語法:
ALTER TABLE 表名 CHANGE? 原字段名? 新字段名? 新字段類型? 新約束條件 ;

實例:user表中,salary字段變更為gz,類型修改成INT(8),無符號、不為空;

語句:

#將salary字段變更為gz,類型變更為INT(8),無符號,不為空

ALTER TABLE `user` CHANGE? salary? ? gz INT(8) UNSIGNED NOT NULL ;

#查看字段變更后的表結(jié)構(gòu)

DESC `user`;

如果想修改數(shù)據(jù)表的當(dāng)前主鍵,并將主鍵起始值設(shè)置為指定值,可這樣操作:

# 修改一下表結(jié)構(gòu),設(shè)置主鍵和約束條件

ALTER TABLE 表名? CHANGE id id INT(4) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT ;

#設(shè)置自增起始于1001

ALTER TABLE? 表名? ? AUTO_INCREMENT? = 自增主鍵起始值 ;

4、刪除字段

刪除字段是不可撤消的操作,所以刪除字段之前,請確保該字段值已無效

語法:(即使簡單也要背誦)

ALTER TABLE 表名 DROP? 要刪除的字段名 ;

實例:刪除user表中的job 字段

為不了破壞原數(shù)據(jù),我們新建一個字段來演示刪除操作

語句:

# 先添加一個job字段

ALTER TABLE `tp5_staff` ADD job CHAR(20) NOT NULL ;

#查看是否添加成功

DESC `tp5_staff`;

#刪除剛添加的job字段

ALTER TABLE `tp5_staff`? DROP? job;

#查看是否刪除成功

DESC `tp5_staff`;

5、數(shù)據(jù)表更名

語法:

ALTER TABLE? '原表名' RENAME ‘新表名’;

RENAME? TABLE '原表名' TO? ?‘新表名’;

例子:

#語法一:

ALTER TABLE `user` RENAME tp_user;

# 語法二:

RENAME? TABLE? user? TO? tp_user;

6、添加索引

ALTER TABLE? 表名? ADD INDEX (字段名)? [ , ADD INDEX (字段名) ];

實例:給user表中的name字段,salary 字段添加索引

語句:

ALTER TABLE `user` ADD INDEX (name), ADD INDEX (salary); (重要)

#經(jīng)測試,salary字段經(jīng)過索引后,已按升序輸出

SELECT? salary FROM `user`;

7、其它數(shù)據(jù)表編輯操作

如果僅僅修改字段類型,除了可以用CHANGE關(guān)鍵字后,還可以用MODIFY;

修改數(shù)據(jù)表的存儲引擎

#修改數(shù)據(jù)表引擎

ALTER TABLE 表名? ENGINE = MyISAM 或者? InnoDB

#修改數(shù)據(jù)表默認(rèn)字符集

ALTER TABLE 表名? DEFAULT CHARSET = 編碼集

實例:將user 表存儲引擎變更成:InnoDB

語句:

ALTER TABLE user ENGINE =InnoDB;

#查看變更之后的引擎

show table status from tp5 where name='user';

8、設(shè)置或刪除字段默認(rèn)值

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,694評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,672評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,690評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,019評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,188評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,718評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,438評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,667評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,845評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,384評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內(nèi)容

  • 系統(tǒng)用戶: 1.sys system(sys權(quán)限最高) 2.sysman(操作企業(yè)管理器) 密碼是安裝的時候輸入的...
    3hours閱讀 1,589評論 0 0
  • 1.MySQL數(shù)據(jù)庫 2.SQL語句 第一節(jié)課 ###1(MySQL數(shù)據(jù)庫)數(shù)據(jù)庫概念.avi 5...
    碼了個農(nóng)啵閱讀 1,232評論 1 16
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,737評論 18 399
  • 啟動 mysql$ mysql -uroot -p -P3306 -h127.0.0.1-u ,--user=na...
    假裝正在輸入閱讀 717評論 0 6
  • MySQL5.6從零開始學(xué) 第一章 初始mysql 1.1數(shù)據(jù)庫基礎(chǔ) 數(shù)據(jù)庫是由一批數(shù)據(jù)構(gòu)成的有序的集合,這些數(shù)據(jù)...
    星期四晚八點閱讀 1,181評論 0 4