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 从表名(从表列名)
Mysql学生管理系统:表的建立,外键一对多,多对多关系,中间关联表的建立的更多相关文章
- MySQL 建立外键约束
http://www.jzxue.com/shujuku/mysql/201109/06-8742.html MySQL 建立外键约束的语法太晦涩难懂了, 不得不记下笔记. 1. 在建表时建立外键 C ...
- MySQL建立外键(Foreign Key)
如果在最初建立表的时候就建立外键这样一般不会有什么问题,顺便说一下建立外键的时候,需要注意的地方. cascade方式在父表上update/delete记录时,同步update/delete掉子表的匹 ...
- Django——ContentType(与多个表建立外键关系)及ContentType-signals的使用
一.ContentType 在django中,有一个记录了项目中所有model元数据的表,就是ContentType,表中一条记录对应着一个存在的model,所以可以通过一个ContentType表的 ...
- Django学习——Django测试环境搭建、单表查询关键字、神奇的双下划线查询(范围查询)、图书管理系统表设计、外键字段操作、跨表查询理论、基于对象的跨表查询、基于双下划线的跨表查询
Django测试环境搭建 ps: 1.pycharm连接数据库都需要提前下载对应的驱动 2.自带的sqlite3对日期格式数据不敏感 如果后续业务需要使用日期辅助筛选数据那么不推荐使用sqlite3 ...
- 自增特性,外键,级联更新与级联删除,表间关系,SELECT用法,GROUP BY
自增特性 自动增长的作用: 问题:为数据表设置主键约束后,每次插入记录时,如果插入的值已经存在,会插入失败. 如何解决:为主键生成自动增长的值. 自动增长的语法: 字段名 数据类型 AUTO_INCR ...
- 第15课-数据库开发及ado.net-数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库
第15课-数据库开发及ado.net 数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库 1. 学习方法 2. 多涨见识 3. 比自己强的人一起,学习更强:比自己更聪明的人 ...
- mysql更新(五) 完整性约束 外键的变种 三种关系 数据的增删改
11-数据的增删改 本节重点: 插入数据 INSERT 更新数据 UPDATE 删除数据 DELETE 再来回顾一下之前我们练过的一些操作,相信大家都对插入数据.更新数据.删除数据有了全面的认识. ...
- 在PowerDesigner中设计物理模型1——表和主外键
原文:在PowerDesigner中设计物理模型1--表和主外键 在PD中建立物理模型由以下几种办法: 直接新建物理模型. 设计好概念模型,然后由概念模型生成物理模型. 设计好逻辑模型,然后由逻辑模型 ...
- SQL Server中建立外键的方法
在SQL中建立外键约束,可以级联查询表中的数据,在C#代码生成器中,也能根据外键关系生成相应的外键表数据模型.外键也可防止删除有外键关系的记录,一定程度上保护了数据的安全性. 步骤: 1.要建立外键关 ...
- python 全栈开发,Day62(外键的变种(三种关系),数据的增删改,单表查询,多表查询)
一.外键的变种(三种关系) 本节重点: 如何找出两张表之间的关系 表的三种关系 一.介绍 因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 二.重点理解如果找出 ...
随机推荐
- ios8及以前的特性
目前最新系统为ios8.以下为历代系统的回顾: iOS 1 关键词:iPhone的诞生 也许放在现在来看,当时的情景很难想象.当第一代iPhone正式发布时,在某些功能和方面其实是要远远落后于当时的竞 ...
- 【转】 iOS开发UI篇—UIScrollView控件实现图片轮播
原文:http://www.cnblogs.com/wendingding/p/3763527.html iOS开发UI篇—UIScrollView控件实现图片轮播 一.实现效果 实现图片的自动轮播 ...
- iOS UICollectionview的详细介绍
转载自:http://jinqianchina.github.io/2015/08/16/UICollectionview%E7%9A%84%E4%BD%BF%E7%94%A8%E8%AF%A6%E8 ...
- 算法系列之图--DFS
深度优先搜索使用的策略是,只要与可能就在图中尽量“深入”.DFS总是对最近才发现的结点v出发边进行探索,知道该结点的所有出发边都被发现为止.一旦v的所有出发边都被发现了,搜索就回溯到v的前驱结点(v是 ...
- [转]jQuery,javascript获得网页的高度和宽度
网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.body.offsetWi ...
- 个人工作记录---工作中遇到的sql查询语句解析
在工作中写了人生的第一个查询语句,虽然是在原有基础上改的,但仍然学到了不少知识 代码: select distinct m.id, (select z.jianc from model_zuzjg z ...
- 百度分享 ajax 或分页后显示不出问题解决方案
自从用了AJAX后,JS重新加载问题就如家常便饭般层出不穷啊.没有系统学习过js感觉亚历山大. 百度后,还是找到了解决办法. 百度分享创建了一个全局对象window._bd_share_main.通过 ...
- PHP下编码转换函数mb_convert_encoding与iconv的使用说明
mb_convert_encoding这个函数是用来转换编码的. 不过英文一般不会存在编码问题,只有中文数据才会有这个问题.比如你用Zend Studio或Editplus写程序时,用的是gbk编码, ...
- 解决方案-Microsoft Visual Studio 2012 已停止工作
问题: 根本解决方案: 用管理员模式运行. 找到软件的安装目录 \Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe 然后如何保存管理员权限运行呢? ...
- linux主要目录的作用
手动敲一遍.算是加强记忆吧~ /:文件系统的入口,也是最高一级的目录 /bin:最基本的且着急用户和普通用户都可以使用的命令放在此目录下,如:ls.cp等 /boot:存放Linux的内核及引导系统所 ...