MySQL的高级操作(每一次「欢喜」都值得纪念)

news2024/12/23 17:49:27

文章目录

  • 一、案例扩展
  • 二、克隆表
    • 1、方法一
    • 2、方法二
  • 三、清空表
  • 四、创建临时表
  • 七、补充
  • 七、补充

一、案例扩展

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:表示检测要创建的表是否已存在,如果不存在就继续创建

  • int(4) zerofill:表示若数值不满4位数,则前面用“0”填充,例0001

  • auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;自增长字段必须是主键;如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次

  • unique key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键

  • anot null:表示此字段不允许为NULL

在这里插入图片描述

二、克隆表

克隆表就是将数据表的数据记录生成到新的表中

1、方法一

create table test01 like KY08;		#通过 LIKE 方法,复制 KY08 表结构生成 test01 表
insert into test01 select * from KY08;

#此方法能保证 新表的表结构、表数据 跟旧表都是一致的

在这里插入图片描述
在这里插入图片描述

2、方法二

CREATE TABLE test02 (SELECT * from KY08);

#此方法创建的新表的表数据和旧表是一样的,但可能会出现新表的表结构和旧表的不一致

show create table test02\G					#获取数据表的表结构、索引等信息
SELECT * from test02;

在这里插入图片描述

三、清空表

删除表内的所有数据

方法一:
delete from test01;

方法二:
truncate table test01;
  • DELETE清空表后,返回的结果内有删除的记录条目;DELETE工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除所有记录后,再次新添加的记录会从原来最大的记录 ID 后面继续自增写入记录。
  • TRUNCATE 清空表后,没有返回被删除的条目;TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上 TRUNCATE 会比 DELETE 清空表快;使用 TRUNCATE TABLE 清空表内数据后,ID 会从 1 开始重新记录。

在这里插入图片描述
在这里插入图片描述

四、创建临时表

临时表创建成功之后,使用SHOW TABLES命令是看不到创建的临时表的,临时表会在连接退出后被销毁。 如果在退出连接之前,也可以可执行增删改查等操作,比如使用 DROP TABLE 语句手动直接删除临时表。

CREATE TEMPORARY TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);

在这里插入图片描述
在这里插入图片描述

五、创建外键约束,保证数据的完整性和一致性。
外键的定义:如果同一个属性字段X在表一中是主键,而在表二中不是主键,则字段X称为表二的外键。

主键表和外键表的理解:

  • 以公共关键字作主键的表为主键表(父表、主表)

  • 以公共关键字作外键的表为外键表(从表、外表)

    注意:与外键关联的主表的字段必须设置为主键。要求从表不能是临时表,主从表的字段具备相同的数据类型、字符长度和约束。

#创建主表 profession
create table profession (pid int(4),proname varchar(50));

#创建从表 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 字段建立外键关联。外键名建议以“FK_”开头。
alter table student add constraint FK_pro foreign key (proid) references profession (pid);

desc student;

#插入新的数据记录时,要先主表再从表
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);

#删数数据记录时,要先从表再主表,也就是说删除主键表的记录时必须先删除其他与之关联的表中的记录。
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):字段的值不能重复,不能为null,一个表只能有一个主键
  • 外键约束(foreign key): 保证相关联表数据的完整性和一致性
  • 非空约束(not null):字段的值不能为null
  • 唯一性约束(unique [key|index]):字段的值不能重读,能为null,一个表可有多个唯一键
  • 默认值约束(default):字段的值如果没有设置则使用默认值自动填充
  • 自增约束(auto_increment):字段的值如果没有设置,默认会从1开始递增1,要求自增字段必须为主键字段

七、补充

ndex]):字段的值不能重读,能为null,一个表可有多个唯一键

  • 默认值约束(default):字段的值如果没有设置则使用默认值自动填充
  • 自增约束(auto_increment):字段的值如果没有设置,默认会从1开始递增1,要求自增字段必须为主键字段

