MySQL-DML之数据表操作

文章目录

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

数据操作语言:简称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约束

① 主键约束primary key,主键用于唯一地标识表中的每一条记录,所以主键不允许出现重复,也不允许出现空值。
② 默认值约束default, 默认值约束用来指定某列的默认值。
③ 非空约束not null,指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。
④ 唯一约束unique key,是指所有记录中字段的值不能重复出现,可以为null。
⑤ 自动增长auto_increment,数据库自动生成字段的值,自动增长列类型必须是整型,自动增长列必须为键(一般是主键)。
⑥ 外键约束foreign key,用来在两个表的数据之间建立链接,它可以是一列或者多列。

primary key主键,主键用于唯一地标识表中的每一条记录,所以主键不允许出现重复,也不允许出现空值,绝对唯一能够区分数据的东西在数据库中称之为主键,一个表里只能有一个主键,但是这个主键可以由多个共同的字段组成。比如,人的身份证号,身份证号不能重复也不能为空,可以区别14亿人,如果用名字或者年龄区分一个人大概率都会重复,所以报身份证号作为主键,快捷方便。
default默认值,默认值在创建数据表时 , 给指定字段添加default默认约束并设置默认值 , 在添加记录时如果该列未指定值 , 就会按照默认值填充,比如,建立一个消防队报名表,用于记录报名的消防队员,在表中设立一个性别字段,默认值设置为”男“,因为通常来说消防救援活动对体力和爆发力要求较高,男性较为合适,所以在预设默认字段值的时候,设置为男性。
not null非空约束,对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错。还是建立一个消防队报名表,在表中设立一个年龄字段,此字段必须填写,否则此条数据无法录入。
unique key唯一性约束,是指所有记录中字段的值不能重复出现,但可以为null。比如,建立某个班级学员座位表,其中包含学员学号、座位号、姓名等字段,学员的学号在一所学校是唯一的,所以学号作为主键,座位号也是唯一的,但是座位号并不能标识一名学生,因为学生可以换座位,所以每个学生的座位号可以设置为unique key,也就是此键的值要唯一,但是不作为主键标识一整条数据。
foreign key外键约束,如下表所示,员工表的外键dep_id关联dep的id,通过此种方式可以通过dep表关联emp,即通过emp表的dep_id查询到其所属部门。

create table dep(id int primary key auto_increment,dep_name char(10),dep_comment char(60)
);create table emp(id int primary key auto_increment,name char(16),gender enum('male','female') not null default 'male',dep_id int,foreign key(dep_id) references dep(id)on update cascadeon delete cascade
);

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 约束。

主键primary key约束和唯一性unique key约束区别,相同点是字段的值都不允许重复,不同点为主键不可以为空,唯一性约束可以为空,从作用上来说,主键可以唯一性的标识一条数据,而唯一性约束通常不用来唯一性标识一条数据。

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

5. 默认值约束

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

6. 外键约束

详见MySQL-DQL之数据多表操作

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Exp 智能协同管理系统前端首页框架开发

一、 需求分析 本案例的主要目标是开发一个智能学习辅助系统的前端界面,涵盖以下功能模块: 首页:显示系统的总体概览和关键功能介绍。 班级学员管理:实现班级管理和学员管理。 系统信息管理:管理部门和员工信息。 …

5G中的ATG Band

Air to Ground Networks for NR是R18 NR引入的。ATG很多部分和NTN类似中的内容类似。比较明显不同的是,NTN的RF内容有TS 38.101-5单独去讲,而ATG则会和地面网络共用某些band,这部分在38.101-1中有描述。 所以会存在ATG与地面网络之间的相邻信…

MongoDB与阿里云庆祝合作五周年,展望AI赋能新未来

12月3日,在印尼举行的阿里云合作伙伴大会2024上,MongoDB荣膺阿里云“2024技术创新成就奖”,该奖项旨在表彰与阿里云保持长期稳定合作,通过深度技术融合,在产品技术创新、行业区域深耕等领域取得卓越成就的伙伴。自2019…

未来已来:人工智能如何重塑我们的生活与工作

引言 未来的生活和工作场景正从想象走向现实。想象一下,一个清晨,语音助手已经为你安排好一天的任务,自动驾驶汽车准时送你上班,智能冰箱提醒你需要补充的食材。曾经只存在于科幻小说中的场景,如今正在我们的身边实现。…

苹果全家桶接入ChatGPT,近屿智能邀您共绘AI蓝图

北京时间12月12日凌晨,OpenAI开启了备受瞩目的第五天技术直播。宣布了一个令人振奋的消息:苹果的iPhone、iPad、Mac以及智能助手Siri可以原生使用ChatGPT。 这一合作无疑为生成式AI赛道注入了新的活力,作为全球科技行业的巨头,苹果…

企业级日志分析系统ELK之ELK概述

ELK 概述 ELK 介绍 什么是 ELK 早期IT架构中的系统和应用的日志分散在不同的主机和文件,如果应用出现问题,开发和运维人员想排 查原因,就要先找到相应的主机上的日志文件再进行查找和分析,所以非常不方便,而且还涉及…

