首页 > 数据库 >Mysql实操基础(数据库作业)

Mysql实操基础(数据库作业)

时间:2024-03-21 17:30:39浏览次数:26  
标签:INSERT 数据库 Course VALUES 实操 Mysql SC Cno INTO

附上官网地址MySQL

1. 登录

mysql -u username -p password

其中,username为数据库的用户名,password为对应的密码。这条命令将会连接到本地默认的MySQL服务器并使用提供的用户名和密码进行身份验证。如果成功登录,则可以开始与MySQL交互了。

然后先创建数据库

CREATE DATABASE 库名;

使用数据库

use 库名;

2. 作业内容

1)创建关系(create)

Student(Sno, Sname, Ssex, Sbirthdate, Smajor)

Course(Cno,Cname,Ccredit,Cpno)

SC(Sno,Cno, Grade,Semester,Teachingclass)

创建Student(Sno, Sname, Ssex, Sbirthdate, Smajor):

CREATE TABLE Student ( Sno VARCHAR(10) PRIMARY KEY,  Sname VARCHAR(50), Ssex CHAR(1), SBirthdate DATE, Smajor VARCHAR(50));

创建Course(Cno,Cname,Ccredit,Cpno):

CREATE TABLE Course ( Cno VARCHAR(10) PRIMARY KEY,  Cname VARCHAR(100),  Ccredit INT,  Cpno VARCHAR(10) );

创建SC(Sno,Cno, Grade,Semester,Teachingclass):

CREATE TABLE SC ( Sno VARCHAR(10), Cno VARCHAR(10), Grade INT, Semester VARCHAR(20),Teachingclass VARCHAR(20), PRIMARY KEY (Sno, Cno),  FOREIGN KEY (Sno) REFERENCES Student(Sno), FOREIGN KEY (Cno) REFERENCES Course(Cno) );

2)录入数据( Insert)
  1. 学生数据
INSERT INTO Student VALUES ('2021214509', 'lht', 'M', '2024-3-21', 'Computer Science');

INSERT INTO Student VALUES ('2021213333', 'Alice', 'F', '1998-05-15', 'Computer Science');

INSERT INTO Student VALUES ('2002151', 'KKK', 'M', '2024-3-21', 'Computer Science');

INSERT INTO Student VALUES ('2031312312', 'JJJ', 'M', '2014-3-19', 'Computer Science');

INSERT INTO Student VALUES ('2000000000', 'NNN', 'F', '2011-1-19', 'Computer Science');

INSERT INTO Student VALUES ('2012100000', 'Bob', 'M', '1999-08-21', 'Engineering');

  1. 课程数据:
INSERT INTO Course VALUES ('C001', 'Introduction to Computer Science', 3, null);

INSERT INTO Course VALUES ('C002', 'Programming Fundamentals', 3, null);

INSERT INTO Course VALUES ('C003', 'Discrete Mathematics', 3, null);

INSERT INTO Course VALUES ('C004', 'Data Structures and Algorithms', 4, 'C001');

INSERT INTO Course VALUES ('C005', 'Computer Networks', 3, null);

INSERT INTO Course VALUES ('C006', 'Software Engineering', 4, 'C002');

INSERT INTO Course VALUES ('C007', 'Database Systems', 3, 'C002');

INSERT INTO Course VALUES ('C008', 'Operating Systems', 4, 'C004');

INSERT INTO Course VALUES ('C009', 'Artificial Intelligence', 3, 'C004');

INSERT INTO Course VALUES ('C010', 'Machine Learning', 4, 'C009');

  1. 学生选课数据
