当前位置:网站首页 > 数据科学与大数据 > 正文

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



1.增

注:先创建一个添加上需要的字段如: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<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 字段名>all(select 字段名 from 表名);--------子查询的结果有多个值,大于所有值

示例:查看学生所在班级

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

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

没有无老师所以不删除

到此这篇增删改查(数据库语句增删改查)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 大数据算法有哪几种(大数据算法有哪些)2025-05-25 20:09:06
  • pymysql 查询数据(pymysql查询出来的数据格式)2025-05-25 20:09:06
  • druid数据库连接池中断重连(druid数据库连接池不释放)2025-05-25 20:09:06
  • 自动驾驶数据(自动驾驶数据标注教学)2025-05-25 20:09:06
  • sqlldr导入数据不全(sqlldr导入数据比较慢)2025-05-25 20:09:06
  • 数据中台建设思路(数据中台建设方案)2025-05-25 20:09:06
  • 数据库课程(数据库课程表怎么建)2025-05-25 20:09:06
  • 微服务 配置中心 数据库(微服务的配置中心)2025-05-25 20:09:06
  • 数据库常用命令增删改查(数据库增删改查指令)2025-05-25 20:09:06
  • orecal数据库区分大小写吗(oralcal数据库)2025-05-25 20:09:06
  • 全屏图片