MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

这篇具有很好参考价值的文章主要介绍了MySQL表操作:提高数据处理效率的秘诀(进阶)(1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

💕**“生命不在于相信奇迹,而在于创造奇迹。”——朱学恒**💕
🐼作者:不能再留遗憾了🐼
🎆专栏:MySQL学习🎆
🚗本文章主要内容:MySQL对表操作进阶。数据库约束、表的设计、新增,后续会更新进阶表的查询🚗
MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

前言

前面我们已经介绍过初识MySQL以及MySQL对库和对表操作(初阶),那么今天我将为大家分享MySQL对表操作(进阶)。如果大家觉得对你有帮助的话。记得点个赞哦。😊

1.数据库约束

NULL约束

指定某列不能存储NULL值。

在之前我们创建一个表的时候,我们会发现除了我们指定的表名、列名和列名对应的数据类型外,还会额外展现其他的信息,那么这些信息代表什么意思呢?我将会为大家一一介绍。
MySQL表操作:提高数据处理效率的秘诀(进阶)(1)
NULL这一列的YES说明,该列内容可以为null,那么如果我们不想让该列出现null该怎么办呢?

NOT NULL 使得指定列的内容不能为null。

create table 表名 (列名 类型 not null);
 create table student (id int not null,name varchar(20));
 desc student;
 insert into student values (1,'张三');
  insert into student values (null,'李四');

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)
当我们使用 NOT NULL 约束了列之后,如果插入该列的内是null就会报错

UNIQUE:唯一约束

在日常很多情况下,我们会要求数据的唯一性,也就是说不出现重复的数据,而在MySQL中也可以对表操作保证数据的唯一性。

create table 表名 (列名 类型 unique);

UNIQUE唯一约束会在插入数据之前检测列中的数据是否已经存在,如果存在就不能插入,不存在就允许插入。

create table student (id int unique,name varchar(20));
desc student;
insert into student values (1,'张三');
insert into student values (1,'李四');

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

key中的UNI表示该列存在UNIQUE唯一约束,该列不能出现重复数据。

DEFALUT:默认值约束

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)
MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

当进行指定列插入的时候,那么那些未插入数据的列的内容将会被默认DEFAULT为null,如果我们不想默认值为null怎么办呢?

create table 表名 (列名 类型 default 默认值);

DEFAULT设置默认值

create table student (id int,name varchar(20) default '无名氏');
desc student;
insert into student (id) values (1);
select * from student;

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

primary key:主键约束

primary key主键约束就类似于我们的身份证和学生证,是每个人所特有的,也就是说primary key是每行的关键数据,它不可为null,也不可重复。 一个表中只能有一个主键

create table 表名 (列名 类型 primary key);
create table student (id int primary key,name varchar(20));
desc student;
insert into student values (null,'张三');
 insert into student values (1,'张三');
  insert into student values (1,'李四');

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

primary key 通常搭配着 auto_increment 使用,表示自增主键。如果我们想要使用自增主键,只需要在插入数据的时候插入的内容是null就行了。

 create table student (id int primary key auto_increment,name varchar(20));
 desc student;
 insert into student values (null,'张三');
 insert into student values (null,'李四');
 select * from student;

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

primary key auto_increment 自增的规律是:当前面数据都为null时,从1开始自增,当前面有数据不为null时,从前面数据的最大值开始自增。

insert into student values (100,'王五');
insert into student values (4,'赵六');
insert into student values (null,'猫猫');

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

foreign key:外键约束

在学校中,我们都知道每个学生都有对应的班级,同样在MySQL中也可以将这种类似的关系体现出来。

外键用于关联其他表的主键或唯一键

create table 表名 (列名 类型 foreign key (列名) references 另一个表名(关联的列名));
create table class (classId int primary key auto_increment,name varchar(20));
create table student (studentId int primary key auto_increment,name varchar(20),classId int,
     foreign key (classId) references class(classId));
desc student;

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

既然是学生,那么肯定要先有班级然后学生才能进入班级,并且学生不能进入不存在的班级。

insert into class (null,'高三1班');
insert into class values (null,'高三2班');
insert into class values (null,'高三3班');
insert into student values (null,'张三',1);
insert into student values (null,'李四',4);

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)
MySQL表操作:提高数据处理效率的秘诀(进阶)(1)
当插入的数据在外键对应的列中不含有时,就会报错。并且在以上的外键关系中,class为父表,student为子表,子表的插入和删除都受到父表的约束,同时父表的删除也受到子表的约束。

update student set classId = 5;
delete from class where classId = 1;

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)
子表的修改,对应的列修改后的数据还是需要在父表中存在。父表删除的时候,如果子表与其有关联,那么就删除不了,只能先删除掉子表的对应行,然后再删除父表。

check约束

check约束在本篇文章就不过多解释了,大家有兴趣的话,可以自己去了解了解哦。

2.表的设计

一对一

两者之间是一对一的关系

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

一对多

一个人可以拥有多个宠物,但是一个宠物不可以有多个主人。
MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

多对多

两者之间除了他们之间有关系外,他们还可以与其他的事物具有其他关系。
MySQL表操作:提高数据处理效率的秘诀(进阶)(1)

3.新增

如果我们想要从将一个表中的数据复制到另一个类型相同的表当中,我们可以在查询的同时就插入数据,这样就极大地提高了效率。

insert into 表名 select (列名) from 另一个表名;

