Mysql數(shù)據(jù)庫(kù)值的添加、修改、刪除及清空操作實(shí)例
3、MySQL數(shù)據(jù)管理
第一種方式:不太建議,看起來(lái)復(fù)雜些
-- 學(xué)生表的 gradeid 字段,要去引用 年級(jí)表的 gradeid -- 定義外鍵key -- 給這個(gè)外鍵添加約束,(執(zhí)行引用),REFERENCES 引用 key `FK_gradeid`(`gradeid`) CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade`(`gradeid`)
第二種方式:建議
-- 創(chuàng)建表成功后,添加外鍵約束 -- 創(chuàng)建表的時(shí)候沒(méi)有外鍵關(guān)系 ALTER TABLE `student` ADD CONSTRAINT `FK_gradeid` FOREIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`); -- ALTER TABLE 表 ADD CONSTRAINT `` FOREIGN KEY (``) REFERENCES `字段`
以上的操作都是物理外鍵,數(shù)據(jù)庫(kù)級(jí)別的外鍵,我們不建議使用,(避免數(shù)據(jù)庫(kù)過(guò)多造成困擾,這里了解即可)
最佳實(shí)踐
- 數(shù)據(jù)庫(kù)為單純的表
- 我們想使用多張的表數(shù)據(jù),想使用外鍵(程序去實(shí)現(xiàn))
3.2、DML語(yǔ)言
數(shù)據(jù)庫(kù)語(yǔ)言: 數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)管理
3.3、添加 INSERT
-- 插入語(yǔ)句 INSERT INTO 表名([字段1,字段2,字段2]) values(''),(''),('') -- INSERT INTO 'grade'('gradename') VALUES ('大四') -- 一般寫(xiě)插入語(yǔ)句,一定要數(shù)據(jù)和要插入值的字段一一對(duì)應(yīng) -- 給某個(gè)字段添加多個(gè)字段 INSERT INTO `表明`(`屬性列字段`, ...) VALUES ('匹配的值1','匹配的值2','匹配的值3') /* 如果不想寫(xiě)屬性列的字段名,那么就吧每個(gè)屬性列完全匹配,一一對(duì)應(yīng)的寫(xiě)出后面的值*/
注意事項(xiàng)
- 字段和字段之間使用英文逗號(hào)隔開(kāi)
- 字段是可以省略的,但是后面的值必須要一一對(duì)應(yīng),不能少
- 可以同時(shí)插入多條數(shù)據(jù),VALUES 后面的值,需要使用,隔開(kāi)即可VALUSE(),(),......
-- 插入多條數(shù)據(jù)<即元組>,多個(gè)行的數(shù)據(jù) INSERT INTO `s`(`SNO`,`SNAME`,`SEX`,`Sage`) VALUES ('180109','王五','男','76'),('180108','李四','男','88')
3.3修改
update 修改誰(shuí)(條件)
-- 修改學(xué)員名字 UPDATE `student` SET `name`='長(zhǎng)江七號(hào)' WHERE id = 1; -- 有條件 -- 不指定的情況下,會(huì)改動(dòng)所有表?。。。?! UPDATE `student` SET `name` = '長(zhǎng)江七號(hào)' -- 語(yǔ)法 -- UPDATE 表名 SET colum_name = value,[colum_name = value,....] where [條件]
條件:where 運(yùn)算符
操作符 | 含義 | 范圍 | 結(jié)果 |
---|---|---|---|
= | 等于 | 5=6 | false |
<>或者 != | 不等于 | 5<>6 | true |
> | 大于 | 5>6 | false |
< | 小于 | 5<6 | true |
>= | 大于等于 | 5>=6 | false |
<= | 小于等于 | 5<=6 | true |
between A and B | 在A和B之間 | between 1 and 10 | 在1~10之間,不包括10 |
AND | 連接條件&& | 條件1 和條件2都成立 | 都是true 才是true |
OR | 或者|| | 條件1 和條件2有一個(gè)成立即可 | 有一個(gè)true才是true |
注意事項(xiàng):
- colnum_name 是數(shù)據(jù)庫(kù)的列,盡量帶上 ``
- 條件,篩選的條件,如果沒(méi)有指定,則會(huì)修改所有的列
- VLAUE是一個(gè)具體的值,也可以是一個(gè)變量,如birthday = CURRENT_TIME current_time是當(dāng)前時(shí)間
- 多個(gè)設(shè)置的屬性之間,使用英文逗號(hào)隔開(kāi)
-- 修改語(yǔ)句的例子 UPDATE `student`SET `birthday` = CURRENT_TIME WHERE `name` = '長(zhǎng)江七號(hào)' AND SEX = '女'
3.4 刪除
delete 命令
語(yǔ)法:delete from 表明 where 判斷條件
-- 刪除數(shù)據(jù)<慎用,容易刪庫(kù)跑路> DELETE FROM `STUDENT` -- 刪除指定數(shù)據(jù) DELETE FROM `student` WHERE id = 1;
TRUNCATE 命令
作用:完全清空一個(gè)數(shù)據(jù)庫(kù)表,表的結(jié)構(gòu)和索引約束不會(huì)改變!!
-- 清空數(shù)據(jù)表,例如清空student表 TRUNCATE `student` -- 安全寫(xiě)法,刪除表,防止刪除數(shù)據(jù)庫(kù)名為`student` TRUNCATE TABLE `student`
delete 和TRUNCATE的區(qū)別
相同點(diǎn):都可以刪除數(shù)據(jù),都不會(huì)刪除表的結(jié)構(gòu)
不同:
- TRUNCATE 重新設(shè)置自增列,計(jì)數(shù)器會(huì)歸零
- TRUNCATE 不會(huì)影響事務(wù)
-- 測(cè)試 CREATE TABLE `test`( `id` INT(4) NOT NULL AUTO_INCREMENT, `COLL` VARCHAR(20) NOT NULL, PRIMARY KEY('id') )ENGINE=INNODB DEFAULT CHARSET=UTF8 INSERT TNTO `test` (`coll`) VALUES('1')('2')('3') DELETE FROM `test` -- 不會(huì)影響自增 TRUNCATE TABLE `test` -- 自帶會(huì)歸零
了解即可:delete刪除的問(wèn)題,重啟數(shù)據(jù)庫(kù),現(xiàn)象
- INNODB 自增列會(huì)從1開(kāi)始,(存在內(nèi)存當(dāng)中的斷電即失)
- MYISAM 繼續(xù)從上一個(gè)子增量開(kāi)始(存在文件當(dāng)中的,不會(huì)丟失)
+++
+++
課后的添加實(shí)例展示
添加:
-- 一條元組的添加示例 insert into `Student` values('180103','對(duì)象三','女','22','CS') -- 測(cè)試添加多條元組,中間使用英文逗號(hào)隔開(kāi) INSERT INTO `Student` VALUES('180105','對(duì)象五','男','19','IS'),('180106','對(duì)象六','女','20','CS'),('180107','對(duì)象七','女','20','CS') -- 因?yàn)楸淼慕Y(jié)構(gòu)設(shè)置非空,這里沒(méi)有測(cè)試只添加某個(gè)屬性列的值
+++
修改:update
UPDATE `student` SET `sname` = '操作修改對(duì)象一' WHERE `sno`= 180102; -- 記得添加的時(shí)候不要帶逗號(hào),我的問(wèn)題出在了下面帶了逗號(hào) -- UPDATE `student` SET `sname` = '操作修改對(duì)象一',WHERE `sno`= 180102;
添加成功后,表的結(jié)果截圖展示:
刪除:delete
-- 刪除單條記錄<符合WHERE條件就刪除這條記錄> DELETE FROM `student` WHERE sname = '操作修改對(duì)象一'; -- 使用TRUNCATE清空數(shù)據(jù)表 TRUNCATE Table `student` -- 或者使用 delete刪除所有數(shù)據(jù)庫(kù) DELETE FROM `student` -- 不會(huì)影響自增
操作結(jié)果展示
-- 因?yàn)閯h除了所有數(shù)據(jù),所以結(jié)果是表為空
總結(jié)
到此這篇關(guān)于Mysql數(shù)據(jù)庫(kù)值的添加、修改、刪除及清空操作的文章就介紹到這了,更多相關(guān)Mysql值添加、修改、刪除及清空內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解MySQL 聯(lián)合查詢優(yōu)化機(jī)制
MySQL 使用聯(lián)合的形式的地方會(huì)遠(yuǎn)遠(yuǎn)超過(guò)我們過(guò)去認(rèn)知的范疇?;旧?,它會(huì)認(rèn)為每個(gè)查詢都有聯(lián)合,而不僅僅是從兩張表中查出匹配的數(shù)據(jù)行,這包括了子查詢,甚至僅僅對(duì)單表的 SELECT 操作。因此,理解 MySQL 如何執(zhí)行聯(lián)合十分重要。2021-05-05InnoDB中不同SQL語(yǔ)句設(shè)置鎖的情況詳解
這篇文章主要介紹了InnoDB中不同SQL語(yǔ)句設(shè)置鎖的情況詳解,在Mysql中,鎖定讀、更新、刪除操作通常會(huì)對(duì)SQL語(yǔ)句處理過(guò)程中掃描到的每條索引記錄設(shè)置記錄鎖,需要的朋友可以參考下2024-01-01調(diào)用MySQL中數(shù)據(jù)庫(kù)元數(shù)據(jù)的方法
這篇文章主要介紹了調(diào)用MySQL中數(shù)據(jù)庫(kù)元數(shù)據(jù)的方法,文中給出了了PHP和Perl腳本下的調(diào)用示例,需要的朋友可以參考下2015-05-05MySQL數(shù)據(jù)庫(kù)配置優(yōu)化的方案
我們總是希望MySQL能夠獲得更高的查詢性能,最好的辦法是弄清楚MySQL是如何優(yōu)化和執(zhí)行查詢的。本文講解MySQL在各個(gè)方面的優(yōu)化方向,方便后端開(kāi)發(fā)人員在調(diào)優(yōu)和問(wèn)題排查過(guò)程中找到切入點(diǎn)2023-02-02mysql啟動(dòng)提示:錯(cuò)誤2系統(tǒng)找不到指定文件的解決方案
這篇文章主要給大家介紹了mysql啟動(dòng)提示:錯(cuò)誤2系統(tǒng)找不到指定文件的解決方案,文中通過(guò)圖文結(jié)合的方式給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02