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

相关推荐
2301_813599551 小时前
Go语言怎么做秒杀系统_Go语言秒杀系统实战教程【实用】
jvm·数据库·python
NCIN EXPE6 小时前
redis 使用
数据库·redis·缓存
MongoDB 数据平台6 小时前
为编码代理引入 MongoDB 代理技能和插件
数据库·mongodb
极客on之路6 小时前
mysql explain type 各个字段解释
数据库·mysql
代码雕刻家6 小时前
MySQL与SQL Server的基本指令
数据库·mysql·sqlserver
lThE ANDE6 小时前
开启mysql的binlog日志
数据库·mysql
yejqvow126 小时前
CSS如何控制placeholder文字的颜色_使用--placeholder伪元素
jvm·数据库·python
oLLI PILO7 小时前
nacos2.3.0 接入pgsql或其他数据库
数据库
m0_743623927 小时前
HTML怎么创建多语言切换器_HTML语言选择下拉结构【指南】
jvm·数据库·python