数据库学习Day4

本文深入解析SQL查询语句的构造与应用,涵盖从基本的列选择到复杂的条件过滤,包括AND、OR、IN、BETWEEN等操作符的使用,以及LIKE通配符、DISTINCT关键字、AS别名的设定,还有ORDER BY排序、LIMIT限制等功能,帮助读者掌握高效的数据检索方法。

查询语句:SELECT

SELECT selection_list /*要查询的列名称*/

FROM table_list /*要查询的表名称*/

WHERE condition /*行条件*/

GROUP BY grouping_columns /*对结果分组*/

HAVING condition /*分组后的行条件*/

ORDER BY sorting_columns /*对结果排序*/

LIMIT offset_start, row_count/*结果限定*/
#查询表的所有列
SELECT * FROM stu;
#查询部分列
SELECT sid,sname FROM stu;

#查询性别为女,并且年龄65的记录 [AND]
SELECT *FROM stu WHERE age=65 AND gender='female';
#查询学号为S_1001,或者姓名为liSi的记录 [OR]
SELECT * FROM stu WHERE sid='s_1001' OR sname='lisi';
#查询学号为S_1001,S_1002,S_1003的记录 [IN]
SELECT * FROM stu WHERE sid IN ('s_1001','s_1002','s_1003');
#查询学号不是S_1001,S_1002,S_1003的记录 [NOT IN]
SELECT * FROM stu WHERE sid NOT IN ('s_1001','s_1002','s_1003');
#查询年龄为null的记录 [IS NULL]
SELECT * FROM stu WHERE age IS NULL;
#查询年龄在20到40之间的学生记录 [BETWEEN AND]
SELECT * FROM stu WHERE age>=20 AND age<=40;
SELECT * FROM stu WHERE age BETWEEN 20 AND 40;
#查询性别非男的学生记录 [!= <>]
SELECT * FROM stu WHERE gender!='male'; 
SELECT * FROM stu WHERE gender<>'male';
SELECT * FROM stu WHERE NOT gender='male';
#查询年龄不为null的学生记录
SELECT * FROM stu WHERE age IS NOT NULL;
SELECT * FROM stu WHERE NOT age IS NULL;

#查询姓名由5个字母构成的学生记录
SELECT * FROM stu WHERE sname LIKE '_____';
#查询姓名由5个字母构成,并且第5个字母为"i"的学生记录
SELECT * FROM stu WHERE sname LIKE '____i';
#查询姓名以"z"开头的学生记录
SELECT * FROM stu WHERE sname LIKE 'z%';
#查询姓名中第2个字母为"i"的学生记录
SELECT * FROM stu WHERE sname LIKE '_i%';
#查询姓名中包含"a"字母的学生记录
SELECT * FROM stu WHERE sname LIKE '%a%';

#去除工资相同的 [DISTINCT]
SELECT DISTINCT sal FROM emp;
#查看雇员的月薪与佣金之和 [AS]
SELECT *,sal+comm FROM emp;#在没有NULL值的时候可以使用
SELECT *,sal+IFNULL(comm,0) FROM emp;#将NULL值替换为0
#给列名添加别名
SELECT *,sal+IFNULL(comm,0) AS 'total' FROM emp;
SELECT ename '员工姓名',job '职务',sal '月薪' FROM emp;

#查询所有学生记录,按年龄升序排序
SELECT * FROM stu ORDER BY age;
#查询所有学生记录,按年龄降序排序
SELECT * FROM stu ORDER BY age DESC;
#查询所有雇员,按月薪降序排序,如果月薪相同时,按编号降序排序
SELECT * FROM emp ORDER BY sal,empno DESC;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值