INSERT INTO SC VALUES ('2021214509', 'C001', 85, '2020-1', '信安');
INSERT INTO SC VALUES ('2021213333', 'C002', 78, '2020-1', '信安');
INSERT INTO SC VALUES ('2002151', 'C003', 92, '2020-1', '信安');
INSERT INTO SC VALUES ('2031312312', 'C001', 88, '2019-2', '智科');
INSERT INTO SC VALUES ('2000000000', 'C002', 90, '2019-2', '信安');
INSERT INTO SC VALUES ('2012100000', 'C003', 86, '2020-1', '智科');
INSERT INTO SC VALUES ('2021214509', 'C004', 100, '2019-2', '信安');
INSERT INTO SC VALUES ('2021213333', 'C005', 98, '2019-2', '信安');
INSERT INTO SC VALUES ('2021213333', 'C007', 99, '2019-2', '信安');
INSERT INTO SC VALUES ('2002151', 'C004', 92, '2019-2', '信安');
INSERT INTO SC VALUES ('2031312312', 'C004', 93, '2019-2', '智科');
INSERT INTO SC VALUES ('2000000000', 'C006', 99, '2019-2', '信安');
INSERT INTO SC VALUES ('2012100000', 'C006', 91, '2019-2', '智科');
INSERT INTO SC VALUES ('2000000000', 'C007', 98, '2019-2', '信安');
INSERT INTO SC VALUES ('2021214509', 'C002', 100, '2019-2', '信安');
INSERT INTO SC VALUES ('2021214509', 'C003', 100, '2019-2', '信安');
INSERT INTO SC VALUES ('2021214509', 'C005', 100, '2019-2', '信安');
INSERT INTO SC VALUES ('2021214509', 'C006', 100, '2019-2', '信安');
INSERT INTO SC VALUES ('2021214509', 'C007', 100, '2019-2', '信安');
INSERT INTO SC VALUES ('2021214509', 'C008', 100, '2019-2', '信安');
INSERT INTO SC VALUES ('2021214509', 'C009', 100, '2019-2', '信安');
INSERT INTO SC VALUES ('2021214509', 'C010', 100, '2019-2', '信安');

  1. 查询(Insert)——单表
  • 查询计算机科学与技术专业的学生信息
SELECT * FROM Student WHERE Smajor = 'Computer Science';

  • 统计计算机科学与技术专业男生和女生的人数
SELECT Ssex, COUNT(*) AS Count FROM Student WHERE Smajor = 'Computer Science' GROUP BY Ssex;

  • 统计2020年第1学期,每门课程的选修人数
SELECT Cno, COUNT(*) AS Enrollment FROM SC WHERE Semester = '2020-1' GROUP BY Cno;

  • 查询2019年第2学期,平均成绩超过90分的学生,按平均成绩降序,取前2名
SELECT Sno, AVG(Grade) AS Average_Grade FROM SC WHERE Semester = '2019-2' GROUP BY Sno HAVING AVG(Grade) > 90 ORDER BY Average_Grade DESC LIMIT 2;

  1. 查询(Insert)-多表
  • 查询每位学生的选课信息(3表连接)
SELECT Student.Sno, Student.Sname, Course.Cno, Course.Cname, SC.Grade, SC.Semester, SC.Teachingclass FROM Student, SC, Course WHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno;

  • 查询2002151学生的选课信息,给出课程号、课程名、成绩
SELECT Course.Cno, Course.Cname, SC.Grade FROM SC,Course WHERE SC.Cno = Course.Cno AND SC.Sno = '2002151';

  • 查询选修了“数据库”课程的学生学号、姓名和成绩(连接、嵌套)
SELECT Student.Sno, Student.Sname, SC.Grade FROM Student,SC WHERE Student.Sno = SC.Sno AND SC.Cno = ( SELECT Cno FROM Course WHERE Cname = 'Database Systems' );

  • 查询所有课程的先修课,给出先修课的课程号、课程名(自连接)
SELECT c1.Cno AS Course_ID, c1.Cname AS Course_Name, c2.Cno AS Prerequisite_ID, c2.Cname AS Prerequisite_Name FROM Course c1, Course c2 WHERE c1.Cpno = c2.Cno;

⑤ 查询选修了全部课程的学生学号,姓名(Exists/Not Exists)

SELECT Sno, Sname FROM Student S WHERE NOT EXISTS ( SELECT Cno FROM Course WHERE NOT EXISTS ( SELECT * FROM SC WHERE SC.Cno = Course.Cno AND SC.Sno = S.Sno ) );

