最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL數(shù)據(jù)庫高級操作實(shí)戰(zhàn)(克隆表、清空表、創(chuàng)建臨時表及約束)

 更新時間:2023年06月15日 10:59:13   作者:善良的狼人  
多年工作中積累整理的數(shù)據(jù)庫高級操作分享給大家,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫高級操作實(shí)戰(zhàn)的相關(guān)資料,其中包括克隆表、清空表、創(chuàng)建臨時表及約束等,需要的朋友可以參考下

一、案例擴(kuò)展

use kgc;
create table if not exists info (
id int(4) zerofill primary key auto_increment,				#指定主鍵的第二種方式
name varchar(10) not null default '匿名',
cardid int(18) not null unique key,
hobby varchar(50));
  • if not exists:表示檢測要創(chuàng)建的表是否已存在,如果不存在就繼續(xù)創(chuàng)建
  • int(4) zerofill:表示若數(shù)值不滿4位數(shù),則前面用“0”填充,例0001
  • auto_increment:表示此字段為自增長字段,即每條記錄自動遞增1,默認(rèn)從1開始遞增;自增長字段數(shù)據(jù)不可以重復(fù);自增長字段必須是主鍵;如添加的記錄數(shù)據(jù)沒有指定此字段的值且添加失敗也會自動遞增一次
  • unique key:表示此字段唯一鍵約束,此字段數(shù)據(jù)不可以重復(fù);一張表中只能有一個主鍵, 但是一張表中可以有多個唯一鍵
  • not null:表示此字段不允許為NULL

二、克隆表

克隆表就是將數(shù)據(jù)表的數(shù)據(jù)記錄生成到新的表中

1、方法一

create table test01 like KY08;		#通過 LIKE 方法,復(fù)制 KY08 表結(jié)構(gòu)生成 test01 表
insert into test01 select * from KY08;
#此方法能保證 新表的表結(jié)構(gòu)、表數(shù)據(jù) 跟舊表都是一致的

2、方法二

CREATE TABLE test02 (SELECT * from KY08);
#此方法創(chuàng)建的新表的表數(shù)據(jù)和舊表是一樣的,但可能會出現(xiàn)新表的表結(jié)構(gòu)和舊表的不一致
show create table test02\G					#獲取數(shù)據(jù)表的表結(jié)構(gòu)、索引等信息
SELECT * from test02;

三、清空表

刪除表內(nèi)的所有數(shù)據(jù)

方法一:
delete from test01;
方法二:
truncate table test01;
  • DELETE清空表后,返回的結(jié)果內(nèi)有刪除的記錄條目;DELETE工作時是一行一行的刪除記錄數(shù)據(jù)的;如果表中有自增長字段,使用DELETE FROM 刪除所有記錄后,再次新添加的記錄會從原來最大的記錄 ID 后面繼續(xù)自增寫入記錄。
  • TRUNCATE 清空表后,沒有返回被刪除的條目;TRUNCATE 工作時是將表結(jié)構(gòu)按原樣重新建立,因此在速度上 TRUNCATE 會比 DELETE 清空表快;使用 TRUNCATE TABLE 清空表內(nèi)數(shù)據(jù)后,ID 會從 1 開始重新記錄。

四、創(chuàng)建臨時表

臨時表創(chuàng)建成功之后,使用SHOW TABLES命令是看不到創(chuàng)建的臨時表的,臨時表會在連接退出后被銷毀。 如果在退出連接之前,也可以可執(zhí)行增刪改查等操作,比如使用 DROP TABLE 語句手動直接刪除臨時表。

CREATE TEMPORARY TABLE 表名 (字段1 數(shù)據(jù)類型,字段2 數(shù)據(jù)類型[,...][,PRIMARY KEY (主鍵名)]);

五、創(chuàng)建外鍵約束,保證數(shù)據(jù)的完整性和一致性。

外鍵的定義:如果同一個屬性字段X在表一中是主鍵,而在表二中不是主鍵,則字段X稱為表二的外鍵。

主鍵表和外鍵表的理解:

  • 以公共關(guān)鍵字作主鍵的表為主鍵表(父表、主表)
  • 以公共關(guān)鍵字作外鍵的表為外鍵表(從表、外表)

注意:與外鍵關(guān)聯(lián)的主表的字段必須設(shè)置為主鍵。要求從表不能是臨時表,主從表的字段具備相同的數(shù)據(jù)類型、字符長度和約束。

#創(chuàng)建主表 profession
create table profession (pid int(4),proname varchar(50));

#創(chuàng)建從表 student
create table student (id int(4) primary key auto_increment,name varchar(10),age int(3),proid int(4));

#為主表 profession 添加一個主鍵約束。主鍵名建議以“PK_”開頭。
alter table profession add constraint PK_pid primary key (pid);

#為從表 student 表添加外鍵,并將 student 表的 proid 字段和 profession 表的 pid 字段建立外鍵關(guān)聯(lián)。外鍵名建議以“FK_”開頭。
alter table student add constraint FK_pro foreign key (proid) references profession (pid);

desc student;

#插入新的數(shù)據(jù)記錄時,要先主表再從表
insert into profession values(1,'通信工程');
insert into profession values(2,'軟件工程');
insert into student values(1,'zhangsan',18,1);
insert into student values(2,'lisi',19,1);
insert into student values(3,'wangwu',20,2);

#刪數(shù)數(shù)據(jù)記錄時,要先從表再主表,也就是說刪除主鍵表的記錄時必須先刪除其他與之關(guān)聯(lián)的表中的記錄。
delete from student where proid=1;
delete from profession where pid=1;

