MySQL-DML之数据表操作

文章目录

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

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

一. 插入表记录

1. 向表中插入部分字段

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

powershell 复制代码
insert into  category2(cid, cname) values('c001','电器');

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

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

powershell 复制代码
insert into category2 values('c002','服饰',2);

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

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

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

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

powershell 复制代码
insert into category2 values('06','玩具',4),('07','蔬菜',5); 

二. 更新表记录

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

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

powershell 复制代码
update category2 set cname  = '家电';

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

格式:update 表名 set 字段名=值,字段名=值,... where 条件;

将cid为c001的cname修改为水果

powershell 复制代码
update category2 set cname  = '水果' where cid = 'c001'; 

注意:

1、列名的类型与修改的值要一致.

2、修改值得时候不能超过最大长度.

3、除了数值类型外,其它的字段类型的值必须使用引号引起

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

三. 删除表记录

1. 按条件删除记录

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

删除cid为005的纪录

powershell 复制代码
delete from category where cid = '005'; 

2. 清空记录

格式:delete from 表名;

格式:truncate table 表名;

清空表数据

powershell 复制代码
delete from category;
truncate category;

注意:

清空表记录和删除表记录的区别:

使用delete删除表记录时,主键自增序列不清零。

使用truncate删除表记录时,主键自增序列清零。

四. SQL约束

1. 主键约束

1、PRIMARY KEY 约束唯一标识数据库表中的每条记录。

2、主键必须包含唯一的值。

3、主键列不能包含 NULL 值。

4、每个表都应该有一个主键,并且每个表只能有一个主键。
遵循原则:

1)主键应当是对用户没有意义的

2)永远也不要更新主键。

3)主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。

4) 主键应当由计算机自动生成。

① 添加主键约束

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

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


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

② 删除主键约束

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

powershell 复制代码
alter table persons1 drop primary key ;

2. 自动增长

我们通常希望在每次插入新记录时,数据库自动生成字段的值。

我们可以在表中使用 auto_increment(自动增长列)关键字,自动增长列类型必须是整型,自动增长列必须为键(一般是主键)。

下列 SQL 语句把 "persons2" 表中的 "id" 列定义为 auto_increment 主键


向persons添加数据时,可以不为Id字段设置值,也可以设置成null,数据库将自动维护主键值:

powershell 复制代码
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: 当不填写字段对应的值会使用默认值,如果填写时以填写为准

相关推荐
3***g2056 分钟前
redis连接服务
数据库·redis·bootstrap
m0_5981772314 分钟前
SQL 方法函数(1)
数据库
oMcLin15 分钟前
如何在Oracle Linux 8.4上通过配置Oracle RAC集群,确保企业级数据库的高可用性与负载均衡?
linux·数据库·oracle
信创天地15 分钟前
核心系统去 “O” 攻坚:信创数据库迁移的双轨运行与数据一致性保障方案
java·大数据·数据库·金融·架构·政务
胖咕噜的稞达鸭19 分钟前
进程间的通信(1)(理解管道特性,匿名命名管道,进程池,systeam V共享内存是什么及优势)重点理解代码!
linux·运维·服务器·数据库
德彪稳坐倒骑驴22 分钟前
Sqoop入门常用命令
数据库·hadoop·sqoop
资深web全栈开发23 分钟前
pg on delete 策略探讨
数据库·pg
玖日大大23 分钟前
Milvus 深度解析:开源向量数据库的技术架构、实践指南与生态生态
数据库·开源·milvus
雪域迷影26 分钟前
Node.js中使用node-redis库连接redis服务端并存储数据
数据库·redis·node.js
W001hhh1 小时前
260111
java·数据库