在数据库开发中,经常需要查询和操作数据,了解SQL语句的基本操作和常用技巧,可以提高数据库应用效率。
基础查询
1、查询所有数据:
SELECT * FROM 表名;
2、查询指定列:
SELECT 列名1, 列名2 FROM 表名;
3、查询并排序:
SELECT * FROM 表名 ORDER BY 列名 ASC/DESC;
4、查询并限制结果数量:
SELECT * FROM 表名 LIMIT 数量;
5、查询并跳过指定数量的结果:
SELECT * FROM 表名 OFFSET 数量;
条件查询
6、查询满足条件的记录:
SELECT * FROM 表名 WHERE 条件;
7、查询不满足条件的记录:
SELECT * FROM 表名 WHERE NOT 条件;
8、查询多个条件的记录:
SELECT * FROM 表名 WHERE 条件1 AND/OR 条件2;
9、查询某个范围内的记录:
SELECT * FROM 表名 WHERE 列名 >= 值1 AND 列名 <= 值2;
10、查询以某个字符开头的记录:
SELECT * FROM 表名 WHERE 列名 LIKE ‘值%’;
聚合函数
11、计算总和:
SELECT SUM(列名) FROM 表名;
12、计算平均值:
SELECT AVG(列名) FROM 表名;
13、计算最大值:
SELECT MAX(列名) FROM 表名;
14、计算最小值:
SELECT MIN(列名) FROM 表名;
15、计算记录数:
SELECT COUNT(*) FROM 表名;
分组查询
16、根据某列进行分组:
SELECT * FROM 表名 GROUP BY 列名;
17、根据多列进行分组:
SELECT * FROM 表名 GROUP BY 列名1, 列名2;
18、根据某列分组并计算总和:
SELECT 列名, SUM(列名) FROM 表名 GROUP BY 列名;
19、根据某列分组并计算平均值:
SELECT 列名, AVG(列名) FROM 表名 GROUP BY 列名;
20、根据某列分组并计算最大值:
SELECT 列名, MAX(列名) FROM 表名 GROUP BY 列名;
连接查询
21、INNER连接:
SELECT * FROM 表1 INNER JOIN 表2 ON 表1.列名 = 表2.列名;
22、LEFT连接(左连接):
SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名;
23、RIGHT连接(右连接):
SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;
24、CROSS连接(交叉连接):
SELECT * FROM 表1 CROSS JOIN 表2;
子查询
25、IN子查询:
SELECT * FROM 表名 WHERE 列名 IN (SELECT * FROM 子查询);
26、NOT IN子查询:
SELECT * FROM 表名 WHERE 列名 NOT IN (SELECT * FROM 子查询);
27、ANY子查询:
SELECT * FROM 表名 ANY (子查询);
28、ALL子查询:
SELECT * FROM 表名 ALL (子查询);
29、SOME子查询:
SELECT * FROM 表名 SOME (子查询);
30、CASE子查询:
SELECT CASE (子查询) THEN (结果1) [WHEN (结果2) THEN (结果3)] [ELSE (默认结果)]END AS "别名";
分页查询
31、SQL Server分页查询:
SELECT * FROM (SELECT *,ROW_NUMBER()OVER(ORDER BY ID DESC) AS RowNum FROM TableName) AS TmpTableNameWHERE TmpTableName.RowNum > ((当前页1)*每页显示数量) AND TmpTableName.RowNum <= (当前页*每页显示数量);
32、ORACLE分页查询:
SELECT * FROM (SELECT t.*,ROWNUM rn FROM (SELECT * FROM tablename t order by id) t) where rn between (当前页1)*每页显示数量 and (当前页*每页显示数量);
33、MySql分页查询:
SELECT * FROM tablename limit start,pagesize;(start为起始位置,pagesize为每页显示数量)
以上是SQL语句的一些常用操作和技巧,可以在实际的开发中进行应用。不同的数据库有着不同的特性和语法规则,需要针对具体的数据库进行学习和掌握。
如果您有任何问题或疑惑,请在下方留言,我们会尽快回复。
感谢您的阅读并关注我们的博客。
评论留言