MySQL數(shù)據(jù)管理操作示例講解
外鍵
方式一:在創(chuàng)建表的時候,增加約束
刪除有外鍵的表的時候,要先刪除引用外鍵的表
物理外鍵:不建議使用,數(shù)據(jù)庫級別的外鍵,不建議使用?。ū苊鈹?shù)據(jù)庫過多造成困擾)
數(shù)據(jù)庫就是單純的表,只用來存數(shù)據(jù),只有行(數(shù)據(jù))和列(字段)
我們想使用多張表的數(shù)據(jù),想使用外鍵,用程序去實現(xiàn)即可
DML語言
數(shù)據(jù)庫的意義:數(shù)據(jù)管理,數(shù)據(jù)存儲
DML語言:數(shù)據(jù)操作語言
insert update delete
添加 insert
-- 插入語句 -- insert into 表名([字段名1],[字段2],....) values ('值1','值2',....),('值1','值2',....),... insert into `grade`(gradename) values ('大四') -- 由于主鍵自增,我們可以省略(如果不寫字段名,就會一一匹配) -- 一般寫插入語句,我們一定要數(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’,…),…
注意事項:
- 字段和字段之間使用英文逗號隔開;
- 字段是可以省略的,但是后面的值必須要一一對應(yīng);
- 可以同時插入多條數(shù)據(jù),values后的值,需要使用,隔開即可 (‘值1’,‘值2’,…),(‘值1’,‘值2’,…),…
修改 update
-- 修改學(xué)員的名字 update student set name = '安娜' where id = 1 -- 不指定條件的情況下,會改動所有表! -- 修改多個屬性 update student set name = '安娜',pwd = '1123' where id = 1 -- 語法: -- update 表名 set 列名 = value,列名 = value,... where id=1
條件:where 子句 運算符 id 等于某個值 大于某個值 在某個區(qū)間內(nèi)修改 ,…
語法:update 表名 set 列名 = value,列名 = value,… where id=1
注意:
- 列名是數(shù)據(jù)庫的列,盡量帶上``
- 條件,篩選條件,如果沒有指定則會修改所有的列;
- value 是一個具體的值,也可以是一個變量
update student set birthday=current_time where id = 1
設(shè)置多個屬性,中間使用英文逗號隔開
刪除 delete
語法:delete from 表名 [where(條件)]
-- 刪除數(shù)據(jù) 不要這樣寫,會全部刪除的 delete from student -- 刪除指定數(shù)據(jù) delete from student where id=1
? truncate命令:專門用來刪除數(shù)據(jù)庫的
作用:完全清空一個數(shù)據(jù)庫表,表的結(jié)構(gòu)和索引約束不會變
-- 清空grade表 truncate grade
delete和truncate的區(qū)別
相同點:都能刪除數(shù)據(jù),都不會刪除表 結(jié)構(gòu)
不同:
- truncate會重新設(shè)置自增列,計數(shù)器會歸零
- truncate不會影響事務(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不會影響自增(刪除了前三行,新增數(shù)據(jù)還是從第四行開始增加) delete from test -- truncat自增會歸零(刪除前三行,新增數(shù)據(jù)從1開始) truncate table test
了解:
delete刪除的問題,重啟數(shù)據(jù)庫,會產(chǎn)生如下現(xiàn)象:
? innodb 自增列會從1開始(存在內(nèi)存當中的,斷電即失)
? myisam 繼續(xù)從上一個自增列開始(存在文件當中,不會丟失)
到此這篇關(guān)于MySQL數(shù)據(jù)管理操作示例講解的文章就介紹到這了,更多相關(guān)MySQL數(shù)據(jù)管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決mysql報錯ERROR 1049 (42000): Unknown dat
對于錯誤代碼1049(42000):Unknown database ‘數(shù)據(jù)庫‘,這個錯誤通常表示您正在嘗試訪問一個不存在的數(shù)據(jù)庫,本文給出了解決方法,您可以按照文中步驟進行操作,需要的朋友可以參考下2024-01-01如何使用MySQL查詢某個列中相同值的數(shù)量統(tǒng)計
這篇文章的主要內(nèi)容是通過MySQL查詢某個列中相同值的數(shù)量統(tǒng)計,文章簡潔明了,具有一定的參考價值,感興趣的小伙伴們可以參考一下2015-07-07關(guān)于在sql中使用order by實現(xiàn)排序出錯問題
這篇文章主要介紹了關(guān)于在sql中使用order by實現(xiàn)排序出錯問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08mysql 實現(xiàn)添加時間自動添加更新時間自動更新操作
這篇文章主要介紹了mysql 實現(xiàn)添加時間自動添加更新時間自動更新操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01SQL中CAST()實例之轉(zhuǎn)換數(shù)據(jù)類型
CAST函數(shù)用于將某種數(shù)據(jù)類型的表達式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型,下面這篇文章主要給大家介紹了關(guān)于SQL中CAST()實例之轉(zhuǎn)換數(shù)據(jù)類型的相關(guān)資料,需要的朋友可以參考下2023-01-01mysql 5.7以上版本安裝配置方法圖文教程(mysql 5.7.12\mysql 5.7.13\mysql 5.7.
這篇文章主要為大家分享了MySQL 5.7以上縮版本安裝配置方法圖文教程,包括mysql5.7.12、mysql5.7.13、mysql5.7.14安裝教程,包括感興趣的朋友可以參考一下2016-08-08mysql 通過拷貝數(shù)據(jù)文件的方式進行數(shù)據(jù)庫遷移實例
這篇文章主要介紹了mysql 通過拷貝數(shù)據(jù)文件的方式進行數(shù)據(jù)庫遷移實例的相關(guān)資料,需要的朋友可以參考下2016-11-11