MySQL: Verwenden Sie SQL-Anweisungen, um grundlegende Tabellen der Studentenkursdatenbank zu erstellen

Bereiten Sie zunächst drei Tabellen vor: Studententabelle, Kurstabelle und SC-Kursauswahltabelle.

Studententisch Studenten ID Name Alter Geschlecht Abteilung
Student Snein Es hebt ab Salbei Sex Abt
Stundenplan Kurs Nummer Kursname Vorlektion Kredit
Kurs Cnr Cname Cpnr Er glaubt
Kursauswahltabelle Studenten ID Kurs Nummer Punktzahl
SC Snein Cnr Grad

SQL-Anweisung erstellt eine Tabelle

-- 删除表
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;

Beachten Sie, dass Sie beim Erstellen einer Tabelle auf Feldnamen, Typ, Länge, Einschränkungen und Wertebereiche achten müssen. Die Groß- und Kleinschreibung muss korrekt sein. Chinesische Kommas, Semikolons und Englisch müssen unterschieden werden. SQL-Anweisungen manchmal kann nicht ausgeführt werden. Möglicherweise habe ich ein bestimmtes Satzzeichen übersehen oder es falsch geschrieben.

Hier sind Sno und Cno die Primärschlüssel der Studententabelle bzw. der Kurstabelle, aber sie sind auch die Fremdschlüssel von SC. Hier müssen Fremdschlüsseleinschränkungen geschrieben werden.

Daten einfügen

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)

Datentabelle abfragen

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

Ergebnis

 

 

 Sie können auch mehrere Tabellen abfragen

-- 多表查询,
-- 查询表 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;

Hier können Sie es bei Interesse selbst ausprobieren.

Datentabelle ändern (einzelnes Beispiel)


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

letzte Erinnerung

Wenn während des letzten Vorgangs ein Fehler auftritt, kann dies an den in der SC-Tabelle festgelegten Fremdschlüsseleinschränkungen liegen.

 Dieser Fehler wird möglicherweise gemeldet, weil die Daten und die Tabelle, die Sie löschen möchten, Primär- und Fremdschlüsselbeziehungen zu anderen Daten oder Tabellen haben. MYSQL schreibt dies vor

Um die Stabilität der Tabellenstruktur aufrechtzuerhalten, ist dieser Vorgang verboten, dh die Fremdschlüsseleinschränkung schlägt fehl. Die Lösung besteht darin, die Tabelle mit der Fremdschlüsseleinschränkung zu löschen und dann andere Datentabellen erneut auszuführen oder abzubrechen Fremdschlüsselzuordnung, und führen Sie dann Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge durch und stellen Sie dann die Fremdschlüsselzuordnung wieder her.

Ich denke du magst

Origin blog.csdn.net/yangkeOK/article/details/132509470
Empfohlen
Rangfolge