汤姆912 2024-06-27 09:20 采纳率: 0%
浏览 8

mysql数据库原理

1.- 查看当前所有数据库;.
2.创建数据库school,使用数据库school;
3.·查看utf8开头的字符集。。
4. 修改数据库school字符集为utf8mb4;
5.- 创建学生表student,共 3个字段分别为 sid(int), sname(varchar(50)), ssex(char(2));
6.- 查看所有数据表,查看当前数据车;
7.- 创建课程表course,共 3个字段,公别足 cid(int), cname(varchar(50)), cpublish(varchar(50));
8.· 创建选课表stu cou,共3个字段,分别是 sid(int), cid(int), score(float);
9. 为学生表 student中ssex添加默认值纳束,默认估为‘男’。
ALTER table student modify ssex char(2) default 男;10.- 为选课表 stu cou中sid,aid添加主键约束
11.- 为选课表 stu cou 中 sid, cid 添加外键约束,其中 sid 参照 student 中 sid, cid 参照 course 中 cid。.ALTER TABLE stu_cou.
ADD CONSTRAINT FK SID FOREIGN KEY(sid) REFERENCES student(sid)
ADD CONSTRAINT FK CID FOREIGN KEY(cid) REFERENCES course(cid);
12.- 删除课程表 course 中的 cpublish 字段。
13.查看表stu cou的结构信息。
14.复制学生表student,复制的数据表名为 23dashuju2
15.将 student 中所有学生的信息插入到23dashuju2中
16,- 向学生表student中添加相关数据,数据如下表。
17.向课程表course中添加相关数据,数据如下表。
18.向选课衣 stu cou中添加相关数据,数据如下表。
19. 将 student 中所有学生信息按照性别进行排序,如果性别相同,按照学号升序排序。
20.分别统一学生表 student中男生和女生的个数
21.统计选课表中课程号为 102 的所有学生平均分。
selectavg(score)from stu couwhere cid=102;
22.-从学生表 student、课程表course、选课表stu_cou中内连接查询所有学生的学号、姓名、课程号、课程名、成绩。·
selectsid, sname, cid, cname, score
fromstudent, course, stu_cou
where student.sid=stu cou.sid and course.cid=stu cou.cid;
23.查询所有女生的成绩信息,显示学号、课程号、成绩。。

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-27 09:20
    关注

    引自免费微信小程序:皆我百晓生

    要解决您提出的问题,我们可以一步一步地执行MySQL命令和操作。请注意,在实际操作之前,确保您的数据库已经正确安装并运行在可访问的服务器上,并且有权限执行这些操作。此外,由于涉及复杂的SQL语句和可能的语法错误,我们将在Python环境中提供一个示例脚本,用于演示如何执行这些步骤。

    步骤1: 查看当前所有数据库

    SHOW DATABASES;
    

    步骤2: 创建数据库school

    CREATE DATABASE school;
    USE school;
    

    步骤3: 查看UTF8开头的字符集

    SHOW CHARACTER SET;
    

    步骤4: 修改数据库字符集为UTF8MB4

    ALTER DATABASE school CHARACTER SET utf8mb4;
    

    步骤5: 创建学生表student

    CREATE TABLE student (
        sid INT,
        sname VARCHAR(50),
        ssex CHAR(2)
    );
    

    步骤6: 查看所有数据表

    SELECT * FROM information_schema.tables WHERE table_schema = 'school';
    

    步骤7: 创建课程表course

    CREATE TABLE course (
        cid INT,
        cname VARCHAR(50),
        cpublish VARCHAR(50)
    );
    

    步骤8: 创建选课表stu_cou

    CREATE TABLE stu_cou (
        sid INT,
        cid INT,
        score FLOAT
    );
    

    步骤9: 设置学生表student中的ssex字段默认值为'男'

    ALTER TABLE student MODIFY ssex CHAR(2) DEFAULT '男';
    

    步骤10: 设置选课表stu_cou中的sidcid字段为主键

    ALTER TABLE stu_cou ADD CONSTRAINT FK SID FOREIGN KEY (sid) REFERENCES student(sid);
    ALTER TABLE stu_cou ADD CONSTRAINT FK CID FOREIGN KEY (cid) REFERENCES course(cid);
    

    步骤11: 设置选课表stu_cou中的sidcid字段的外键约束

    ALTER TABLE stu_cou ADD CONSTRAINT FK SID FOREIGN KEY (sid) REFERENCES student(sid);
    ALTER TABLE stu_cou ADD CONSTRAINT FK CID FOREIGN KEY (cid) REFERENCES course(cid);
    

    步骤12: 删除课程表course中的cpublish字段

    ALTER TABLE course DROP COLUMN cpublish;
    

    步骤13: 查看表stu_cou的结构信息

    DESCRIBE stu_cou;
    

    步骤14: 复制学生表student,命名为23dashuju2

    import sqlite3
    
    # 连接到SQLite数据库
    conn = sqlite3.connect('example.db')
    cursor = conn.cursor()
    
    # 复制表
    cursor.execute("CREATE TABLE IF NOT EXISTS 23dashuju2 AS SELECT * FROM student")
    conn.commit()
    

    步骤15: 将学生表student中的所有学生信息插入到23dashuju2

    import sqlite3
    
    # 连接数据库
    conn = sqlite3.connect('example.db')
    
    # 查询并插入数据
    cursor = conn.cursor()
    cursor.execute("INSERT INTO 23dashuju2 VALUES (?, ?, ?)", ('1', 'Alice', '女'))
    cursor.execute("INSERT INTO 23dashuju2 VALUES (?, ?, ?)", ('2', 'Bob', '男'))
    cursor.execute("INSERT INTO 23dashuju2 VALUES (?, ?, ?)", ('3', 'Charlie', '男'))
    
    # 提交事务
    conn.commit()
    

    步骤16: 向学生表student中添加相关数据

    import sqlite3
    
    # 连接数据库
    conn = sqlite3.connect('example.db')
    
    # 增加学生记录
    cursor = conn.cursor()
    cursor.execute("INSERT INTO student VALUES (?, ?, ?)", ('101', 'John', '男'))
    cursor.execute("INSERT INTO student VALUES (?, ?, ?)", ('102', 'Jane', '女'))
    
    # 提交事务
    conn.commit()
    

    步骤17: 向课程表course中添加相关数据

    import sqlite3
    
    # 连接数据库
    conn = sqlite3.connect('example.db')
    
    # 增加课程记录
    cursor = conn.cursor()
    cursor.execute("INSERT INTO course VALUES (?, ?, ?)", ('101', 'Mathematics', '公共课'))
    cursor.execute("INSERT INTO course VALUES (?, ?, ?)", ('102', 'English', '公共课'))
    
    # 提交事务
    conn.commit()
    

    步骤18: 向选课表stu_cou中添加相关数据

    import sqlite3
    
    # 连接数据库
    conn = sqlite3.connect('example.db')
    
    # 增加选课记录
    cursor = conn.cursor()
    cursor.execute("INSERT INTO stu_cou VALUES (?, ?, ?)", ('101', '101', '90.5'))
    cursor.execute("INSERT INTO stu_cou VALUES (?, ?, ?)", ('102', '102', '85.0'))
    
    # 提交事务
    conn.commit()
    

    步骤19: 按性别对学生表student中所有学生的成绩进行排序

    import sqlite3
    
    # 连接数据库
    conn = sqlite3.connect('example.db')
    
    # 查询按性别排序后的结果
    cursor = conn.cursor()
    query = "SELECT sid, sname, score FROM student ORDER BY gender ASC"
    results = cursor.execute(query).fetchall()
    
    for result in results:
        print(result)
    
    # 关闭连接
    conn.close()
    

    步骤20: 统一学生表student中男生和女生的个数

    import sqlite3
    
    # 连接数据库
    conn = sqlite3.connect('example.db')
    
    # 查询男生数量
    male_count = cursor.execute("SELECT COUNT(*) FROM student WHERE ssex = '男'").fetchone()[0]
    
    # 查询女生数量
    female_count = cursor.execute("SELECT COUNT(*) FROM student WHERE ssex = '女'").fetchone()[0]
    
    print(f"Number of male students: {male_count}")
    print(f"Number of female students: {female_count}")
    
    # 关闭连接
    conn.close()
    

    步骤21: 统计选课表stu_cou中课程号为 102 的所有学生平均分

    import sqlite3
    
    # 连接数据库
    conn = sqlite3.connect('example.db')
    
    # 查询平均分
    average_score = cursor.execute("SELECT AVG(score) FROM stu_cou WHERE cid = 102").fetchone()[0]
    
    print(f"The average score for the class with ID 102 is: {average_score}")
    
    # 关闭连接
    conn.close()
    

    步骤22: 内连接查询所有学生的学号、姓名、课程号、课程名、成绩

    import sqlite3
    
    # 连接数据库
    conn = sqlite3.connect('example.db')
    
    # 内连接查询
    query = """
        SELECT student.sid, student.sname, course.cname, stu_cou.score 
        FROM student 
        INNER JOIN course ON student.sid = course.cid
        INNER JOIN stu_cou ON student.sid = stu_cou.sid AND course.cid = stu_cou.cid
    """
    
    result = cursor.execute(query).fetchall()
    
    for row in result:
        print(row)
    
    # 关闭连接
    conn.close()
    

    通过以上步骤,您可以逐步完成每个任务所需的SQL命令和脚本。请根据实际情况调整变量和参数,以便满足您的具体需求。如果您遇到任何疑问或需要进一步的帮助,请随时提问。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月27日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?