安全攻击平台介绍

目录 XSS攻击平台 Attack API BeEF XSS-Proxy 漏洞平台 cnvd 阿里云漏洞库 攻防演练平台 XCTF 攻防平台 零日靶场(0ops) 安恒靶场(赛宁安全) XSS攻击平台 XSS Payload如此强大,为了使用方便,有安…

计算机毕业设计Python+Vue.js游戏推荐系统 Steam游戏推荐系统 Django Flask 游 戏可视化 游戏数据分析 游戏大数据 爬虫 机

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

【电机控制器】FM33LF015芯片——FLASH模拟EEPROM

【电机控制器】FM33LF015芯片——FLASH模拟EEPROM 文章目录 [TOC](文章目录) 前言一、概述二、代码三、实验四、参考资料总结 前言 使用工具: 1.ARM仿真器/J-OBV2仿真器 提示:以下是本篇文章正文内容,下面案例可供参考 一、概述 二、代码 …

算法日记48 day 图论(拓扑排序,dijkstra)

今天继续图论章节,主要是拓扑排序和dijkstra算法。 还是举例说明。 题目:软件构建 117. 软件构建 (kamacoder.com) 题目描述 某个大型软件项目的构建系统拥有 N 个文件,文件编号从 0 到 N - 1,在这些文件中,某些文件…

物联网安全-ARMv8-M Trustzone 实操

前言 本文针对ARMv8m架构M23/M33 MCU安全特性使用进行介绍,以nxp LPC55xx系列和STM32L5xx系列为例,为大家阐述如何使用Trustzone技术提高物联网设备安全性,适合有一定平台安全基础的物联网设备开发人员、安全方案开发人员。 背景 为了提升平台安全性,ARM推出了ARMv8m架构…

若依集成Uflo2工作流引擎

文章目录 1. 创建子模块并添加依赖1.1 新建子模块 ruoyi-uflo1.2 引入 Uflo2 相关依赖 2. 配置相关 config2.1 配置 ServletConfig2.2 配置 UfloConfig2.3 配置 TestEnvironmentProvider 3. 引入Uflo配置文件4. 启动并访问 Uflo2 是由 BSTEK 自主研发的一款基于 Java 的轻量级工…

linux启动流程

linux 启动详细流程 启动流程主要分为四个阶段:BIOS与UEFI->bootloader->kernel->busybox()init,下面从这四个方面展开 BIOS与UEFI 由于计算机启动是一个很矛盾的过程,即必须先运行程序,然后计算机才能启动,但是计算机不…

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 多图推理

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 多图推理 flyfish 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_LoRA配置如何写 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_单图推理 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_原模型_单图推理 基于Q…

【1211更新】腾讯混元Hunyuan3D-1文/图生3D模型云端镜像一键运行

目录 项目介绍 显存占用 11月21 新增纹理烘焙模块Dust3R 烘焙相关参数: AutoDL云端镜像 启动说明 标准模型下载 【1212更新】腾讯混元Hunyuan3D-1文图生3D模型云端镜像一键运行 项目介绍 https://github.com/Tencent/Hunyuan3D-1 腾讯混元 3D 生成模型,支持…

大数据笔记之flink-cdc实时同步数据

大数据笔记之flink-cdc实时同步数据(mysql -->doris) 一、基本概念 Flink CDC 是一个基于流的数据集成工具,旨在为用户提供一套功能更加全面的编程接口(API)。 该工具使得用户能够以 YAML配置文件的形式,优雅地定义其 ETL&…

【Qt】qt基础

目录 一、使用Qt Creator创建qt项目 二、项目文件解析 三、Qt中创建图形化界面的程序的两种方法 四、对象树 五、Qt中处理打印乱码问题的利器:qDebug() 一、使用Qt Creator创建qt项目 1.选择项目模板 选中第一类模板Application(Qt应用程序,包含普…

MySQL(五)--- 事务

1、CURD操作不加控制时,可能会出现什么问题 即:类似于线程安全问题,可能会导致数据不一致问题。 因为,MySQL内部本身就是多线程服务。 1.1、CURD满足什么属性时,才能避免上述问题 1、买票的过程得是原子的吧。 2、买票互相应该不能影响吧。 3、买完票应该要永久有效吧。…

国科大智能设备安全-APK逆向分析实验

APK逆向分析实验 使用APK常用逆向分析工具,对提供的移动应用程序APK文件进行逆向分析,提交逆向后代码和分析报告。具体任务如下: 任务一:安装并熟悉Apktool、Jadx等APK常用逆向工具的使用方法,对提供的Facebook Updat…

欧拉计划 Project Euler(16-20)题解

欧拉计划16-20 pro 16pro17pro18pro19pro20 pro 16 思路 大数乘法模拟即可 #include <bits/stdc.h>using namespace std;using ll long long;const int N 5005; // 1366 // 2^1000 1071508607186267320948425049060001810561404811705533607443750388370351051124936…