MySQL-DML之数据表操作

news2025/1/16 6:39:18

文章目录

  • 一. 插入表记录
    • 1. 向表中插入部分字段
    • 2. 向表中插入所有字段,字段的顺序为创建表时的顺序
    • 3. 一次添加多条数据信息
  • 二. 更新表记录
    • 1. 更新所有记录的指定字段
  • 更新符号条件记录的指定字段
    • 2. 更新符号条件记录的指定字段
  • 三. 删除表记录
    • 1. 按条件删除记录
    • 2. 清空记录
  • 四. SQL约束
    • 1. 主键约束
      • ① 添加主键约束
        • Ⅰ. 创建表时,在字段描述处,声明指定字段为主键
        • Ⅱ. 创建表后,指定字段为主键
      • ② 删除主键约束
    • 2. 自动增长
    • 3. 非空约束
    • 4. 唯一约束
    • 5. 默认值约束

数据操作语言:简称DML(Data Manipulation Language)

一. 插入表记录

1. 向表中插入部分字段

格式:insert into 表 (字段1,字段2,字段3…) values(值1,值2,值3…);

insert into  category2(cid, cname) values('c001','电器');

在这里插入图片描述

2. 向表中插入所有字段,字段的顺序为创建表时的顺序

格式:insert into 表 values(值1,值2,值3…);

insert into category2 values('c002','服饰',2);

3. 一次添加多条数据信息

格式:insert into 表 (字段1,字段2,字段3…) values(值1,值2,值3…),(值1,值2,值3…)…;

insert into category2 (cid, cname) values('03','化妆品'),('04','书籍'),('05',null);

格式:insert into 表 values(值1,值2,值3…),(值1,值2,值3…),…;

insert into category2 values('06','玩具',4),('07','蔬菜',5); 

在这里插入图片描述

二. 更新表记录

1. 更新所有记录的指定字段

将所有行的cname改为’家电’

update category2 set cname  = '家电';

更新符号条件记录的指定字段

格式:update 表名 set 字段名=值,字段名=值,… where 条件;
将cid为c001的cname修改为水果

update category2 set cname  = '水果' where cid = 'c001'; 

注意:
1、列名的类型与修改的值要一致.
2、修改值得时候不能超过最大长度.
3、除了数值类型外,其它的字段类型的值必须使用引号引起

2. 更新符号条件记录的指定字段

三. 删除表记录

1. 按条件删除记录

格式:delete from 表名 [where 条件];

删除cid为005的纪录

delete from category where cid = '005‘; 

2. 清空记录

格式:delete from 表名;
格式:truncate table 表名;

清空表数据

delete from category;
truncate category;

注意:
清空表记录和删除表记录的区别:
使用delete删除表记录时,主键自增序列不清零。
使用truncate删除表记录时,主键自增序列清零。

四. SQL约束

1. 主键约束

1、PRIMARY KEY 约束唯一标识数据库表中的每条记录。
2、主键必须包含唯一的值。
3、主键列不能包含 NULL 值。
4、每个表都应该有一个主键,并且每个表只能有一个主键。

遵循原则:
1)主键应当是对用户没有意义的
2)永远也不要更新主键。
3)主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
4) 主键应当由计算机自动生成。

① 添加主键约束

Ⅰ. 创建表时,在字段描述处,声明指定字段为主键

创建表时,在字段描述处,声明指定字段为主键:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Ⅱ. 创建表后,指定字段为主键
alter table person1 add primary key(id);

在这里插入图片描述

② 删除主键约束

如需撤销 PRIMARY KEY 约束,请使用下面的 SQL

alter table persons1 drop primary key ;

在这里插入图片描述

2. 自动增长

我们通常希望在每次插入新记录时,数据库自动生成字段的值。
我们可以在表中使用 auto_increment(自动增长列)关键字,自动增长列类型必须是整型,自动增长列必须为键(一般是主键)。

下列 SQL 语句把 “persons2” 表中的 “id” 列定义为 auto_increment 主键
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
向persons添加数据时,可以不为Id字段设置值,也可以设置成null,数据库将自动维护主键值:

