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

