python3.5+pymysql学习数据库(6)高级sql语言

之前的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')

猜你喜欢

转载自blog.csdn.net/liying15/article/details/86068504