SQL学习--数据的增删改查

查询

基本查询

SELECT <查询字段1,查询字段2 > FROM <表名>
ps:查询返回指定列(即查询字段1,2)的查询被称为投影查询
当查询表中所有数据时用:SELECT * FROM <表名>
如:

SELECT student_id FROM student;
SELECT * FROM student;

条件查询

SELECT <查询字段1,查询字段2> FROM <表名> WHERE <条件表达式>
ps:
条件表达式可以用<条件1>AND <条件2> 来表示既要满足条件1也要满足条件2;
条件表达式可以用<条件1>OR<条件2>来表示满足条件1或者满足条件2;
条件表达式可以用NOT<条件>表示“不符合该条件的记录

要组合三个或者更多的条件需要用小括号()表示
常用的条件表达式:
score=80
name=‘abc’//字符串要用单引号括起来
score>(>=,<,<=)80
name>(>=,<,<=)‘abc’//字符串比较ASCII码
score<>80//NOT score=80即不相等
name<>'abc"
name LIKE ‘%ab%’//%表示任意字符,判断相似

如:

SELECT student_name
FROM student
WHERE student_gender='M' AND score>=80
SELECT * 
FROM student
WHERE (score<80 OR score>90) AND gender ='M';

排序

返回的数据通常是按照主键排序的,若要根据其他条件排序,可以用ORDER BY语句(默认排序是升序ASC,若要从高到低的倒序加上DESC即可)
如:

SELECT id,name,gender,score 
FROM student
ORDER BY score DESC;
SELECT id,name,gender,score
FROM student
ORDER BY score DESC, gender;//表示先按score列倒序,如果有相同分数的再按gender列排序

另外ORDER BY 语句一般在WHERE语句的后面
如:

SELECT id,name,gender,score
FROM students
WHERE class_id =1
ORDER BY score DESC;

分页查询

当查询数据量很大,可以通过分页的形式,将数据的显示量控制在一定数量之内,具体使用的代码为:

SELECT * FROM student
LIMIT <M> OFFSET <N>//M表示一页显示的记录条数,N表示从第几条记录开始显示

具体实例:

SELECT * FROM student
LIMIT 5  OFFSET 0;

即表示每五条一个表,从第一条数据(标号为0)开始
ps:OFFSET 是可选的,如果只写LIMIT 5就相当于LIMIT 5 OFFSET 0
使用LIMIT OFFSET 分页时,随着N的值越来越大,查询的效率也会越来越低

聚合查询

统计数据信息有时候不仅要看明细记录,有时候可能还要看其他有关数据的信息。如符合条件记录的总数、平均数、最大值等,这类查询被称为聚合查询,可用SQL语句实现。
1、查询有多少条记录:COUNT( )

SELECT COUNT(*)  FROM student;

若要给查询的信息设置一个别名,可用以下语句,方便信息结果的理解。

SELECT COUNT(*) num FROM student;

2、查询某一列的合计值

SELECT SUM(student.score) sum_score FROM student;

3、查询某一列的平均值

SELECT AVG(student.score) avg_score FROM student;

4、计算某一列的最大值

SELECT MAX(student.score) max_score FROM student;

5、计算某一列的最小值

SELECT MIN(student.score) min_score FROM student;

ps:MAX()和MIN()不限于数值类型,若为字符类型,函数会返回排序最后和排序最前的字符
ps:一些SQL函数:
ROUND():四舍五入到一个正数或负数
CEILING():返回最小的整数
FLOOR():返回最大整数

分组

针对聚合查询,为了拓宽SQL的功能,SQL还提供了分组聚合的功能,具体函数为GROUP BY…

SELECT COUNT(*) each_class_student_num FROM student GROUP BY class_id;

其函数原理是先对数据记录分组,再分别进行聚合函数的运算。此外还可以多列进行分组。

SELECT class_id,gender,COUNT(*) num FROM student GROUP BY class_id,gender;

这个语句能查询每个班的男女生的人数

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值