DML、DQL-数据操作和查询

查询语句

查询所有学生信息

SELECT * FROM stu;

添加数据

给指定列添加数据
INSERT INTO stu (id, name) VALUES (1, '张三');
给所有列添加数据
INSERT INTO stu (id, name, sex, birthday, score, email, tel, status) VALUES
    (3, '天一', '男', '2002-03-02', 79.95, '75767247@qq.com', '13746363', 3),
    (3, '天一', '男', '2003-05-18', 99.99, '567334247@qq.com', '12463563', 3),
    (3, '天一', '男', '2003-05-18', 99.99, '567334247@qq.com', '12463563', 3);

修改数据

更新学生性别
UPDATE stu SET sex = '女' WHERE name = '张三';
更新学生生日和分数
UPDATE stu SET birthday = '1999-12-12', score = 66.66 WHERE name = '张三';

删除数据

删除姓名为张三的学生记录
DELETE FROM stu WHERE name = '张三';

查询语句

基础查询

查询姓名和年龄两列
SELECT name, age FROM stu;
查询所有列的数据
SELECT * FROM stu;
查询地址信息
SELECT address FROM stu;
去除重复记录
SELECT DISTINCT address FROM stu;
查询姓名、数学成绩和英语成绩(起别名)
SELECT name, math AS 数学成绩, english AS 英语成绩 FROM stu;

条件查询

查询年龄大于20岁的学员信息
SELECT * FROM stu WHERE age > 20;
查询年龄大于等于20岁的学员信息
SELECT * FROM stu WHERE age >= 20;
查询年龄大于等于20岁并且小于等于30岁的学员信息
SELECT * FROM stu WHERE age BETWEEN 20 AND 30;
查询入学日期在’1998-09-01’到’1999-09-01’之间的学员信息
SELECT * FROM stu WHERE hire_date BETWEEN '1998-09-01' AND '1999-09-01';
查询年龄等于18岁的学员信息
SELECT * FROM stu WHERE age = 18;
查询年龄不等于18岁的学员信息
SELECT * FROM stu WHERE age != 18;
查询年龄等于18岁或者等于20岁或者等于22岁的学员信息
SELECT * FROM stu WHERE age IN (18, 20, 22);
查询英语成绩为NULL的学员信息
SELECT * FROM stu WHERE english IS NULL;

模糊查询

查询姓’马’的学员信息
SELECT * FROM stu WHERE name LIKE '马%';
查询第二个子是’花’的学员信息
SELECT * FROM stu WHERE name LIKE '_花%';
查询名字中包含’德’的学员信息
SELECT * FROM stu WHERE name LIKE '%德%';

排序查询

按年龄升序排列学生信息
SELECT * FROM stu ORDER BY age ASC;
按数学成绩降序排列学生信息
SELECT * FROM stu ORDER BY math DESC;
按数学成绩降序排列,如果数学成绩一样则按英语成绩升序排列
SELECT * FROM stu ORDER BY math DESC, english ASC;

聚合函数是用于在数据库中进行统计和计算的函数。下面是一些常用的聚合函数的使用示例:

1. 统计班级一共有多少个学生:
```sql
select count(id) from stu;

或者

select count(*) from stu;
  1. 查询数学成绩的最高分:
select max(math) from stu;
  1. 查询数学成绩的最低分:
select min(math) from stu;
  1. 查询数学成绩的总分:
select sum(math) from stu;
  1. 查询数学成绩的平均分:
select avg(math) from stu;
  1. 查询英语成绩的最低分:
select min(english) from stu;

以上示例中的stu是一个表名,idmathenglish是该表中的列名。


分组查询 GROUP BY

1.查询男同学和女同学各自的数学平均分

select sex, avg(math) from stu group by sex;

2.查询男同学和女同学各自的数学平均分,以及各自人数

select sex, avg(math), count(*) from stu group by sex;

3.查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参加分组

select sex, avg(math), count(*) from stu where math > 70 group by sex;

4.查询男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参与分组。分组之后人数大于2

select sex, avg(math), count(*) from stu where math > 70 group by sex having count(*) > 2;

分页查询 : select 字段列表 from 表名 limit 起始索引,查询条目数

1.从0开始查询,查询3条数据

select * from stu limit 0, 3;

2.每页显示3条数据,查询第1页数据

select * from stu limit 0, 3;

3.每页显示3条数据,查询第2页数据

select * from stu limit 3, 3;

4.每页显示3条数据,查询第3页数据

select * from stu limit 6, 3;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值