文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mysql,用sql语句,建立学生-课程数据库基本表

2023-10-12 14:32

关注

首先要准备三个表Student学生表、Course课程表、SC选课表

学生表学号姓名年龄性别院系
StudentSnoSnameSageSsexSdept
课程表课程号课程名先行课学分
CourseCnoCnameCpnoCcredit
选课表学号课程号成绩
SCSnoCnoGrade

sql语句 创建表

-- 删除表DROP TABLE IF EXISTS Student;-- 创建表CREATE TABLE Student(Sno CHAR(9) PRIMARY KEY,-- 学号 主键Sname VARCHAR(20) NOT NULL,-- 姓名 非空且唯一Sage INT NOT NULL,-- 年龄Ssex VARCHAR(5) NOT NULL,-- 性别Sdept VARCHAR(10) NOT NULL -- 所在系)charset=utf8;
-- 删除表DROP TABLE IF EXISTS Course;-- 创建表CREATE TABLE Course(Cno CHAR(5) PRIMARY KEY,-- 课程号 主键Cname VARCHAR(20) NOT NULL ,-- 课程名 非空Cpno VARCHAR(20)  NOT NULL,-- 先行课Ccredit Double(5,2) NOT NULL-- 学分)charset=utf8;
-- 删除表DROP TABLE IF EXISTS SC;-- 创建表CREATE TABLE SC(Sno CHAR(9),-- 学号 主键Cno CHAR(5),-- 课程号 主键Grade INT NOT NULL, -- 成绩foreign key(Sno) references Student(Sno),foreign key(Cno) references Course(Cno))charset=utf8;

注意创建表的时候要注意它的字段名,类型,长度,约束条件,取值范围要合适,大小写符号要正确,中文逗号,分号和英文的要注意区分,sql语句有时运行不起来,可能就在某个标点符号写漏或者写错

这里Sno 和 Cno 分别是学生表和课程表的主键,但同时又是SC的外键,这里要写外键约束

插入数据

INSERT INTO Student(Sno,Sname,Sage,Ssex,Sdept) VALUES('20211127','殷郊',22,'男','数学系'),('20211128','姬发',20,'男','农业系'),('20211129','苏妲己',18,'女','外语系'),('20211130','崇应彪',23,'男','体育系')
INSERT INTO Course(Cno,Cname,Cpno,Ccredit) VALUES('1001','数据库原理及应用','数据结构',2),('2002','LINUX操作系统与程序设计','操作系统',4),('3003','离散数学','高等数学',2),('4004','Java程序设计语言','c语言和c++语言',2),('5005','网络安全','计算机网络',4)
INSERT INTO SC(Sno,cno,Grade) VALUES('20211127','1001',98),('20211127','2002',96),('20211127','3003',95),('20211127','4004',90),('20211127','5005',93),('20211128','1001',98),('20211128','2002',96),('20211128','3003',95),('20211128','4004',90),('20211128','5005',93),('20211129','1001',98),('20211129','2002',96),('20211129','3003',95),('20211129','4004',90),('20211129','5005',93),('20211130','1001',98),('20211130','2002',96),('20211130','3003',95),('20211130','4004',90),('20211130','5005',93)

查询数据表

-- 查询表所有select * from Student;select * from Course;select * from SC;

结果

 

 

 还可以多表查询

-- 多表查询,-- 查询表 Student和SCSELECT SC.Sno AS 学生学号 ,Student.Sname AS 学生姓名,Student.Ssex AS 学生性别 Student.Sdept AS 学生院系,SC.Cno AS 选择课程号,SC.Grade AS 课程成绩FROM SC,StudentWHERE SC.Sno=Student.Sno;-- 查询表 course 和 SCSELECT SC.Sno AS 学生学号 ,SC.Cno AS 选择课程号,Course.Cname AS 学生课程名, Course.cpno AS 学生先行课, Course.Ccredit AS 课程学分, SC.Grade AS 课程成绩FROM SC,CourseWHERE SC.Cno=Course.Cno;-- 查询表 course 和 SC 和 StudentSELECT SC.Sno AS 学生学号 ,Student.Sname AS 学生姓名,Student.Ssex AS 学生性别, Student.Sdept AS 学生院系,SC.Cno AS 选择课程号,Course.Cname AS 学生课程名, Course.cpno AS 学生先行课, Course.Ccredit AS 课程学分,SC.Grade AS 课程成绩FROM SC,Student,CourseWHERE SC.Sno=Student.Sno AND SC.Cno=Course.Cno AND SC.Sno= 20211127;

这里,感兴趣的自己去试一试吧,

修改数据表(单个示例)

​-- 修改语句 单个示例update Student set Sname='姜子牙' where Sno='20211127';-- 删除语句,单个示例-- 这里删除不了是因为外键约束的问题delete from Student where Sno='20211127';​

最后提醒

如果最后操作运行时出错,可能是SC表设置了外键约束的问题,

 它可能报这种错误,原因是想要删除的数据和表与其他的数据或表存在主外键关系,MYSQL规定

为了维护表结构的稳定,禁止执行该操作,即外键约束失败解决方法,将带有外键约束的表删掉,,然后重新执行其他数据表即可,亦或者解除外键关联,然后执行增删改查操作,然后重新建立外键关联

来源地址:https://blog.csdn.net/yangkeOK/article/details/132509470

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