MySQL數(shù)據(jù)管理操作示例講解
外鍵
方式一:在創(chuàng)建表的時(shí)候,增加約束
刪除有外鍵的表的時(shí)候,要先刪除引用外鍵的表
物理外鍵:不建議使用,數(shù)據(jù)庫(kù)級(jí)別的外鍵,不建議使用?。ū苊鈹?shù)據(jù)庫(kù)過(guò)多造成困擾)
數(shù)據(jù)庫(kù)就是單純的表,只用來(lái)存數(shù)據(jù),只有行(數(shù)據(jù))和列(字段)
我們想使用多張表的數(shù)據(jù),想使用外鍵,用程序去實(shí)現(xiàn)即可
DML語(yǔ)言
數(shù)據(jù)庫(kù)的意義:數(shù)據(jù)管理,數(shù)據(jù)存儲(chǔ)
DML語(yǔ)言:數(shù)據(jù)操作語(yǔ)言
insert update delete
添加 insert
-- 插入語(yǔ)句
-- insert into 表名([字段名1],[字段2],....) values ('值1','值2',....),('值1','值2',....),...
insert into `grade`(gradename) values ('大四')
-- 由于主鍵自增,我們可以省略(如果不寫(xiě)字段名,就會(huì)一一匹配)
-- 一般寫(xiě)插入語(yǔ)句,我們一定要數(shù)據(jù)和字段一一匹配
-- 插入多字段
insert into grade(gradename)
values('大一'),('大二')
insert into student(name,pwd)
values ('Lisa','1223')
insert into student(name,pwd)
values ('Lisa','1442'),('lili','520'),('aaa','126')
語(yǔ)法:insert into 表名([字段名1],[字段2],…) values (‘值1’,‘值2’,…),(‘值1’,‘值2’,…),…
注意事項(xiàng):
- 字段和字段之間使用英文逗號(hào)隔開(kāi);
- 字段是可以省略的,但是后面的值必須要一一對(duì)應(yīng);
- 可以同時(shí)插入多條數(shù)據(jù),values后的值,需要使用,隔開(kāi)即可 (‘值1’,‘值2’,…),(‘值1’,‘值2’,…),…
修改 update
-- 修改學(xué)員的名字 update student set name = '安娜' where id = 1 -- 不指定條件的情況下,會(huì)改動(dòng)所有表! -- 修改多個(gè)屬性 update student set name = '安娜',pwd = '1123' where id = 1 -- 語(yǔ)法: -- update 表名 set 列名 = value,列名 = value,... where id=1
條件:where 子句 運(yùn)算符 id 等于某個(gè)值 大于某個(gè)值 在某個(gè)區(qū)間內(nèi)修改 ,…
語(yǔ)法:update 表名 set 列名 = value,列名 = value,… where id=1
注意:
- 列名是數(shù)據(jù)庫(kù)的列,盡量帶上``
- 條件,篩選條件,如果沒(méi)有指定則會(huì)修改所有的列;
- value 是一個(gè)具體的值,也可以是一個(gè)變量
update student set birthday=current_time where id = 1
設(shè)置多個(gè)屬性,中間使用英文逗號(hào)隔開(kāi)
刪除 delete
語(yǔ)法:delete from 表名 [where(條件)]
-- 刪除數(shù)據(jù) 不要這樣寫(xiě),會(huì)全部刪除的 delete from student -- 刪除指定數(shù)據(jù) delete from student where id=1
? truncate命令:專(zhuān)門(mén)用來(lái)刪除數(shù)據(jù)庫(kù)的
作用:完全清空一個(gè)數(shù)據(jù)庫(kù)表,表的結(jié)構(gòu)和索引約束不會(huì)變
-- 清空grade表 truncate grade
delete和truncate的區(qū)別
相同點(diǎn):都能刪除數(shù)據(jù),都不會(huì)刪除表 結(jié)構(gòu)
不同:
- truncate會(huì)重新設(shè)置自增列,計(jì)數(shù)器會(huì)歸零
- truncate不會(huì)影響事務(wù)
-- 測(cè)試delete和truncate的區(qū)別 create table test( id int(4) not null auto_increment, coll varchar(20) not null, PRIMARY key (id) )ENGINE=INNODB DEFAULT charset=utf8 -- delete不會(huì)影響自增(刪除了前三行,新增數(shù)據(jù)還是從第四行開(kāi)始增加) delete from test -- truncat自增會(huì)歸零(刪除前三行,新增數(shù)據(jù)從1開(kāi)始) truncate table test
了解:
delete刪除的問(wèn)題,重啟數(shù)據(jù)庫(kù),會(huì)產(chǎn)生如下現(xiàn)象:
? innodb 自增列會(huì)從1開(kāi)始(存在內(nèi)存當(dāng)中的,斷電即失)
? myisam 繼續(xù)從上一個(gè)自增列開(kāi)始(存在文件當(dāng)中,不會(huì)丟失)
到此這篇關(guān)于MySQL數(shù)據(jù)管理操作示例講解的文章就介紹到這了,更多相關(guān)MySQL數(shù)據(jù)管理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
innodb_index_stats導(dǎo)入備份數(shù)據(jù)時(shí)報(bào)錯(cuò)表主鍵沖突的解決方法
下面小編就為大家?guī)?lái)一篇innodb_index_stats導(dǎo)入備份數(shù)據(jù)時(shí)報(bào)錯(cuò)表主鍵沖突的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
mysql線上查詢之前要性能調(diào)優(yōu)的技巧及示例
文章介紹了查詢優(yōu)化的幾種方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查詢和派生表的優(yōu)化、查詢提示和優(yōu)化器提示等,這些方法可以幫助提高數(shù)據(jù)庫(kù)性能,減少查詢的執(zhí)行時(shí)間和資源消耗,感興趣的朋友一起看看吧2025-03-03
MySQL查看數(shù)據(jù)庫(kù)狀態(tài)命令詳細(xì)講解
在工作中,有時(shí)候我們需要了解MySQL服務(wù)器的狀態(tài)信息,下面這篇文章主要給大家介紹了關(guān)于MySQL查看數(shù)據(jù)庫(kù)狀態(tài)命令的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
MySQL中CONCAT()函數(shù)出現(xiàn)值為空的問(wèn)題及解決辦法
項(xiàng)目中查詢用到了concat()拼接函數(shù),本文主要介紹了MySQL中CONCAT()函數(shù)出現(xiàn)值為空的問(wèn)題及解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
Mysql聯(lián)合查詢UNION和UNION ALL的使用介紹
本文詳細(xì)介紹了Mysql的聯(lián)合查詢命令UNION和UNION ALL,總結(jié)了使用語(yǔ)法和注意事項(xiàng),以及學(xué)習(xí)例子和項(xiàng)目例子,需要的朋友可以參考下2014-04-04
MySQL數(shù)據(jù)庫(kù)索引原理及優(yōu)化策略
MySQL數(shù)據(jù)庫(kù)索引是一種數(shù)據(jù)結(jié)構(gòu),用于提高數(shù)據(jù)查詢的效率,加快數(shù)據(jù)檢索的速度。索引基于樹(shù)結(jié)構(gòu)實(shí)現(xiàn),可以通過(guò)B+樹(shù)等算法來(lái)優(yōu)化索引效率。MySQL中常見(jiàn)的索引類(lèi)型包括主鍵索引、唯一索引、普通索引、全文索引等2023-04-04