标签:INSERT,数据库,Course,VALUES,实操,Mysql,SC,Cno,INTO
From: https://blog.csdn.net/m0_63554401/article/details/136914468

相关文章

  • java毕业设计小区宠物管理平台(springboot+mysql+jdk1.8+meven)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着社会的发展和人们生活水平的提高,越来越多的家庭开始饲养宠物。在城市中,小区是宠物活动的主要场所之一。然而,随着宠物数量的增加,小区宠物管理面临着许......
  • java毕业设计校园互助平台(springboot+mysql+jdk1.8+meven)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展,人们的生活方式和学习方式都发生了翻天覆地的变化。特别是在校园环境中,学生们面临着各种各样的问题和需求,如学术问题、生活琐事......
  • 【已解决】null value in column “XXX“ violates not-null constraint当我数据库的
    报错信息:nullvalueincolumn"id"violatesnot-nullconstraintDetail:Failingrowcontains(11110,1,null) 一般来说,是因为插入的主键Id为空引起的。这就和我们数据库中的设置默认值产生了冲突,我设置了默认值,为什么他还是报这个字段不能为空的错误?这个时候就要......
  • DB-Router 数据库路由组件
    1.数据库表主要为水平拆分,将大量的日志数据拆分到不同的表中首先我们要知道为什么要用分库分表,其实就是由于业务体量较大,数据增长较快,所以需要把用户数据拆分到不同的库表中去,减轻数据库压力。分库分表操作主要有垂直拆分和水平拆分:垂直拆分:指按照业务将表进行分类,分布到不同......
  • MySQL下载安装与提供远程连接
    一、windowsmysql安装1、安装到 C:\mysql-8.0.31-winx642、根目录下添加配置文件my.ini[client]default-character-set=utf8mb4[mysql]default-character-set=utf8mb4[mysqld]port=3306default-time-zone='+08:00'basedir=C:\mysql-8.0.31-winx64datadir=C:\m......
  • 人大金仓数据库创建用户设置权限
    1、背景:​ 设置用户,设置用户的权限2、SQL实现--创建用户CREATEUSERkfuserwithpassword'kfuser';--库级权限:连接GRANTconnectONdatabasekingbasetokfuser;--模式级权限:使用GRANTusageONschemagsjldb_cstokfuser;--表级权限:读取、更新、删除、新增......
  • 从数据库查询数据并导出到excel
    importpymysqlimportdatetimeimportxlwtimportosimportpandasaspddefexport_excel(output_dir):current_datetime=datetime.datetime.now()#将日期时间格式化为字符串,例如:2023-10-23_14-30-15formatted_datetime=current_datetime.strftime('%......
  • MYSQL 同步到ES 如何设计架构保持一致性
    简单使用某个组件很容易,但是一旦要搬到生产上就要考虑各种各样的异常,保证你方案的可靠性,可恢复性就是我们需要思考的问题。今天来聊聊我们部门在MYSQL同步到ES的方案设计。在面对复杂条件查询时,MYSQL往往显得力不从心,一般公司的做法会通过将mysql中的数据同步到ES,之后的查询......
  • Ubuntu 设置mysql 自动备份
    1、创建备份文件以及备份脚本所在的目录在根目录下面设置cd/mkdirbackup2、修改mysql备份配置文件这种相比于在将用户名和密码写在bash脚本里面,会更加安全一些。sudovim/etc/mysql/conf.d/mysqldump.cnfmysqldump.cnf文件添加以下内容:host=127.0.0.1user=****#mysq......
  • 【数据库】SQL如何添加数据
    在SQL中,您可以使用INSERTINTO语句来添加数据到数据库表中。以下是一些基本的示例和解释:1.插入完整行数据:如果您想为表中的每一列都插入数据,那么可以不必指定列名。但是,您需要为每一列都提供数据,并且数据的顺序必须与表中的列顺序相匹配。INSERTINTO表名(列1,列2,列3......