精华内容
下载资源
问答
  • 例如用户表与老师表之间:假设一个老师有多个学生,而每个学生只有这一个老师,老师与...在学生表中添加一个字段tid(用来指向teacher表的主键)二.在特定数据库打开命令列界面,修改student表添加外键通用建立外键m...

    例如用户表与老师表之间:

    假设一个老师有多个学生,而每个学生只有这一个老师,老师与学生关系就是标准的一对多(1:n)。

    添加外键就是在多的地方添加外键,简单来说,就是在student学生表中添加引用老师主键的外键。

    具体操作:

    第一种情况:

    在已建立好这两个表的前提下,

    一.在学生表中添加一个字段tid(用来指向teacher表的主键)

    二.在特定数据库打开命令列界面,修改student表添加外键

    通用建立外键mysql语句如下:

    alter table student add foreign key(tid) references teacher(id);

    alter table 子表的数据表名 add foreign key(子表的外键名称) references 父表的数据表名称(父表的主键名称);

    第二种情况,还未创建表时

    一.创建一个父表(teacher),主键作为子表(student)的外键:

    create table `teacher`(

    id int primary key auto_increment,

    name varchar(20)

    )ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

    2:创建子表,外键是父表的主键:

    create table `student`(

    id int primary key auto_increment,

    name varchar(20),

    tid int,

    foreign key(tid) references teacher(id)

    )ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

    ps:说明一个报错,第一种情况的,必须要先在student表中建立一个tid字段,否则立刻执行alter table ...语句会报如下错:

    Cannot add or update a child row: a foreign key constraint fails (mybatis.#sql-13f0_2, CONSTRAINT #sql-13f0_2_ibfk_1 FOREIGN KEY (id) REFERENCES teacher (id))

    from lj 2020-06-23

    展开全文
  • 【简答题】(3)stu,sign,stu_mark表中分别添加三条记录。写条查询,作用是:查询报考北大学生的学号,姓名,地址,电话,分数等信息。【简答题】(4)创建视图beida,包括考上北大学生的学号,姓名,成绩和报考学校名称。...

    【简答题】实操:空值查询1查询student表中gender为空值的记录;2查询student表中gender不为空值的记录。

    【简答题】(3)在stu,sign,stu_mark表中分别添加三条记录。写一条查询,作用是:查询报考北大学生的学号,姓名,地址,电话,分数等信息。

    【简答题】(4)创建视图beida,包括考上北大学生的学号,姓名,成绩和报考学校名称。(假设>=720分能考上北大)

    【简答题】(5)创建考上清华大学的学生视图qinghua,并更新视图。(假设>=725分能考上北大)

    【简答题】用具体实例演示事务的回滚。

    【简答题】用具体实例演示事务的提交。

    【简答题】2.2 修改表(10) 1 )customer表:将马云的邮政编码改为:110120 ,地址改为:北边小湖边(5)

    【简答题】简述事务概念、特点、语法结构。

    【简答题】通过转账案例演示如何使用事务: 首先开启一个事务,然后通过update语句将a账户的100元钱转给b账户,最后提交事务。

    【简答题】2.定义错误代码为42000的条件,及其处理程序set @x=1;

    【简答题】2.3 删除表(10) 新建表new_vendor:表结构如下: 字段名 数据类型 长度 约束 描述 vid int 11 非空,主键 唯一的供应商ID,自动增长 vname varchar 50 非空 供应商姓名 vaddress varchar 50 默认为null 供应商地址 vcountry varchar 50 默认为null 供应商所在国家 1 )将vendor表中的vid,vname,vaddress,vcountry复制到new_vendor表中(5) 2 )删除new_vendor表中所有数据(5)

    【简答题】实操:带like关键字的查询1查找student表中name字段值以字符“s”开头的学生id;2查询student表中name字段值以字符“w”开始,以字符“g”结束的学生id。

    【简答题】3.按提供语句,创建stu表,创建存储过程addcount能够获取表stu中的记录数和ID之和。

    【简答题】2.基于单表student表,创建视图view_stu,视图分别定义字段id,name,math,chinese,math+chinese(计算某个学生的数学+语文的成绩之和)

    【简答题】4 )供应商表:vendor添加以下数据:(4)

    【简答题】实操:带between and关键字的查询1查询student表中id值在2--5之间学生姓名;2查询student表中id值不在2--5之间学生姓名。

    【简答题】4.列举两种删除用户的方法。

    【简答题】3.定义存储过程proc(),作用是查看数据表stu中所有性别为男的记录。

    【简答题】2.1 添加数据(20) 1 )为顾客表:customer添加以下数据:(4)

    【简答题】带关系运算符的查询1查询student表中id为4的学生的姓名;2查询student表中grade大于80的学生姓名。

    【简答题】2 )为产品表:product添加以下数据:(4)

    【简答题】6.mysql中权限信息存储在哪个数据库的哪些表中?

    【简答题】3.mysql中,用户信息保存在哪个位置?用三种不同的方式,创建新用户user1,user2,user3,密码全设为123,将创建语句和查看user表的截图放下边。

    【简答题】实操:带distinct关键字的查询1查询student表中gender字段的值,查询记录不能重复;2查询student表中gender和name字段,使用distinct关键字作用于这两个字段。

    【简答题】查询student表中所有记录,将各个字段使用下划线“_”连接起来。

    【简答题】1select语句中指定所有字段查询的语法 ;2select语句中使用星号(*)通配符代替所有字段查询的语法。

    【简答题】(2)新建表stu,sign,stu_mark,并用desribe命令查看这三个表的结构,将截图如下。

    【简答题】3.在基本表student和stu_info上创建视图stu_class(id,name,class)。

    【简答题】(1)查看所操作的Mysql环境中有没有chapter06这个数据库,如有,请删除后,再新建chapte06这个数据库。请将上操作语句及操作截图如下。

    【简答题】1.什么是视图?视图的优点,建立视图的语句是?

    【简答题】4.查看视图view_stu的字段信息,状态信息,定义语句和字符编码。

    【简答题】为student表起一个别名s,并查询student表中gender字段值为“女”的记录

    【简答题】英语中你知道的词性有哪些?英语缩写是什么?

    【简答题】5.修改root用户密码的操作是?root用户修改普通用户密码的方式是?

    【简答题】查询student表中的id和gender字段值,如果gender字段值为“男”则返回1,否则返回0。

    【简答题】7.用grant语句新建用户user4,并查看user表中其权限,然后,使用user4用户登录,用show databases;命令查看其管理的数据库。

    【简答题】5.删除proc()。

    【简答题】实操:带in关键字查询1查询student表中id为1、2、3的记录;2查询student表中id不为1、2、3的记录

    【简答题】8.使用revoke语句收回user4的insert权限,并查看user表中其权限信息;再用revoke语句收回user4的所有权限,然后,使用user4用户登录,用show databases;命令查看其管理的数据库。

    【简答题】2.在前一题基础上,删除chapter08数据库,然后还原chapter08数据库,将操作过程写在下边。

    【简答题】查询student表中的所有记录的name和gender字段值,并为这两个字段起别名stu_name和stu_gender。

    【简答题】1.请写出用mysqldump命令备份chapter08数据库的SQL语句。

    【简答题】1.简述存储过程的作用,及创建的语法结构。

    【简答题】5 )库存表:recruit添加以下数据:(4)

    【简答题】2.在chapter06数据库中创建一个stu表(name,grade,gender),并向表中添加数据,('tom',60,'男'),('jack',70,'男'),('rose',90,'女'),('lucy',100,'女');并查看数据表是建立是否正常。

    【简答题】3 )订单表:order1添加以下数据:(4)

    【简答题】编写存储过程proc(),在存储过程中编写SQL语句,要求如下: (1)实现1-10之间数字的遍历。 (2)当数字大于10退出遍历过程。 (3)数字在1-10之间时,遍历数字并输出。

    【简答题】4.查看是否定义proc()这个存储进程,并调用执行验证结果。

    【简答题】事务的四大特性都有哪些?

    【简答题】2 )product表:将产品编号为2的产品描述改为:我世界最牛的手机,手机中的大哥大(5)

    展开全文
  • StudentInfo 基于SSM的学生信息管理系统...2019.6.19:新增成绩录入,鉴于这是一个简单的学习项目,因为时间问题暂停更新,会陆续解决已有bug 已停更 当你的才华还撑不起你的野心的时候,你就应该静下心来学习。
  • 常用的约束条件 Navicat 中设置主键如下图 主键添加 如果把用户的Id 设置为主键,那么每多一...实现:而班级表中的班级id(班级表中的班级Id 作为主键),学生表定义一个字段(学生班级id)作为外键,该外键 ...

    常用的约束条件

    在这里插入图片描述
    在Navicat 中设置主键如下图
    主键添加
    在这里插入图片描述
    如果把用户的Id 设置为主键,那么每多一个用户,主键就会自动增长一条数据,并且每个人的id还不重复。

    表中关系

    一对多的关系

    一对多关系,为一个表中的数据对应着另外一张表的多条数据
    例如:班级 与 学生 之间的关系
    实现:而班级表中的班级id(在班级表中的班级Id 作为主键),学生表定义一个字段(学生班级id)作为外键,该外键 关联上 班级表中的主键。
    Navicat中的设置图
    在这里插入图片描述
    这里 添加的cla_id (学生id) 去参考班级表中的id .
    总结:一对多总结为 多的一方,参考少的一方。

    一对一模式

    一对一:该表中的一条记录,对应着另一张表的一条记录。
    比如: 学生和学生的个人信息。
    实现方式:两张表中,某一张表中的外键关联到另一张表中的主键,索引设置为唯一。

    多对多模式

    多对多:两张表中的每条记录都对应着另外一张表中的多条记录。
    比如: 学生与课程
    实现方式:
    建设第三张表,我们只需要把两张表中的主键(课程id 学生id )分别作为外键进行保存
    Navicat中设置第三张表如下图
    在这里插入图片描述

    自关联一对多

    自关联 :顾名思义,就是表内数据关联表内的
    比如: 商品类型(电子类的id),对应着商品 有手机,电子表等
    比如下图中,这张表 pid 要关联到自己表中的id。
    在这里插入图片描述

    展开全文
  • 由于在前面我使用的是mangtomany的方式添加的多对多关系,在这功能,由于要涉及到分数,而分数和课程已经学生的关系甚至和课程的关系都是对多,所以分数字段在学生与课程的中间,是最符合他们之间的关系。...

    一、简述

    这个部分可以算是这个系统的难点部分了,主要涉及到了对多对多表格关系之间的操作

    由于在前面我使用的是mangtomany的方式添加的多对多关系,在这个功能中,由于要涉及到分数,而分数和课程已经学生的关系甚至和课程的关系都是一对多,所以分数字段在学生与课程表的中间表,是最符合他们之间的关系。

    但是由于使用manytomany的方法,无法直接对中间表进行操作,所以必须要从新定义这个中间表的model。但是这个时候再来从新定义一个相同的中间表会导致更改很多东西。所以为了我再次地应了一个新的中间表(score)

    新的score表在每次选择或者取消课程的同时也进行一次相对应的操作

    score表的建立方式, 由于前几次migrate出现了错误,导致我在migrate的时候出现了很多错误,所以在这里我还是直接使用Navicat进行表格的建立

    create table score(
        id int not null auto_increment,
        course_id int default null,
        stu_id int default null,
        primary key(id),
        foreign key(course_id) references course(id),
        foreign key(stu_id) references student
    )

    虽然没有使用python manage.py makemigrations这些操作,model模型的定义还是不能少

    class StuCourse(models.Model):
        student = models.ForeignKey(Student)
        course = models.ForeignKey(Course)
        score = models.IntegerField(null=True, blank=True)
    
        class Meta:
            db_table = 'scores'

    上面需要注意的是blank,null属性的区别,前者是在表单提交时是否可以为空,后者是数据库中是否可以为空,如果想要想创建学生id和课程id,再添加score,请一定要加上blank=True。否则后果自负。

    二、添加方法:

    def sure_scores(request):
        if request.method == 'POST':
            course_id = request.POST.get('course_id')
            stu_id = request.POST.get('stu_id')
            stu = Student.objects.get(pk=stu_id)
            g_id = stu.g_id
            course_id_score = request.POST.get('score_'+course_id)
            stucourse = StuCourse.objects.get(course_id=course_id, student_id=stu_id)
            stucourse.score = int(course_id_score)
            stucourse.save()
            return HttpResponseRedirect(reverse('course:currentgs', kwargs={'g_id': g_id}))

    img

    没有进行过多的页面渲染,这个页面是先通过选择班级,再跳转进入的,目前只有第一个学生进行了选课的操作,如图所示。

    三、查询方法

    def select_scores(request):
        if request.method == 'GET':
            s_name = request.session['s_name']
            stu = Student.objects.get(s_name=s_name)
            stucourses = stu.stucourse_set.all()
            return render(request, 'selscores.html', {'stucourses': stucourses, 'stu': stu})

    img

    查询方法是先找到对应id所有的stucourses, 通过单个stucourse.course的方法可以直接找到所对应的course对象,从而达到相识课程名的效果。到此,这个学生信息管理系统也就基本完成了。但是由于项目中,遇到的某些事,中间暂停了一段时间,最终的效果其实并没有完全达到我之前想要达到的效果。

    目前未完成的功能:管理员登录功能、用户登录验证功能

    这两个功能,我将在下一篇介绍MiddleWare中间件的时候,一起实现。

    展开全文
  • 典型的方法就是对于主的各数据字段进行更新或新增,对于从一般都会先删除相关的所有记录,然后再进行插入。也就是说每次保存时,从的数据都要重新执行一遍删除再插入的...应用场景,在学生管理添加一条学生
  • 数据库设计(对多,多对多)

    万次阅读 多人点赞 2018-09-26 09:21:05
    目录   一、总结 二、数据设计(一对多,多对多) 三、数据库怎么设计多对多的数据   ...1、项目小组和主题之间是多对多的 ...3、多对多的话:比如老师和学生,建立一个关系id,老师id,学生id即可...
  • 怎样用EXCEL对数值型字段进行分组?

    万次阅读 2018-09-01 15:57:33
    如图,1是原始数据,在表1中添加一个辅助列“分组”就形成了2.字段“分组”是根据字段“成绩”决定的。学生成绩0-59区间为“不及格”,60-75区间为“及格”……分组的依据见3.把1变成2就是数值分组。 ...
  • 如图,1是原始数据,在表1中添加一个辅助列“分组”就形成了2.字段“分组”是根据字段“成绩”决定的。学生成绩0-59区间为“不及格”,60-75区间为“及格”……分组的依据见3.把1变成2就是数值分组。 ...
  • 如图,1是原始数据,在表1中添加一个辅助列“分组”就形成了2.字段“分组”是根据字段“成绩”决定的。学生成绩0-59区间为“不及格”,60-75区间为“及格”……分组的依据见3.把1变成2就是数值分组。 ...
  • mysql的触发器功能十分强大,这里主要是使用触发器来为状态的...这里我要student表添加一个触发器用于监听表中的state字段发生变化的时候就添加一条日志 定义的内容为: begin if new.state!=old.state then ...
  • 数据库的约束

    2021-01-05 19:10:55
    通常情况下,一般会给表添加一个id字段,用作唯一标识,设置为主键,主键一般是提供给数据库操作使用的(查询,修改,删除等等),主键不能重复,也不能为空。 比如: 一个人的身份证号、一个人手机号,一个学生的学号...
  • 我们建立管理员表、老师表、学生表,起初每张表的属性没有必要填的过于全面,我们开始要注重的是表之间的关系,表的属性可以后面添加 1、建第类表 老师和学生之间是多对多的关系(n:n) 学生和管理员之间是多对...
  • 一、多表操作关系型数据库具有三种常用关系:一对一关系、一对多...Hibernate映射中,院系表中添加一个集合属性,集合属性存放该院系下的学生。学生表中将院系编号字段映射成一个院系类对象。这样通过院系类对象的
  • 思考构图大小及范围首先,...制作概念模型我们建立管理员表、老师表、学生表,起初每张表的属性没有必要填的过于全面,我们开始要注重的是表之间的关系,表的属性可以后面添加1、建第类表老师和学生之间是多对...
  • 子查询数据库的设计一对多多方需要添加一个字段,并且和一放主键的类型必须是相同的。把该字段作为外键指向一方的主键。 eg:生活一个部门下有多个员工,一个员工属于一个部门。多对多拆开两个一对多的关系,...
  • 数据库怎么设计多对多的数据表一、总结1、项目小组和主题之间是多对多的2、可以将常用信息和不常用信息分成两个表来优化数据库2、对多的话:多的里面建立字段,比如母亲()和孩子(多),孩子里面添加...
  • 多表关联查询 表结构 ...学生表(s_student)字段有id、name、age、gender,cid ...班级(t_class),字段有id,name,room ...创建班级类(Clazz)和学生类(Student),并student中添加一个C...
  • mysql第天作业

    2017-07-24 19:17:00
    1、在一个数据库创建学生表,...2、在学生表添加一个班级字段,字符串类型,非空约束 3、将姓名字段改为唯一约束 4、将学生表名改为stu 转载于:https://www.cnblogs.com/z-x-y/p/7230579.html...
  • ** 本文的主要内容为记录一下ACCESS数据库两张的联结,联结的好处是可以关联两张数据,观看数据时不用...图1位学生信息,表格有四个字段,序号、学号、姓名、和性别,图2为学生成绩,也是四个字段,分别为
  • 1、Hibernate多表操作   关系型数据库具有三种常用关系:一对一关系、一对多关系和多对多关系。  建立了一对多关系的表之间,一方中的表叫“主表”,多方中的...Hibernate映射中,院系表中添加一个集合属性,集合
  • 学生学籍管理信息系统

    热门讨论 2009-05-28 14:51:27
    ④ 用户对学生在校期间个人基本信息发生变化的,系统进行修改 ⑤ 期末考试结束,把每个学生的成绩进行录入、修改、查询和打印 3.功能 3.1功能划分 学生档案管理系统必须完成以下功能: 系统管理模块学籍管理...
  • 数据设计三大范式

    2020-08-23 15:06:32
    一、第一范式1NF ...如果有一个新的系还没有开始找到学生,那么不能讲该系的信息添加到数据表中去,从数据表中看不到该系的存在 如果将某个系的学生信息全部删除,那么这个系数据表里也就不存在了,
  • 数据库怎么设计多对多的数据 ...3、多对多的话:比如老师和学生,建立一个关系id,老师id,学生id即可 二、数据设计(一对多,多对多) 做一个项目,必然是少不了数据库设计的!...
  • 我现在在学生表的xml只配置了学生表字段,实体类也只写学生字段。 我在xml语句进行关联查询,效果也没出错。 既然没出错,为什么还要配置关联? 不明白关联的作用,现在如果我要删除学生信息,还需要自己...
  • 数据库建立一个表 表名为学生 结构为:学号, 姓名, 性别, 年龄, JAVA语言, 数据结构, 数据库, 总分 功能要求: 实现对对数据库的增, 删, 改, 查操作 界面展示与功能说明 本次作业使用SQLi
  • MySQL范式的关系

    2020-07-16 16:42:08
    1.多之间的关系 1)一对一: 例子:人和身份证 分析:一个人只有一个身份证,一个...实现方式:多对多关系实现需要借助第三张中间,中间至少包含两个字段,这两个字段作为第三张表的外键, 分别指向两张
  • 这一讲讲述mybatis如何实现一对一关系映射。...2.修改t_student,添加一个addressId字段,这个字段对应t_address的主键: 这样我们就实现了这两个的一对一映射。 3.工程新建类Address: package com.test

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 159
精华内容 63
关键字:

在学生表中添加一个字段