#查看和刪除外鍵約束
show create table student;
desc student;
alter table student drop foreign key FK_pro;
alter table student drop key FK_pro;

六、MySQL中6種常見的約束

  • 主鍵約束(primary key):字段的值不能重復(fù),不能為null,一個表只能有一個主鍵
  • 外鍵約束(foreign key): 保證相關(guān)聯(lián)表數(shù)據(jù)的完整性和一致性
  • 非空約束(not null):字段的值不能為null
  • 唯一性約束(unique [key|index]):字段的值不能重讀,能為null,一個表可有多個唯一鍵
  • 默認(rèn)值約束(default):字段的值如果沒有設(shè)置則使用默認(rèn)值自動填充
  • 自增約束(auto_increment):字段的值如果沒有設(shè)置,默認(rèn)會從1開始遞增1,要求自增字段必須為主鍵字段

總結(jié)

到此這篇關(guān)于MySQL數(shù)據(jù)庫高級操作的文章就介紹到這了,更多相關(guān)MySQL高級操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Can''t connect to local MySQL through socket ''/tmp/mysql.sock''解決方法

    Can''t connect to local MySQL through socket ''/tmp/mysql.so

    今天小編就為大家分享一篇關(guān)于Can't connect to local MySQL through socket '/tmp/mysql.sock'解決方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • MySQL 覆蓋索引實(shí)戰(zhàn)案例詳解

    MySQL 覆蓋索引實(shí)戰(zhàn)案例詳解

    本文通過實(shí)戰(zhàn)案例揭示覆蓋索引對MySQL性能優(yōu)化的核心價值,解決因回表導(dǎo)致的55秒慢查詢問題,優(yōu)化后執(zhí)行時間降至2秒,設(shè)計需兼顧字段完整性、順序合理性及讀寫平衡,是提升查詢效率的關(guān)鍵策略,感興趣的朋友跟隨小編一起看看吧
    2025-07-07
  • Mysql中自定義函數(shù)的創(chuàng)建和執(zhí)行方式

    Mysql中自定義函數(shù)的創(chuàng)建和執(zhí)行方式

    這篇文章主要介紹了Mysql中自定義函數(shù)的創(chuàng)建和執(zhí)行方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • mysql 修改用戶密碼圖文介紹

    mysql 修改用戶密碼圖文介紹

    有許多朋友經(jīng)常需要修改mysql修改用戶密碼,今天提供圖文并茂來解決此類問題,需要的朋友可以參考下
    2012-11-11
  • MySQL系列之五 視圖、存儲函數(shù)、存儲過程、觸發(fā)器

    MySQL系列之五 視圖、存儲函數(shù)、存儲過程、觸發(fā)器

    視圖就是一條select語句執(zhí)行后返回的結(jié)果集;觸發(fā)器是與表有關(guān)的數(shù)據(jù)庫對象,在滿足定義條件時觸發(fā),并執(zhí)行觸發(fā)器中定義的語句集合;函數(shù)存儲著一系列sql語句,調(diào)用函數(shù)就是一次性執(zhí)行這些語句,而存儲過程就是一組可編程的函數(shù),需要的朋友可以參考下
    2021-07-07
  • Windows 下 MySQL 8.X 的安裝教程

    Windows 下 MySQL 8.X 的安裝教程

    這篇文章主要介紹了Windows 下 MySQL 8.X 的安裝教程,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • MySQL的從庫Seconds_Behind_Master延遲總結(jié)

    MySQL的從庫Seconds_Behind_Master延遲總結(jié)

    這篇文章主要介紹了MySQL的從庫Seconds_Behind_Master延遲的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • MySQL數(shù)據(jù)庫遠(yuǎn)程連接很慢的解決方案

    MySQL數(shù)據(jù)庫遠(yuǎn)程連接很慢的解決方案

    本文給大家分享的是MySQL數(shù)據(jù)庫遠(yuǎn)程連接很慢的解決方法,簡單的說就是開啟skip-name-resolve,非常的簡單實(shí)用,有需要的小伙伴可以參考下
    2016-12-12
  • Mysql及Navicat中設(shè)置字段自動填充當(dāng)前時間及修改時間實(shí)現(xiàn)

    Mysql及Navicat中設(shè)置字段自動填充當(dāng)前時間及修改時間實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于Mysql及Navicat中設(shè)置字段自動填充當(dāng)前時間及修改時間實(shí)現(xiàn)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-07-07
  • MySQL錯誤“Data?too?long”的原因、解決方案與優(yōu)化策略

    MySQL錯誤“Data?too?long”的原因、解決方案與優(yōu)化策略

    MySQL作為重要的數(shù)據(jù)庫系統(tǒng),在數(shù)據(jù)插入時可能遇到“Data?too?long?for?column”錯誤,本文探討了該錯誤的原因、解決方案及預(yù)防措施,如調(diào)整字段長度、使用TEXT類型等,旨在優(yōu)化數(shù)據(jù)庫設(shè)計,提升性能和用戶體驗(yàn),需要的朋友可以參考下
    2024-09-09

最新評論

德安县| 杭锦后旗| 会宁县| 义乌市| 荆州市| 汨罗市| 介休市| 奉新县| 慈溪市| 顺平县| 遵义县| 东山县| 龙江县| 崇义县| 蓬安县| 广灵县| 民勤县| 独山县| 东台市| 无极县| 兴国县| 漳平市| 墨玉县| 鹤岗市| 塔城市| 沽源县| 岐山县| 彭阳县| 乐亭县| 丰都县| 唐河县| 宜阳县| 胶州市| 台州市| 定兴县| 沂南县| 宿松县| 衡山县| 双桥区| 新沂市| 普安县|