七、补充

int(N) zerofill 零填充

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/649409.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

eclipse中java代码在控制台输出的中文内容是乱码怎么解决

eclipse中创建了一个maven工程,用System.out在控制台输出内容,但中文内容显示乱码: 解决方法: 右键单击工程,选择Run As->Run Configurations: 点击Common这个tab页,Encoding选择Use system encoding&…

分布式定时任务框架 PowerJob

业务背景 1.1 为什么需要使用定时任务调度 (1)时间驱动处理场景:整点发送优惠券,每天更新收益,每天刷新标签数据和人群数据。 (2)批量处理数据:按月批量统计报表数据,批…

vue练习

附加练习-1.帅哥美女走一走 目标: 点击按钮, 改变3个li的顺序, 在头上的就到末尾. 提示: 操作数组里的顺序, v-for就会重新渲染li 代码演示 <template><div><ul><li v-for"item in myArr" :key"item">{{ item }}</li></…

GCC命令与参数详解

GCC 命令与参数详解 无论是 C 还是 C 程序&#xff0c;将其从源代码转变为可执行代码的过程&#xff0c;具体可分为预处理 Preprocessing&#xff0c;编译 Compilation&#xff0c;汇编 Assembly&#xff0c;链接 Linking 这四个阶段。 默认情况下 GCC 指令会直接将源代码历经…

websocket实时通信【纯后端——JAVA】

本文主要介绍一下websoket的实时通信&#xff0c;这里只有java的代码&#xff0c;通过在线网站 http://www.websocket-test.com/测试即可 1. 导包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocke…

亚马逊云科技re:Inforce 2023全球大会,让安全成为业务发展驱动力

S&P《企业之声&#xff1a;2022年信息安全、预算和展望》研究报告指出&#xff0c;有37%的受访者表示云基础设施安全是他们的主要安全支出&#xff0c;65%的受访者表示将计划采用云供应商的高级安全服务。安全是亚马逊云科技的重中之重&#xff0c;re:Inforce全球大会则深化…

开源字节 同城信息小程序

​从小程序发布至今&#xff0c;它已经成为各行各业的推广工具&#xff0c;借助微信服务平台平台流量优点&#xff0c;能帮助店家快速吸粉。 同城小程序项目成本低&#xff0c;使用灵巧便捷&#xff0c;实际操作工作效率高&#xff0c;有利于店家品牌营销。开源字节同城信息小程…

分享云安全领域技术创新及发展趋势,亚马逊云科技re:Inforce 2023全球大会为云上安全赋能

S&P《企业之声&#xff1a;2022年信息安全、预算和展望》研究报告指出&#xff0c;有37%的受访者表示云基础设施安全是他们的主要安全支出&#xff0c;65%的受访者表示将计划采用云供应商的高级安全服务。安全是亚马逊云科技的重中之重&#xff0c;re:Inforce全球大会则深化…

Matter实战系列-----4.matter设备的OTA

一、生成OTA固件升级压缩包 1.1 修改OTA固件版本号为3 1.2 编译生成 MatterLightOverThread_V3.ota 将编译得到的MatterLightOverThread.s37固件名称改成MatterLightOverThread_V3.s37&#xff0c;复制到以下Windows文件夹 C:\SiliconLabs\SimplicityStudio\v5\developer\ad…

Vue - 关于el-dialog 会让body 标签内的滚动条隐藏,导致窗口抖动的问题 和双滚动条问题

问题&#xff1a; 关于el-dialog 会让body 标签内的滚动条隐藏&#xff0c;导致窗口抖动的问题 抖动问题 抖动问题就不演示了&#xff0c;很简单&#xff0c;按如下配置就能解决&#xff1a; 双滚动条问题演示&#xff1a; 双滚动条解决效果演示&#xff1a; 解决方法&…

这几款实用的软件建议试一下

