Mysql学生管理系统:表的建立,外键一对多,多对多关系,中间关联表的建立

学生管理系统

管理员注册/登录/注销

注册班级(班级详细信息)

注册学生信息

查看班级信息/查看老师资料

教师注册/注销  查看教师资料  查看学生资料  根据名称/班级/ 查看学生详细信息--支持模糊

注册科目

管理员(admini)

ad_id(管理员id)     ad_number(管理员账号)

ad_pass(管理员密码)    ad_yn(管理员是否禁用)

create table admini(

ad_id int PRIMARY KEY AUTO_INCREMENT,-- 主键自增,非空唯一

ad_number int unique not null ,-- 非空唯一

ad_pass int  not null,-- 非空

ad_yn varchar(10) check(ad_yn=‘y‘ or ad_yn=‘n‘ )-- 限制只能为‘y‘或‘n‘

)

班级(classes)

cl_id(班级的id)   cl_adress(班级的地址)

create table classes(

cl_id int PRIMARY KEY ,-- 主键

cl_adrss varchar(30) not null-- 非空

)

老师(teacher)

te_id (老师id)  te_name(老师名字)

te_subject(老师科目)  te_yn(是否离职)

create table teacher(

te_id int PRIMARY KEY AUTO_INCREMENT,-- 主键自增,非空唯一

te_name varchar(20) not null,-- 非空

te_subject varchar(20) not null,-- 非空

te_yn varchar(10) check(te_yn=‘y‘ or te_yn=‘n‘ )-- 限制只能为‘y‘或‘n‘

)

老师班级关联表(cla_teacher)

ct_id(关联表)     cl_id(班级_id)     te_id(老师_id)

create table cla_teacher(

ct_id int PRIMARY KEY AUTO_INCREMENT,-- 主键自增,非空唯一

cl_id int,

te_id int

)

-- 添加班级外键

ALTER TABLE cla_teacher ADD CONSTRAINT cl_FK1 FOREIGN KEY(cl_id) REFERENCES classes(cl_id)

-- ALTER TABLE主表名 ADD CONSTRAINT 外键名 FOREIGN KEY(主表作为外键的列名)REFERENCES 从表名(从表列名)

-- 添加老师外键

ALTER TABLE cla_teacher ADD CONSTRAINT te_FK1 FOREIGN KEY(te_id) REFERENCES teacher(te_id)

-- ALTER TABLE主表名 ADD CONSTRAINT 外键名 FOREIGN KEY(主表作为外键的列名)REFERENCES 从表名(从表列名)

学生(student)

stu_id (学生id)   stu_name(学生姓名)

stu_age(学生年龄)   stu_gender(学生性别)  stu_classes(学生班级)

create table student(

stu_id int PRIMARY KEY AUTO_INCREMENT,-- 主键自增,非空唯一

stu_name varchar(20) not null,-- 非空

stu_age int,

stu_gender varchar(10) check(stu_gender=‘男‘ or stu_gender=‘女‘ ),-- 限制只能为‘男‘或‘女‘ stu_classes int

)

-- 添加班级外键

ALTER TABLE student ADD CONSTRAINT stucl_FK1 FOREIGN KEY(stu_classes) REFERENCES classes(cl_id)

-- ALTER TABLE主表名 ADD CONSTRAINT 外键名 FOREIGN KEY(主表作为外键的列名)REFERENCES 从表名(从表列名)

科目表(subject)

su_id(科目的id)    su_name(科目名称)   su_teacher(科目老师)

create table subject(

su_id int PRIMARY KEY AUTO_INCREMENT,-- 主键自增,非空唯一

su_name varchar(20) unique not null ,-- 非空唯一

su_teacher int  not null-- 非空

)

-- 添加老师外键

ALTER TABLE subject ADD CONSTRAINT sute_FK1 FOREIGN KEY(su_teacher) REFERENCES teacher(te_id)

-- ALTER TABLE主表名 ADD CONSTRAINT 外键名 FOREIGN KEY(主表作为外键的列名)REFERENCES 从表名(从表列名)

学生科目关联表(stu_su)

ss_id(科目关联表id)    stu_id(学生id)    su_id(科目id)

create table stu_su(

ss_id int PRIMARY KEY AUTO_INCREMENT,-- 主键自增,非空唯一

stu_id int ,

su_id int

)

-- 添加学生外键

ALTER TABLE stu_su ADD CONSTRAINT stu_FK FOREIGN KEY(stu_id) REFERENCES student(stu_id)

-- ALTER TABLE主表名 ADD CONSTRAINT 外键名 FOREIGN KEY(主表作为外键的列名)REFERENCES 从表名(从表列名)

-- 添加科目外键

ALTER TABLE stu_su ADD CONSTRAINT su_FK FOREIGN KEY(su_id) REFERENCES subject(su_id)

