Mysql-03数据表操作、数据操作

本文介绍了如何使用SQL语句进行数据表的操作,包括创建表、查看表结构、删除表,以及数据的新增、修改和删除。强调了主键、自动增长和逻辑删除的概念,提供了多种添加数据的格式,并对比了delete、truncate和drop的区别。
摘要由CSDN通过智能技术生成

七、数据表操作

目标

会使用 SQL 语句实现数据表的新增,查询,删除操作

7.1、创建表

语法格式

-- 创建表
create table 表名(
	字段名 类型 约束,
	字段名 类型 约束
	...
)
-- 查看创建的表
show create table 表名;

举例说明

例:创建学生表,字段要求如下:

姓名(长度为 10)

create table students(
	name varchar(10)
);

例:创建学生表,字段要求如下: 姓名(长度为 10),年龄,身高(保留小数点 2 位)

create table students(
	id int unsigned primary key auto_increment,
-- auto_increment 自动增长
-- unsigned 无符号
-- primary key 主键
	name varchar(20),
	age int usigned,
	height decimal(5,2)
);

扩展:判断表是否存在,若存在自动删除再创建

-- unsigned 无符号
-- primary key 主键
-- auto_increment 自动增长

drop table if exists students;
create table students(
	id int unsigned primary key auto_increment,
	name varchar(10),
	age int unsigned,
	height decimal(5,2)
);

7.2、查看表结构

语法格式

desc 表名;

举例说明

desc students;

7.3、删除表

语法格式

格式一:drop table 表名;
格式二:drop table if exists 表名;

举例说明

drop table students;
drop table if exists students;

八、数据操作-增删改

目标

        会使用 SQL 语句实现数据的新增、修改、删除操作

8.1、添加数据

📌 添加一行数据

格式一: 所有字段设置值,值的顺序与表中的字段顺序对应

  • 说明:主键列是自动增长,插入时需要占位,通常使用 0 或者 default 或者 null 来占位,后以实际 数据为准

    insert into 表名 values(...)
    

    例:插入一个学生,设置所有字段的信息

    insert into students values(0,'亚瑟',22,177.56);
    

格式二: 部分字段设置值,值的顺序与给出的字段顺序对应

insert into 表名(字段一,...) values(值 1,...);

例:插入一个学生,只设置姓名,身高

insert into students(name,height) values('turrander',1.68);

📌 添加多行数据

方式一:写多条 insert 语句,语句之间使用英文分号隔开

insert into students(name) values('萧炎');
insert into students(name) values('萧熏儿');
insert into students values(0,'美杜莎',27,168);

方式二:写入一条 insert 语句,设置多条数据,数据之间用英文逗号隔开

-- 格式一:insert into 表名 values(...)(...)(...)...
-- 例:插入多个学生,设置所有的字段信息
insert into students values(0,'亚瑟',23,175.56),(0,'taozi',27,150.00);
-- 格式二:insert into 表名(列 1,...) values(值 1,...)(值 1,...)...
-- 例:插入多个学生,只设置姓名
insert into students values(0,'亚瑟',23,175.56),(0,'taozi',27,150.00);
insert into students(name,height) values('zhangsna',1.1),('lisi',1.2);
insert into students(name) values('zhangsna'),('lisi'),('wangwu');

8.2、修改字段值

语法格式

update 表名 列 1=值 1,列 2=值 2...where 条件

注意:where 条件不能省略,否则会修改整列数据

举例说明

   例:修改 ID 位 5 的学生数据,姓名修改位 狄仁杰,年龄修改为 20

update students set name='狄仁杰',age=20 where id=5;

8.3、删除表记录

语法格式

格式一:delete from 表名 where 条件;

举例说明

例:删除 ID 为 6 的学生数据

delete from students where id=6;

8.4、删除扩展

8.4.1、逻辑删除

对于重要的数据,不能轻易执行 delete 语句进行删除。因为一旦删除,数据无法恢复,所以有时间可以进行逻辑删除

说明:所谓逻辑删除,就是通过某一特定字段的特定值表示数据是删除或未删除

  1. 给表添加字段,代表数据是否删除,一般起名为 isdelete,0 代表未删除,1 代表删除,默认值为 0
  2. 当要删除某条数据时,只需要设置这条数据的 isdelete 字段为 1
  3. 以后在查数据时,只查询 isdelete 为 0 的数据

# 例:

-- 1、 给学生表添加字段(isdelete),默认值为 0,
-- 如果表中已经有数据,需要把所有数据的 isdelete 字段更改为 0
alter table students add isdelete int unsigned default(0);
update students set isdelete=0;
-- 2、删除id为1的学生
updalete student set isdelete=1 where id=1;
-- 3、 查询未删除数据
selete * from students where isdelete=0;

8.4.2、删除表数据,保留表结构

truncate table students

# 例: 删除学生表的所有数据

truncat table students;

drop table 表名(删除表,所有数据和表结构都删除)

# 例: 删除学生表

drop table students;

8.4.3、truncate、delete、drop 的区别

  1. delete 删除数据时,即使删除所有数据,其中自增长字段不会从 1 开始
  2. truncate 删除数据时,其中的自增长字恢复从 1 开始
  3. drop 时删除表,所有数据和表结构都删掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值