insert into persons2(first_name,last_name) values('Bill','Gates');insert into persons2(id,first_name,last_name) values(null,'Bill','Gates’);

在这里插入图片描述

3. 非空约束

NOT NULL 约束强制列不接受 NULL 值。
NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

下面的 SQL 语句强制 “id” 列和 “last_name” 列不接受 NULL 值:
在这里插入图片描述
在这里插入图片描述

4. 唯一约束

UNIQUE 约束唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
请注意:
每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
在这里插入图片描述
在这里插入图片描述

5. 默认值约束

默认 DEFAULT: 当不填写字段对应的值会使用默认值,如果填写时以填写为准
在这里插入图片描述

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

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

相关文章

mac mini 4 上手指南

文章目录 和 mac 初见购机历程外设配置win 系统 适应 mac 系统一些使用体验mac 快捷键 和 mac 初见 最开始用 mac 是小时候用着刷成 windows 的 MacBook 和好朋友一起打游戏,再后来就是上大学,用朋友的 mac 做一些简单的办公 购机历程 我之前 11月2日…

Apache AGE:基于PostgreSQL的图数据库

Apache AGE(A Graph Extension)是一个基于 PostgreSQL 的图数据库。它以扩展插件的形式提供,可以在利用 PostgreSQL 先进的 SQL 查询功能和事务支持的同时,享受图数据库的灵活性和可扩展性。 Apache AGE 最初由 Bitnine Global In…

关于springBoot+vue项目中配置SSL证书问题

前端可以通过https进行访问 1.前端在访问后端接口时,使用https进行访问,在request.js配置文件中,这个文件是配置axios的基本请求的,在基础请求地址中改为https方式 2.需要在Linux中的nginx中配置ssl证书,具体请参考&…

华为、华三交换机纯Web下如何创关键VLANIF、操作STP参数

华为交换机WEB操作 使用的是真机S5735,目前主流的版本都适用(V1R5~V2R1的就不在列了,版本太老了,界面完全不一样,这里调试线接的console口,电脑的网络接在ETH口) 「模拟器、工具合集」复制整段内…

二分查找(带图详解)

优选算法系列 文章目录 优选算法系列前言一、二分查找的思想二、算法使用小总结 三、代码实现四、二分查找拓展4.1、查找第一次出现的target小总结 4.2、target最后出现的位置小总结 五、代码总结 前言 在这篇博客中,我会给大家分享二分查找及其扩展。 这是链接-&…

【C#】NET 9中LINQ的新特性-CountBy

前言 在 .NET 中,使用 LINQ 对元素进行分组并计算它们的出现次数时,需要通过两个步步骤。首先,使用 GroupBy方法根据特定键对元素进行分类。然后,再计算每个组元素包含个数。而随着 .NET 9 版本发布,引入了一些新特性。其中 LINQ 引入了一种新的方法 CountBy,本文一起来了…

[SWPUCTF 2022 新生赛]funny_php

进入靶场环境 <?phpsession_start();highlight_file(__FILE__);if(isset($_GET[num])){if(strlen($_GET[num])<3&&$_GET[num]>999999999){echo ":D";$_SESSION[L1] 1;}else{echo ":C";}}if(isset($_GET[str])){$str preg_replace(/NS…

2024-10-13-B fd 重定向 缓冲区

1 一切皆文件 1.1 虚拟文件系统 在系统层面&#xff0c;做了一层软件的封装&#xff0c;struct file 里有操作表&#xff08;即函数指针的集合&#xff09;&#xff0c;可以调用底层的读写方法。虚拟文件系统&#xff08;VFS&#xff09;是一种神奇的抽象&#xff0c;它使得…

调整数组顺序使奇数位于偶数前面

题目 输入一个整数数组&#xff0c;调整数组中数字的顺序&#xff0c;使得所有奇数位于数组的前半部分&#xff0c;所有偶数位于数组的后半部分。要求时间复杂度为O(n) 解法 双指针i和j 指针i起点是数组起点&#xff0c;当i检测到偶数时停下。j的起点时数组终点&#xff0c;…

如何使用 Docker Compose 安装 Memos 自托管笔记应用

简介 Memos是一个自托管的开源笔记应用程序&#xff0c;专为个人组织和信息管理而设计。它允许用户高效地创建、存储和管理笔记&#xff0c;提供如Markdown支持、用户友好的界面和注重隐私的设计等功能。Memos可以在各种平台上运行&#xff0c;但使用Docker Compose可以简化部…

详解:HTTP/HTTPS协议

HTTP协议 一.HTTP是什么 HTTP&#xff0c;全称超文本传输协议&#xff0c;是一种用于分布式、协作式、超媒体信息系统的应用层协议。HTTP往往是基于传输层TCP协议实现的&#xff0c;采用的一问一答的模式&#xff0c;即发一个请求&#xff0c;返回一个响应。 Q&#xff1a;什…

小程序项目的基本组成结构

分类介绍 项目根目录下的文件及文件夹 pages文件夹 用来存放所有小程序的页面&#xff0c;其中每个页面都由4个基本文件组成&#xff0c;它们分别是&#xff1a; .js文件&#xff1a;页面的脚本文件&#xff0c;用于存放页面的数据、事件处理函数等 .json文件&#xff1a;…

【uni-app 微信小程序】新版本发布提示用户进行更新

知识准备 uni.getUpdateManager文档介绍 不支持APP与H5&#xff0c;所以在使用的时候要做好平台类型的判断&#xff0c;如何判断&#xff0c;参考条件编译处理多端差异 代码参考 export const updateApp () > {const updateManager uni.getUpdateManager()updateManag…

LabVIEW断路器检测系统

随着电网技术的快速发展&#xff0c;对电力系统的可靠性和安全性要求不断提高&#xff0c;塑壳断路器作为关键的保护设备&#xff0c;其出厂前的检测非常重要。开发了一种基于LabVIEW软件平台开发的塑壳断路器智能脱扣器检测系统&#xff0c;该系统能够有效提高检测的自动化水平…

ASP.NET Core API 前后端分离跨域

环境准备 数据库&#xff1a; sqlserver 2022 后端&#xff1a; vs2022 ASP.NET Core API .net 8 前端&#xff1a; Hbuilderx bootstrap 5.3.0 jquery v3.7.1 bootstrap-table 1.23.5 完整项目代码下载地址 功能 实现 单张表 的 增 删 改 查 创建数据库和表 create data…

Mac M1 安装数据库

1. Docker下载 由于Sqlserver和达梦等数据库&#xff0c;不支持M系列的芯片&#xff0c;所以我们通过docker安装 下载并安装docker: https://www.docker.com/get-started/ 安装完成后&#xff0c;打开docker 2. SQL Server 安装 2.1 安装 打开终端&#xff0c;执行命令 doc…

进程的管理与控制

一、进程与线程 1. 进程 程序&#xff1a;是静态的&#xff0c;就是个存放在磁盘里的可执行文件&#xff0c;就是一系列的指令集合。 进程&#xff08;Process&#xff09;&#xff1a;是指计算机中已执行的程序&#xff0c;是动态的。 &#xff08;1&#xff09;进程的组成…

SQLCipher:SQLite加密工具的实用指南

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;SQLCipher是一个开源工具&#xff0c;用于为SQLite数据库提供透明的数据加密功能&#xff0c;确保数据安全。其工作原理是通过在SQLite的API上增加一层加密层&#xff0c;并使用AES加密算法确保数据在未授权访问…

如何将 JavaWeb 项目部署到云服务器

1. 搭建 Java 部署环境 接下来以 Ubuntu 来进行演示 1.1. apt 包管理工具 apt 就相当于手机上的应用市场 列出所有软件包&#xff1a;apt list 这个命令输出所有包的列表&#xff0c;内容比较多&#xff0c;可以使用 grep 命令过滤输出&#xff1a;apt list |grep "jd…

自动驾驶算法——卡尔曼滤波器平滑感知车道线参数【C++代码实现】

1.算法原理 在工程实践中,由于感知识别到的车道线偶尔存在较大的跳变,导致后端控制算法计算出的控制角度也存在较大的跳变,所以我们需要对感知输入的车道线系数进行平滑处理。 已知卡尔曼滤波算法主要分为以下几大步骤: 感知将车道线以三次螺旋曲线方程 y = c 0 + c 1 x +…