mysql,用sql语句,建立学生-课程数据库基本表
首先要准备三个表Student学生表、Course课程表、SC选课表
学生表 | 学号 | 姓名 | 年龄 | 性别 | 院系 |
Student | Sno | Sname | Sage | Ssex | Sdept |
课程表 | 课程号 | 课程名 | 先行课 | 学分 |
Course | Cno | Cname | Cpno | Ccredit |
选课表 | 学号 | 课程号 | 成绩 |
SC | Sno | Cno | Grade |
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和SC SELECT SC.Sno AS 学生学号 ,Student.Sname AS 学生姓名,Student.Ssex AS 学生性别 Student.Sdept AS 学生院系,SC.Cno AS 选择课程号,SC.Grade AS 课程成绩 FROM SC,Student WHERE SC.Sno=Student.Sno; -- 查询表 course 和 SC SELECT SC.Sno AS 学生学号 ,SC.Cno AS 选择课程号,Course.Cname AS 学生课程名, Course.cpno AS 学生先行课, Course.Ccredit AS 课程学分, SC.Grade AS 课程成绩 FROM SC,Course WHERE SC.Cno=Course.Cno; -- 查询表 course 和 SC 和 Student SELECT 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,Course WHERE 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';
最后提醒
它可能报这种错误,原因是想要删除的数据和表与其他的数据或表存在主外键关系,MYSQL规定
为了维护表结构的稳定,禁止执行该操作,即外键约束失败,解决方法,将带有外键约束的表删掉,,然后重新执行其他数据表即可,亦或者解除外键关联,然后执行增删改查操作,然后重新建立外键关联
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理!
部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!