2025年增删改查(数据库语句增删改查)

增删改查(数据库语句增删改查)p strong 1 增 strong p 注 先创建一个表添加上需要的字段如 create table student 2 id int primary key not null name varchar 20 age int unsigned 表中包含了 id 姓名 年龄 接下来我门要对里面的数据进行操作

大家好,我是讯享网,很高兴认识大家。



 <p><strong>1.增</strong></p> 

讯享网

注:先创建一个表添加上需要的字段如:create table student_2(id int primary key not null,name varchar(20),age int unsigned );,表中包含了id、姓名、年龄。接下来我门要对里面的数据进行操作,比如添加这三个的具体数据。

1.1 在对应表中插入数据 :insert into 表名 [(字段名1,字段名2,字段名3)] values (字段对应的值1,字段对应的值2,对应的值3);

例如:insert into student_2 (id,name,age) values(1004,‘zzzzy’,24);


讯享网

一开始创建的表显示为空,输入命令后出现内容。

另外可以使用简化版,如:insert into stu values(1111,‘王伟’,22);


 

2.改

update 表名 set 字段名1=新的数据值,字段名2=新的数据值 [where 条件];

 当只存在id(id不能为空)需要修改该id的其他数据时,例如此时id为1014的数据其他为空值

使用updata   set  where,例如update stu set name=‘黑猴’,age=22 where id=1014;

修改成功!

3.删

删除分为删除某单个数据和批量删除表的数据;

删除某一个;delete from 表名 [where 约束条件];

如删除 delete from stu where name=‘鸭鸭’;

批量删除,如删除id在1100以下的数据:delete from stu where id&lt;1100;

删除前:

删除后:

删除整个表的数据:DELETE FROM stu;;———-删除表里的数据,但是表仍然存在,或者TRUNCATE TABLE stu;——–清空表里的数据,但表仍然存在,而且不能加条件;

例如;delete from stu;

4.查

注:我们需要导入三个互相有关联的数据库,这里使用可视化工具Navicat进行前置准备,如:先创建三个表:

代码:

create table students(
    id int auto_increment primary key,
    name varchar(20),
    age int,
    height float,
    gender char(10),
    cls_id int,
    is_delete int
);







create table teachers(
    id int primary key,
    name varchar(20)
);


create table classes(
    id int primary key,
    teacher_id int,
    cls_content varchar(100),
    cls_date datetime,
    name varchar(50)
);





再对三个表插入数据:

代码:

学生表(students):

INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (1, ‘小明’, 18, 180, ‘女’, 1, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (2, ‘小月月’, 18, 180, ‘女’, 2, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (3, ‘彭于晏’, 29, 185, ‘男’, 1, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (4, ‘刘德华’, 59, 175, ‘男’, 2, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (5, ‘黄蓉’, 38, 160, ‘女’, 1, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (6, ‘凤姐’, 28, 150, ‘保密’, 2, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (7, ‘王祖贤’, 18, 172, ‘保密’, 1, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (8, ‘周杰伦’, 36, NULL, ‘男’, 3, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (9, ‘程坤’, 27, 181, ‘男’, 2, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (10, ‘刘亦菲’, 25, 166, ‘男’, 2, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (11, ‘猪猪侠’, 33, 162, ‘保密’, 3, 1);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (12, ‘静香’, 12, 180, ‘女’, 2, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (13, ‘郭靖’, 12, 170, ‘男’, 3, 0);
INSERT INTO `students` (`id`, `name`, `age`, `height`, `gender`, `cls_id`, `is_delete`) VALUES (14, ‘周杰’, 34, 176, ‘女’, 1, 0);












教师表(teachers):

INSERT INTO `teachers` (`id`, `name`) VALUES (1, ‘赵老师’);
INSERT INTO `teachers` (`id`, `name`) VALUES (2, ‘孙老师’);
INSERT INTO `teachers` (`id`, `name`) VALUES (3, ‘李老师’);
INSERT INTO `teachers` (`id`, `name`) VALUES (4, ‘周老师’);


课程表(classes):

INSERT INTO `classes` (`id`, `teacher_id`, `cls_content`, `cls_date`, `name`) VALUES (1, 1, ‘班级学生有较强的学习能力’, ‘2024-10-01 00:00:00’, ‘python_01期’);
INSERT INTO `classes` (`id`, `teacher_id`, `cls_content`, `cls_date`, `name`) VALUES (2, 2, ‘班级学生比较顽皮’, ‘2024-11-01 00:00:00’, ‘python_02期’);
INSERT INTO `classes` (`id`, `teacher_id`, `cls_content`, `cls_date`, `name`) VALUES (3, 2, ‘数据结构班’, ‘2024-11-01 00:00:00’, ‘data_struct_01期’);

完成上序操作后进行一些基本查询(在Navicat进行操作,也可以在终端是进行操作):

(1)查询全部字段的全部数据:select * from 表名;

(2)查询部分字段的全部数据:select 字段名1,字段名2……from 表名;

(3)根据条件查询数据:select * from 表名 where 条件;

(4)多个条件的查询:条件与条件之间可以用and、or、in、between…and…来进行条件的连接

例如:

也可以在前面加上not表示否定,如:select * from students where id in (1,5,6,10);

(5)模糊查询:select * from 表名 where 字段名 like ‘值’;

(6)去重:select distinct 字段名 from 表名;

如查询一共有几个班级:select distinct cls_id from students;

(7)按照单个字段排序:select * from 表名 order by 字段名 asc/desc;(asc升序-默认,desc降序)

按照多个字段排序:select * from 表名 order by 字段名1 asc/desc,字段名2 asc/desc;

有条件的排序:select * from 表名 where 条件 order by 字段名 asc/desc;

(8)限制查询结果的数量:limit

示例:只看前2条学生信息

select * from students limit 2;

连接查询:(涉及到两个表以上,在查询的时候至少要有一个必备的连接条件,这个必备的条件就是两个表共有的那个字段相等,而且这个字段一定在一个表里是主键,在另一个表里是外健)

1、内连接

(1)显示内连接:select 字段 from 表名1 inner join 表名2 on 两个表连接的条件 [where 条件];

示例:查看学生所在班级

select s.name,c.name from students s inner join classes c on s.cls_id=c.id;

(2)隐式内连接:select 字段 from 表名1,表名2 where 两个表连接的条件 [and 其他查询的条件];

示例:查看学生所在班级

select s.name as ‘名字’,c.name as ‘班级’ from students s, classes c where s.cls_id = c.id;

2、外连接

(1)左外连接:select 字段 from 表名1 left join 表名2 on 两个表连接的条件 [where 条件];——左表的数据全部查询出来,右表符合条件的查询出来

示例:查看老师所在班级(以班级为主,没有班级就没有对应的老师)

select c.name,t.name from classes c left join teachers t on c.teacher_id = t.id;

(2)右外连接:select 字段 from 表名1 right join 表名2 on 两个表连接的条件 [where 条件];——右表的数据全部查询出来,左表符合条件的查询出来

示例:查看老师所在班级(主要强调老师)

select classes.name,teachers.name from classes right join teachers on classes.teacher_id = teachers.id;

聚合函数查询:

count()-计数 sum()-求和 max()-最大值 min()-最小值 avg()-平均值

select 聚合函数名(字段名) from 表名 [where 条件];

示例:查询班级学生的平均身高

select avg(height) as ‘平均身高’ from students;

select 分组的字段名,聚合函数名(字段名) from 表名 [group by 分组的字段名];

示例:查询班级有多少同学

select count(*) as ‘学生总数’ from students;

子查询:查询嵌套查询(多个表连接查询)

select * from 表名 where 字段名=(select 字段名 from 表名);——-子查询的结果只有一个值

示例:查看猪猪侠所在班级的所有同学

select * from 表名 where 字段名=any(select 字段名 from 表名);——–子查询的结果有多个值,等于其中的任意一个值

示例:查看赵老师所带的学生信息

select * from 表名 where 字段名&gt;all(select 字段名 from 表名);——–子查询的结果有多个值,大于所有值

示例:查看学生所在班级

select * from 表名 where exists (select 字段名 from 表名);——子查询如果有查询的结果,外查询就执行

示例:查看存在无老师的班级表

没有无老师所以不删除


小讯
上一篇 2025-05-22 07:11
下一篇 2025-06-11 22:16

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/200535.html