需要注意的是,当从一个表中向另一个表中插入数据时,表的结构应该相同或兼容。也就是说,目标表中的所有列都应该存在于源表中,并且具有相似的数据类型和长度,否则插入将会失败。
🙌 整列复制插入

create table student (id int,name varchar(20));
insert into student values (1,'张三');
insert into student values (2,'李四');
insert into student values (3,'王五');
select * from student;
create table student1 (id int,name varchar(20));
insert into student1 select * from student;
select * from student1;

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)
🙌指定列复制插入

insert into student1 (name) select name from student;
select * from student1;

MySQL表操作:提高数据处理效率的秘诀(进阶)(1)文章来源地址https://www.toymoban.com/news/detail-474778.html

到了这里,关于MySQL表操作:提高数据处理效率的秘诀(进阶)(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL大数据表处理的三种方案,查询效率嘎嘎高

    场景 当我们业务数据库表中的数据越来越多,如果你也和我遇到了以下类似场景,那让我们一起来解决这个问题 数据的插入,查询时长较长 后续业务需求的扩展 在表中新增字段 影响较大 表中的数据并不是所有的都为有效数据 需求只查询时间区间内的 评估表数据体量 我们可

    2024年02月13日
    浏览(36)
  • 三行Python代码,让数据处理速度提高2到6倍

    Python 是机器学习领域内的首选编程语言,它易于使用,也有很多出色的库来帮助你更快处理数据。但当我们面临大量数据时,一些问题就会显现 …… 在默认情况下, Python 程序是单个进程,使用单 CPU 核心执行。而大多数当代机器学习硬件都至少搭载了双核处理器。这意味着

    2023年04月18日
    浏览(32)
  • 数据预处理的人工智能与深度学习:如何提高模型性能

    数据预处理是人工智能(AI)和深度学习(DL)领域中的一个关键环节,它涉及到数据清洗、数据转换、数据归一化、数据增强等多种操作,以提高模型性能。在过去的几年里,随着数据规模的增加和复杂性的提高,数据预处理的重要性得到了广泛认识。本文将从以下几个方面进行

    2024年02月19日
    浏览(54)
  • 【MySQL 数据查询】:提高查询的效率

    前言 ✨ 欢迎来到小K的MySQL专栏,本节将为大家带来 MySQL 数据查询的讲解(基本、分组、排序、聚合、分页、条件查询) 一、基本查询 MySQL数据库使用 SELECT 语句来查询数据 ✨ 1、查询多个字段 以下为 MySQL 数据库中查询数据通用的 SELECT 语法: 查询语句中可以使用一个或者

    2024年02月08日
    浏览(54)
  • 【③MySQL 数据查询】:提高查询的效率

    前言 ✨ 欢迎来到小K的MySQL专栏,本节将为大家带来 MySQL 数据查询的讲解(基本、分组、排序、聚合、分页、条件查询) 一、基本查询 MySQL数据库使用 SELECT 语句来查询数据 ✨ 1、查询多个字段 以下为 MySQL 数据库中查询数据通用的 SELECT 语法: 查询语句中可以使用一个或者

    2024年02月10日
    浏览(43)
  • 深入解析MySQL视图、索引、数据导入导出:优化查询和提高效率

    目录 1. 视图(View): 什么是视图? 为什么要使用视图? 视图的优缺点 1) 定制用户数据,聚焦特定的数据 2) 简化数据操作 3) 提高数据的安全性 4) 共享所需数据 5) 更改数据格式 6) 重用 SQL 语句 示例操作 没使用前 使用后 2. 索引(Index): 什么是索引? 为什么要使用索引?

    2024年02月13日
    浏览(47)
  • 使用MySQL存储过程提高数据库效率和可维护性

    MySQL 存储过程是一种强大的数据库功能,它允许你在数据库中存储和执行一组SQL语句,类似于编程中的函数。存储过程可以大幅提高数据库的性能、安全性和可维护性。本文将详细介绍MySQL存储过程的使用。 MySQL存储过程是一组预编译的SQL语句,它们以一个名称存储在数据库

    2024年02月08日
    浏览(35)
  • AI知识库进阶!三种数据处理方法!提高正确率!本地大模型+fastgpt知识库手把手搭建!22/45

    hi~ 在上一篇,我们成功搭建了本地知识库+大模型的完全体! 在知识星球收到很多朋友的打卡,有各种报错差点崩溃的,也有看到部署成功,开心得跳起来的! 除了自用,还有星球朋友学会搭建,成功接到商单(听说单子还不小)! 不管怎样,酸甜苦辣,总算把它部署了下

    2024年03月11日
    浏览(52)
  • IntelliJ IDEA无公网远程连接Windows本地Mysql数据库提高开发效率

    🔥 博客主页 : 小羊失眠啦. 🎥 系列专栏 : 《C语言》 《数据结构》 《Linux》 《Cpolar》 ❤️ 感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 IDEA作为Java开发最主力的工具,在

    2024年02月05日
    浏览(59)
  • BD Biosciences通过使用Liquid UI优化SAP QM,节省了80%的处理时间,提高了 95% 的数据准确性

    BD 生物科学公司成立于 1897 年,致力于改善患者的治疗效果,并在一个多世纪的时间里始终坚持这一理念,现已涉足诊断、生物科学以及各种医疗设备和仪器系统。 手动验证数据 原因: 使用非自动程序演示和验证数据,容易在不同的交易中出错。用户需要手动计算MB51交易中

    2024年02月15日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包