查询406班级学生的平均身高
select name,age from student where age > (select avg(age) as avg from student where class=406) and class=406; 16 having group by 字段 having 条件;过滤筛选,主要作用类似于where关键字,用于在SQL语句中进行条件判断,过滤结果的。
但是与where不同的地方在于having只能跟在group by 之后使用。
练习:查询301班级大于班上平均成绩的学生成绩信息(name,平均分,班级)。
# 先求301班的平均成绩 select avg(achievement) as achi from student as a left join achievement as b on a.id=b.sid where class=301; # 判断301中的每个人平均成绩大于上面的到的平均成绩 select name,avg(achievement) from student as a left join achievement as b on a.id=b.sid where class=301 group by name having avg(achievement) > (select avg(achievement) as achi from student as a left join achievement as b on a.id=b.sid where class=301); 17 select查询语句的完整格式 select distinct 字段1,字段2.... from 表名 as 表别名 left join 从表1 on 表名.主键=从表1.外键 left join .... where .... group by ... having ... order by ... limit start,count执行顺序为:
from 表名[包括连表]
where ....
group by ...
select distinct *
having ...
order by ...
limit start,count
实际使用中,只是语句中某些部分的组合,而不是全部
我们之前学习的source也是一种恢复方式,但是两种使用有一个区别。就是
mysql 命令这种方式,可以远程 恢复,而source这种只能本地电脑恢复。
mysql -hIP地址 -uroot -p密码
18 Python操作mysqlpymysql 一般使用这个
MySQLDB
安装pymysql模块 pip install pymysql 使用pymysql模块操作数据库 import pymysql # from pymysql import * # 创建和数据库服务器的连接 connection conn = pymysql.connect(host='localhost',port=3306,user='root',password='root123456', db='student',charset='utf8') # 创建游标对象 cursor = conn.cursor() # 中间可以使用游标完成对数据库的操作 sql = "select * from student;" # 执行sql语句的函数 返回值是该SQL语句影响的行数 count = cursor.execute(sql) print("操作影响的行数%d" % count) # print(cursor.fetchone()) # 返回值类型是元祖,表示一条记录 # 获取本次操作的所有数据 for line in cursor.fetchall(): print("数据是%s" % str(line)) # 关闭资源 先关游标 cursor.close() # 再关连接 conn.close() 执行语句 #执行sql,更新单条数据,并返回受影响行数 result = cursor.execute("SQL语句") #插入多条,并返回受影响的函数,例如批量添加 result2 = cursor.executemany("多条数据") #获取最新自增ID new_id = cursor.lastrowid 获取结果 #获取一行 result1 = cursor.fetchone() #获取多行[参数可以设置指定返回数量] result2 = cursor.fetchmany(整型) #获取所有 result3 = cursor.fetchall() 操作数据 #提交,保存新建或修改的数据,如果是查询则不需要 conn.commit() # 写在execute()之后Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx