【JavaWeb之旅二】MySQL数据库之SQL语句中的DML语句与DQL语句

发布于:2022-12-25 ⋅ 阅读:(491) ⋅ 点赞:(0)

SQL语句中的DML语句与DQL语句

1.SQL语句之DML

DML主要是对数据进行增(insert)删(delete)改(update)操作。

1.1DML常见的语法

1.添加数据常见语句

语句(不区分大小写) 作用
insert into tablename(rowname1,rowname2,…) values(value1,value2,…); 给指定的列添加数据
insert into tablename values (value1,value2,…); 给全部列添加数据
insert into tablename(rowname1,rowname2,…) values(value1,value2,…),(value1,value2,…)…; 批量给指定列添加多个数据
insert into tablename values (value1,value2,…); 批量给全部列添加多个数据
select * from tablename; 显示表中的所有数据

2.练习

#在students数据表中给指定列(id,name,tel)列添加对应的数据
#在students数据表中给所有的列添加对应的数据
#在students数据表中给所有的列批量添加对应的数据

image-20220907110040714

2.修改、删除数据常用语法

#1.修改
update tablename set rowname1=value1, rowname2=value2, ...[where condition]
#例如: update students set gender="女" where name="小李";
#[]的内容表示可以省略,如果不加条件所有行都修改
#2.删除
delete from tablename [where condition]
#例如:delete from students where name = '智能建造小硕';

常见的条件所使用的的运算符:

image-20220907224622138

可以去练习一下。

2.SQL语句之DQL

DQL常用来查询数据库表中的数据,从数据库中调取数据并进行进行可视化前端展示。

DQL查询的完整语法:

SELECT 
    字段列表
FROM 
    表名列表 
WHERE 
    条件列表
GROUP BY
    分组字段
HAVING
    分组后条件
ORDER BY
    排序字段
LIMIT
    分页限定

2.1查询语法语句

语句(不区分大小写) 作用
select rowname from tablename; 查询多个字段
select distinct rowname from tablename; 查询去除重复记录后的结果
select * from tablename; 显示表中的所有数据
select rowname from tablename where condition; 指定条件查询
like关键字,可以使用通配符进行占位:(1)_ : 代表单个任意字符(2)% : 代表任意个数字符。例如select * from students where name like ‘陈%’;查询陈性的所有学生。 模糊查询
select rowname from tablename order by 排序字段1 (排序方式1), 排序字段2 (排序方式2)…;其中排序方式分为ASC(升序)、DESC(降序)。 排序语法

练习:

#查询学生信息,以id进行升序排序,如果id一样,以score降序排序
select name from students order by id ASC,score DESC;

image-20220907221944366

2.2聚合函数及语句

常见的聚合函数:

函数名 作用
count(rowname) 统计项目(不计入null)
max(rowname) 最大值
min(rowname) 最小值
sum(rowname) 求和
avg(rowname) 平均值

使用语句

语句(不区分大小写) 作用
select 聚合函数名(rowname) from tables; 统计表中某列的数量

可以自行练习一下:例如计算表中学生的数量:select count(id) from students。

2.3 分组和分页查询

语句:

语句(不区分大小写) 作用
select rowname from tablename [where 分组前条件限定] group by rowname [having 分组后过滤条件]; 分组进行查询
select rowname from tablename limit strat_index ,条件数目; 分页进行查询

where和having区别:

  • 执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。

  • 可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。

练习:

#查询学生姓名和人数,要求将id不为空的学生以gender进行分组并且分组后的平均score要大于90
select name,count(name) from students where id is not null  group by gender having avg(score)>90;
#每页显示两条学生姓名
select name from students limit 0,2;

image-20220907231554660

image-20220907231916249
自学javaweb中所记录的课程笔记,记录学习过程。
参考资料:https://www.bilibili.com/video/BV1Qf4y1T7Hx?p=8&vd_source=c17a6596481e29f0ffac1a21a026abff

欢迎关注公众号【智能建造小硕】(分享计算机编程、人工智能、智能建造、日常学习、科研和写作经验等,欢迎大家关注交流。)

本文含有隐藏内容,请 开通VIP 后查看