mysql, SQL 문을 사용하여 학생 강좌 데이터베이스의 기본 테이블 생성

먼저 학생 테이블, 코스 테이블, SC 코스 선택 테이블의 세 가지 테이블을 준비합니다.

학생 테이블 학생 아이디 이름 나이 성별 부서
학생 스노 이륙한다 세이지 섹스 스뎁트
수업 시간표 강좌번호 코스 이름 예비 수업 신용 거래
강의 크노 C이름 CPNO 그는 믿는다
코스 선택 테이블 학생 아이디 강좌번호 점수
SC 스노 크노 등급

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는 각각 Student 테이블과 Course 테이블의 기본 키이지만 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';

마지막 알림

최종 작업 중에 오류가 발생하는 경우 SC 테이블에 설정된 외래 키 제약 조건 때문일 수 있습니다.

삭제하려는 데이터 및 테이블이 다른 데이터 또는 테이블과 기본 및 외래 키 관계를 갖고 있기 때문에  이 오류가 보고될 수 있습니다 . MYSQL에서는 규정합니다.

테이블 구조의 안정성을 유지하기 위해 이 작업을 금지합니다, 즉 외래 키 제약 조건이 실패하므로 해결 방법은 외래 키 제약 조건이 있는 테이블을 삭제한 후 다른 데이터 테이블을 다시 실행하거나 취소하는 것입니다. 외래 키 연결을 클릭한 다음 추가, 삭제, 수정 및 쿼리 작업을 수행한 다음 외래 키 연결을 다시 설정합니다.

추천

출처blog.csdn.net/yangkeOK/article/details/132509470