当前位置: 首页 > news >正文

MySQL-DML之数据表操作

文章目录

  • 一. 插入表记录
    • 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.mrgr.cn/news/79618.html

相关文章:

  • 基础学习:(5)不同卷积:transposed convolution,deconvolution,dilated convolution
  • Python爬虫之Scrapy框架基础入门
  • SpringBoot 手动实现动态切换数据源 DynamicSource (中)
  • 【Sentinel Go】新手指南、流量控制、熔断降级和并发隔离控制
  • Next.js 系统性教学:深入理解缓存与数据优化策略
  • 虚幻引擎生存建造系统
  • 递归算法题(1)
  • C++小小复习一下
  • SpringBoot3整合MyBatis
  • 2020 年“泰迪杯”数据分析职业技能大赛A 题教育平台的线上课程智能推荐策略
  • NanoLog起步笔记-4-Server端的两个线程
  • BottomNavigation
  • NanoLog起步笔记-1
  • ubuntu16.04部署dify教程
  • ESP32开发 云调试
  • 加强版第十二章 开闭操作
  • 协程设计原理与实现
  • QT 多级嵌套结构体,遍历成员--半自动。<模板+宏定义>QTreeWidget树结构显示
  • 我们来学mysql -- 事务并发之不可重复读(原理篇)
  • Text2SQL(NL2sql)对话数据库:设计、实现细节与挑战
  • 【论文阅读】相似误差订正方法在风电短期风速预报中的应用研究
  • NanoLog起步笔记-7-log解压过程初探
  • 【开源】A063—基于Spring Boot的农产品直卖平台的设计与实现
  • Vue3小兔鲜电商项目
  • 【人工智能基础08】卷积神经网络习题:卷积神经网络计算、图像填充、卷积的表达与设计
  • 【优选算法 位运算】位运算算法入门详解:位运算小专题