软件一&#xff1a;减肥计算器 「减肥计算器」是一款帮助用户进行减肥的专业工具。该工具提供了多种功能&#xff0c;包括计算BMI和卡路里、指定减肥目标以及个性化饮食建议等&#xff0c;帮助用户制定科学合理的减肥计划&#xff0c;并实现减重目标。 首先&#xff0c;「减肥…

Linux进程间通信 - 匿名管道(1)

之间我们学习了基础IO中有关文件&#xff0c;动静态库等知识&#xff0c;后面我们将讲述进程间通信的内容&#xff0c;在本文中就将来展示匿名管道。 进程间通信 进程间通信的目的 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程资源共享&#xff1a;多个进程…

Java低代码开发工具:jvs-rules 2.1.8 新版本功能清单

规则引擎用于管理和执行业务规则。它提供了一个中央化的机制来定义、管理和执行业务规则&#xff0c;以便根据特定条件自动化决策和行为。规则引擎的核心概念是规则。规则由条件和动作组成。条件定义了规则适用的特定情况或规则触发的条件&#xff0c;而动作定义了规则满足时要…

载誉而归丨盐城卓晨中心在第十届“北大青鸟杯”IT精英挑战赛中斩获多项殊荣!

2023年6月13日&#xff0c;第十届“北大青鸟杯”全国IT精英挑战赛华东&华中区域评审在合肥圆满落幕&#xff0c;当天下午&#xff0c;喜讯传来&#xff0c;北大青鸟盐城卓晨中心在此次比赛中摘得多项荣誉&#xff0c;包揽一、二、三等奖及优秀指导老师奖项&#xff0c;荣耀…

【Vue】学习笔记-VueRouter replace 编程式导航 缓存路由组件

VueRouter replace 编程式导航 缓存路由组件 路由跳转的replace方法编程式路由导航(不用<router-link>)缓存路由组件 路由跳转的replace方法 作用&#xff1a;控制路由跳转时操作浏览器历史记录的模式浏览器的历史记录有两种写入方式:push和replace push 是追加历史记录…

IntelliJ IDEA 2023.1中新的UI增强,加强了IDE编码体验!

IntelliJ IDEA&#xff0c;是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具&#xff0c;尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。 去…

专家意见何处寻:AI扮演领域专家角色为你答疑解惑

当我们寻求意见或建议时&#xff0c;ChatGPT是一个非常有用的工具。 作为通用的语言模型&#xff0c;ChatGPT 可以提供关于各种话题的建议和意见&#xff0c;如日常生活、工作、学习、人际关系、心理健康、科技和互联网、旅行和休闲、财务和投资、健康和医疗&#xff0c;以及环…

同事用python搞副业,失业了也能月入1W

今年2月&#xff0c;我失业了。好在是被裁的&#xff0c;有些补偿。裁的是整个部门&#xff0c;刚开始拿到赔偿以后还欢呼雀跃&#xff0c;天天聚会&#xff0c;天天嗨。到现在过去几个月了&#xff0c;我们没一个找到工作。我已经感受到了一股鸡蛋被煎糊的焦虑感 一次前同事聚…

新方案登场!“软硬兼施”让光伏组件焊接检测更高效

焊接是光伏组件生产中重要的工艺流程&#xff0c;就拿光伏组件中常见的组成部分——接线盒来举例&#xff0c;作为完成组件电力传输的关键器件&#xff0c;在组件的自动化生产过程中&#xff0c;接线盒的电极焊接质量直接关乎组件的性能&#xff0c;焊接质量检测的重要性不言而…

Dubbo简介和配置

1.Dubbo和OpenFeign的简介 Dubbo一个高性能rpc框架&#xff0c;用于构建分布式微服务架构&#xff0c;它提供了服务注册与发现&#xff0c;负载均衡&#xff0c;容错机制等功能。Dubbo具有高性能和低延迟的特点&#xff0c;适合于大规模的分布式系统。OpenFeign一个基于Java的…