-- ALTER TABLE主表名 ADD CONSTRAINT 外键名 FOREIGN KEY(主表作为外键的列名)REFERENCES 从表名(从表列名)

时间: 2024-11-03 05:44:02

Mysql学生管理系统:表的建立,外键一对多,多对多关系,中间关联表的建立的相关文章

MySQL 建立外键约束

http://www.jzxue.com/shujuku/mysql/201109/06-8742.html MySQL 建立外键约束的语法太晦涩难懂了, 不得不记下笔记. 1. 在建表时建立外键 CREATE TABLE table_s ( `id` int(11) NOT NULL AUTO_INCREMENT, `column_name_from` int(11) NOT NULL, `name` varchar(256) NOT NULL, PRIMARY KEY (`id`), IND

Mysql使用Navicat建立外键时报错cannot add foreign key constraint分析

Mysql使用Navicat建立外键时报错cannot add foreign key constraint分析 1)要关联的字段类型或长度不一致. 2)两个要关联的表编码不一样. 3)某个表已经有记录了. 4)将"删除时"和"更新时"都设置相同,如都设置成CASCADE. 原文地址:https://www.cnblogs.com/neymargoal/p/10072347.html

Mysql 截断表时由于外键约束无法完成时的处理方法

而在MySQL?5.5中,存在外键约束的InnoDB表,在任何情况下都不允许进行Truncate操作,并报错(Error 1701),如果朋友你实在是有点强迫症,那么可以用下面的方式拐着弯解决: 导出数据库数据位.sql文件. 随便用个文本编辑器打开文件. 手动编辑一下.sql文件,怎样编辑相信你看了下面这个图就知道了 4.再将编辑好的.sql文件重新导入就OK了.

SQL_建立外键约束

--外键与和它相对应的主键可以属性名不同,但是数据类型和长度必须一致 --外键约束中约束表中德约束字段必须是主键或者候选键,即必须有唯一性 alter table students --指定修改的表 add constraint fk_ClassName -- 添加约束的名称 foreign key(ClassName) --指定students表建立外键的字段 references teachers (Greade) --指定外间约束表的名称以及字段 --在创建表是创建外键约束 --单字段说明

SQL Server中建立外键的方法

在SQL中建立外键约束,可以级联查询表中的数据,在C#代码生成器中,也能根据外键关系生成相应的外键表数据模型.外键也可防止删除有外键关系的记录,一定程度上保护了数据的安全性. 步骤: 1.要建立外键关系,首先要保证用来建立外键关系的列具有唯一性,即具有 UNIQUE 约束通常是某表的主键作为另外一个表的外键 2.打开数据库表,找到要建立外键的表.并确保其中要建立外键关系的列与主键表中的数据类型完全一致 3.在要建立外键关系的表中,在任意列上右击,选择[关系] 4.在外键关系对话框中,点击左下角的

MySQL基础day03 存储引擎和外键MySQL 5.6

MySQL基础day03_存储引擎和外键-MySQL 5.6 外键的条件: 1,表的存储引擎为innodb存储引擎 2,表中外键字段的类型要与参考表的字段类型一致 3,外键字段要是索引类型中的一种 MySQL数据库的存储引擎 存储引擎:是mysql结构中的组成部分 mysql体系结构: 由8部分组成:连接池.Sql接口.分析器.优化器.缓存和缓冲.存储引擎.管理工具.物理存储设备 1.客户端:mysql 2.连接器: NativeC API 本地C语言接口.JDBCJAVA的数据库连接器.ODB

Python3-sqlalchemy-orm 联表查询-无外键关系

#-*-coding:utf-8-*- #__author__ = "logan.xu" import sqlalchemy from sqlalchemy import create_engine,func from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column,Integer,String,DATE from sqlalchemy.orm import session

Mysql外键的变种 三种关系

一.介绍 因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 二.重点理解如果找出两张表之间的关系 分析步骤: #1.先站在左表的角度去找 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id) #2.再站在右表的角度去找 是否右表的多条记录可以对应左表的一条记录,如果是,则证明右表的一个字段foreign key 左表一个字段(通常是id) #3.总结: #多对一: 如果只有步骤1成立,则是

ORACLE中查看表中的外键来源于哪些表

1. ORACLE中查看表中的外键来源于哪些表 select cl.table_name from user_cons_columns cl left join user_constraints c on cl.constraint_name = c.r_constraint_name where c.constraint_type = 'R' and c.table_name = '表名' 2.Oracle中查看表中的主键被被哪些表引用为外键

SQL SERVER中获取表间主外键关系

sql server 2008中的主外键关系获取方式: 转自:http://www.cnblogs.com/ke10/archive/2012/06/11/2544655.html SELECT OBJECT_NAME(con.constid) '关系名' ,OBJECT_NAME(sf.fkeyid) '主键表' ,fcol.name '主键' ,OBJECT_NAME(sf.rkeyid) '外键表' ,rcol.name '外键',st.name'数据类型'FROM sysforeignk