之前的5篇文章吧环境的搭建和初级sql语言的使用全部都复习完成,今天开始学习高级的sql教程,仍然使用https://www.w3cschool.cn/sql/dlwiyfom.html的教程。
查询指定行的数据
课程信息表全部数据如下:
(1, 'English', '02')
(2, 'math', '03')
(3, 'Chinese', '01')
(4, 'physics', '04')
(5, 'geography', '05')
(6, 'French', None)
#查询的时候使用TOP和ROWNUM会报错
sql = "SELECT * FROM edu.course WHERE ROWNUM <=3"
sql = "SELECT TOP 3 * FROM edu.course"
正确的办法是用LIMIT M,N (其中M指的是起始行号,N指的是返回的条目数)
#查询课程信息表信息,从第0行开始,返回3条数据9(mysql 中的正确用法) sql = "SELECT * FROM edu.course LIMIT 0,3"
#与上面的sql语句查询结果一致 sql = "SELECT * FROM edu.course LIMIT 3"
查询结果为:
(1, 'English', '02')
(2, 'math', '03')
(3, 'Chinese', '01')
#查询课程信息表信息,从第2行开始,返回2条数据 sql = "SELECT * FROM edu.course LIMIT 2,2"
查询结果为:
(3, 'Chinese', '01')
(4, 'physics', '04')
Like运算符
%
- 百分号表示零个,一个或多个字符_
- 下划线表示单个字符
#查询课程信息表中课程名字以E开头的 sql = "SELECT * FROM edu.course WHERE Cname Like 'E%'"
查询结果为:
(1, 'English', '02')
#查询课程信息表中课程名字以y结尾的 sql = "SELECT * FROM edu.course WHERE Cname Like '%y'"
查询结果为:
(5, 'geography', '05')
#查询课程信息表中课程名字第二个字母为a的 sql = "SELECT * FROM edu.course WHERE Cname Like '_a%'"
查询结果为:
(2, 'math', '03')
#查询课程信息表中课程名字包含字母e的 sql = "SELECT * FROM edu.course WHERE Cname Like '%e%'"
查询结果为:
(1, 'English', '02')
(3, 'Chinese', '01')
(5, 'geography', '05')
(6, 'French', None)
#查询课程信息表中课程名字以F开头,长度至少3个字符的课程 sql = "SELECT * FROM edu.course WHERE Cname Like 'F_%_%%'"
查询结果为:
(6, 'French', None)
#查询课程信息表中课程名字不以F开头 sql = "SELECT * FROM edu.course WHERE Cname NOT Like 'F%'"
查询结果为:
(1, 'English', '02')
(2, 'math', '03')
(3, 'Chinese', '01')
(4, 'physics', '04')
(5, 'geography', '05')
IN运算符
#查询课程信息表中,课程编号为1或者2 sql = "SELECT * FROM edu.course WHERE CID IN(1,2)"
查询结果为:
(1, 'English', '02')
(2, 'math', '03')
BETWEEN 操作符
#查询课程信息表中,课程编号在1到3之间 sql = "SELECT * FROM edu.course WHERE CID BETWEEN 1 AND 3"
查询结果为:
(1, 'English', '02')
(2, 'math', '03')