本篇初始表如下:
一、Update 修改
1.1、语法
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET assignment [, assignment] ...
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
接上篇新熊二同学英语没考试,后来英语老师单独给熊二进行了测试,成绩为“60”,这时我们需要把表中熊二的英语成绩由 NIULL 修改为 60,接下来我们演示一下:
1.2、示例
(1) 将光头强的数学变更为80分,英语变更为77分:
update student set Math = 80,English = 77
where name = '光头强';
(2)将熊二的数学成绩更改为原来的二倍:
update student set Math = Math * 2
where name = '熊二';
下图可见:熊二的数学成绩由 30 更改为了 60 。
1.3、注意事项
• 以原值的基础上做变更时,**不能**使用 **math += 30** 这样的语法
• 不加 **where **条件时,会导致全表数据被更新
二、Delete 删除
2.1、语法
DELETE FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]
2.2、示例
(1)由于熊二数学成绩过于低,熊大让熊二回到狗熊岭保护继续森林,我们要删除关于熊二的信息
delete from student
where name = '熊二';
2.3、注意事项
• 执行Delete时不加条件会删除整张表的数据
三、增删查改总结
** 四、**数据库约束
数据库约束是指对数据库表中的数据所施加的规则或条件,用于确保数据的准确性和可靠性。这些约束可以是基于数据类型、值范围、唯⼀性、非空等规则,以确保数据的正确性和相容性
4.1、约束类型
4.2、NOT NULL 非空约束
当定义表时某列不允许为NULL时,可以为列添加非空约束。
NULL 列为 NO:表示当前列不能为空:YES:表示当前列可以为空
此时我们新增元素是,将 id 列设为空:
可以发现,非空列有值时可以正常插入,而设为 NULL 或 不赋值 时都会报 错
4.3、UNIQUE 唯⼀约束
指定了唯⼀约束的列,该列的值在所有记录中不能重复
查看表结构**,Key** 列显示** UNI **表示唯⼀约束
唯一约束列,插入相同元素,会报错,但是若约束列可以为 NULL 时,可以重复插入:
4.4、DEFALUT 默认值约束
DEFAULT 约束用于向列中插入默认值,如果没有为列设置值,那么会将默认值设置到该列
create table text2(
id bigint unique,
name varchar(10),
grade varchar(5) default '大一'
);
向表中添加元素:
注意:虽然指定列为默认约束,当我们指定该列为 **NULL 时,插入后的结果依旧为 NULL **,因为:用户指定的优先级高于默认约束
4.5、PRIMARY KEY 主键约束
** NOY NULL **和 **UNIQUE** 的结合 主键约束的列即是 **唯一的 **也是 **非空的**
相当于使用 NOY NULL 和 UNIQUE 的结合体 :
create table text3(
id bigint unique not null,
name varchar(10)
);
也存在此标记:
一个表中不允许有两个主键,但一个主键可以包含多个列(复合主键)
create table text5(
id bigint,
name varchar(10),
grade varchar(5),
primary key (id,name)
);
上图定义了复合主键,当复合主键中的所有列都相同时,才判定为相同,故复合主键中的单列插入可以相同,保证另一个主键列不同即可:
4.6、CHECK 约束
可以应用于⼀个或多个列,用于限制列中可接受的数据值,从而确保数据的完整性和准确性。
create table text6(
id bigint primary key,
name varchar(10),
sex varchar(5),
check(sex = '男' or '女')
);
可见,若插入的值不可接受,则会插入失败而报错。
版权归原作者 Mr Aokey 所有, 如有侵权,请联系我们删除。