• mysql作业


    --1、查询所有的课程的名称以及对应的任课老师姓名
    SELECT
        cname,
        tname 
    FROM
        course
        INNER JOIN teacher ON course.teacher_id = teacher.tid
    
    --2、查询学生表中男女生各有多少人
    SELECT
        gender,
        count( sid ) 
    FROM
        student 
    GROUP BY
        gender
    
    --3、查询物理成绩等于100的学生的姓名
    SELECT
        sname 
    FROM
        student 
    WHERE
        sid IN (
        SELECT
            student_id 
        FROM
            course
            INNER JOIN score ON course.cid = score.course_id 
        WHERE
            course.cid = 2 
            AND score.num = 100 
        )
    
    --4、查询平均成绩大于八十分的同学的姓名和平均成绩
    SELECT
        student.sname,
        t1.avg_num
    FROM
        student
    INNER JOIN (
        SELECT
            student_id,
            avg(num) AS avg_num
        FROM
            score
        GROUP BY
            student_id
        HAVING
            avg(num) > 80
    ) AS t1 ON student.sid = t1.student_id;
    
    --5、查询所有学生的学号,姓名,选课数,总成绩
    SELECT
        student.sid,
        student.sname,
        t1.course_num,
        t1.total_num
    FROM
        student
    LEFT JOIN (
        SELECT
            student_id,
            COUNT(course_id) course_num,
            sum(num) total_num
        FROM
            score
        GROUP BY
            student_id
    ) AS t1 ON student.sid = t1.student_id;

    用数据库实现登入注册

    #程序入口
    import os,sys
    
    sys.path.append(os.path.dirname(__file__))
    
    from core import src
    if __name__ == '__main__':
        src.run()
    #core中的src
    from interfaces import interface
    
    
    
    def login():
        while True:
            name = input('输入账号:').strip()
            pwd = int(input('输入密码:').strip())
            flag,msg = interface.login_interface(name,pwd)
            if flag:
                print(msg)
                break
            else:
                print(msg)
    
    def register():
        while True:
            username = input('请输入用户名: ').strip()
            password = input('请输入密码: ').strip()
            re_password = input('请确认密码: ').strip()
            if password == re_password:
                flag, msg = interface.register_interface(username, int(password))
                if flag:
                    print(msg)
                    break
                else:
                    print(msg)
            else:
                print('两次密码不一致!')
    
    
    func_dic = {
        '1': login,
        '2': register,
    }
    
    def run():
        while True:
            print('''
            ====== 欢迎来到选课系统 ======
                  1.登入功能
                  2.注册功能
                  3.退出
            =========== end =============
            ''')
    
            cmd = input('选择功能编号:').strip()
            if cmd == '3':
                break
            if cmd not in func_dic:
                print('请选择正确的功能')
                continue
            func_dic.get(cmd)()
    #interface接口
    from db import db_handler
    
    def login_interface(user,pwd):
        flag,msg = db_handler.select(user)
        print(msg)
        if flag:
            if msg.get('pwd')==pwd:
                return True,'登入成功'
            else:
                return False,'密码错误'
        else:
            return False,'用户不存在'
    
    #注册接口
    def register_interface(username,password):
        flag,msg = db_handler.select(username)
        if flag:
            return False,'用户已存在'
        flag = db_handler.save(username,password)
        if flag:
            return True,f'用户{username}创建成功!'
    #db_hander
    import pymysql
    
    def connt_mysql():
        connt = pymysql.connect(
            host = '127.0.0.1',
            port = 3306,
            user = 'root',
            password = None,
            database = 'db1',
            charset = 'utf8',
            autocommit=True
        )
        cursor = connt.cursor(cursor=pymysql.cursors.DictCursor)
        return cursor
    
    def select(username):
        cursor = connt_mysql()
        sql = 'select * from t_user where username = %s'
        row = cursor.execute(sql,(username))
        data = cursor.fetchone()
        return row,data
    
    def save(username,pwd):
        cursor = connt_mysql()
        sql = 'insert into t_user values(%s,%s)'
        row = cursor.execute(sql,(username,pwd))
        return row
  • 相关阅读:
    ###STL学习--标准模板库
    打包C#程序
    ###学习《Effective C++》
    [ZJOI2007]棋盘制作
    [NOI2012]美食节
    [SCOI2012]奇怪的游戏
    5120: [2017国家集训队测试]无限之环
    序列取数
    1028: [JSOI2007]麻将
    1011: [HNOI2008]遥远的行星
  • 原文地址:https://www.cnblogs.com/bk134/p/12851517.html
Copyright © 2020-2023  润新知