关于范式二的联合主键的问题
如果有三张表,
学生表
课程表
选课表
问题(一)
学生表-->学号字段,可以加primary key
课程表-->课程编号字段,可以加primary key
那么选课表中,两个字段需要加primary key吗?或者一个加一个不加,又或者全不加?
问题(二)
是用选课表去关联其它2张表吗?
例如:
alter table 选课表 add constraint pk_选课表
foreign key(学号,课程编号) references 学生表(学号),课程表(课程编号);
老师你好,
MySQL已经被我测试得无法启动了,
看来明天要重装MySQL8了,
如果我重建同样的库名,
然后把现在Data文件夹,覆盖到同样的位置,
数据能否恢复,能否兼容?
重置密码时,提示找不到data目录,mysqld命令和data文件夹不是在同一个目录下,
请教老师:
(1)一般我在那种集成环境的工具里面,新建用户的时候,系统会让你选择这个用户管理哪一个库,
然而在这个教程没看到这个方面内容。
(2)新建用户后,修改密码报错,不知道是和老师的mysql版本不一样,
而且修改密码报错后,无论旧密码和新密码都登录不上了。
> 1133 - Can't find any matching row in the user table
请教老师,这5种方式,主要是干嘛的?
查看的内容分别是什么??
-- (三)、查看视图-- 1、使用show tables查看(主要是查看有多少个,既可以查看表,也可以查看视图)show tables;-- 2、使用show table status查看(主要是查看表的状态,注意table是没复数的,)-- 语法:show tables status [from | in 数据库名称] [like 视图名称]show table status;show table status from biantong5 like 'view_emp_dept';-- 3、使用desc查看视图(查看视图结构,既可以查看表,也可以查看视图)desc emp;desc view_emp_dept;-- 4、使用show create view 语句来查看视图创建信息show create table emp;show create view view_emp_dept;-- 5、在view表中查看-- 注意:在MySQL中,库为information_schema中有view表select * from information_schema.views where table_name='view_emp_dept';
create table index_student8( no int(8), name varchar(20), age int(2), sex int(2) ); alter table index_student8 add primary key(age); show index from index_student8; -- 使用drop index 删除主键 drop index primary on index_student8; show index from index_student8;
这个是怎么回事呢
老师你好:下面是我对一些小细节的总结,不知道对不对,请老师指正
总结: (1)多个事物的开启或者执行和查询,不能在同一个查询文本中执行 (2)在其它查询文本中,如果不事先开启事物,直接只查询,这不是对事物的查询, (3)在其它查询文本中,如果开启事物一次,也查询过一次,当其它事物改变数据时, 如果当前查询文本没有关闭,开启事物又执行了一次,查询也又执行一次, 那么等于重新来过,等于是上次开启事物和查询被替代。 就是说在当前查询文本没有关闭的情况下,不需要多次开启事物, 否则等于关闭了事物,又重新开启了事物。会导致结果的不一样 (4)若不想新建查询文本,则必须关闭这个查询文本,再次打开执行,才能不受干扰,相当于关闭了事物
老师:
我可不可以这样简单理解为:
如果把未提交的数据,称为未确定的数据
如果把已提交的数据,称为已确定的数据
那么第一种隔离,就是一通乱收,会造成数据的错误获取
那么第二种隔离,就是每次都要直接读取原数据,可以会加重数据库负担,也会给用户带来不一样结果
那么第三种隔离,相当于保留了第一次查询的缓存,然后再次查询都是读取这个缓存,减轻数据库负担?
不知道是不是可以这么简单理解?
如果是基于“CLERK”(办事员)的话,老师的这个部门统计结果好像有歧义吧?
如果是不限条件的话,10部门是3个人,20部门是5个人,30部门是6个人。因为总人数是14人,
如果限制条件为“CLERK”(办事员)的话,10部门是1个人,20部门是2个人,30部门是1个人。
我有几个问题要请教老师:
作为条件查询的时候,无论是行子查询或者是列子查询,子查询当中的字段名称和字段个数,必须和主查询中的where之后的字段名称和字段个数,保持一致?如果子查询中多出一个字段就不行?
2.而标量查询中,由于只有一个字段一行的固定值,所以不需要考虑,如果加上and后,再来一个标量查询,是不是也是要保持一致呢?
3.作为表的联表查询中,就不存在,主查询条件之后的字段名称和字段个数,要和子查询字段名称和字段个数,保持一致的问题了?
3(a):联表之时,是否能够连多张表,比如3张,和4张?全部逗号隔开吗?
3(b):当连了3张或者以上的表,那么他们是否有共同的字段名称,表达式能不能是where a.id=b.id=c.id?
4.一般统计就要用到分组查询,那么分组之后,各组列出的个体,就只是这个组中,许多个体中的排名在第一位的那个,这个组的其它个体就无法,那么是不是意味着,查询组员,和统计组员个数,是在逻辑上无法兼容的呢?
请教一下老师:
select * from emp e left join emp m on e.mgr=m.empno;select * from emp m right join emp e on e.mgr=m.empno;
照道理来说,emp e 和emp d是不分顺序的,那么区分他们顺序是不是后面的e.mgr=m.empno呢?
由于m处于后面,他的内容被改变,那么也就是说只有e中才有mgr为null的那个懂事长king?
为什么我跟老师同样的代码出现了不同的结果,请老师帮我看看
老师的能对上,我的出现错乱。
请问老师关于流程控制函数的问题,如图所示:
select ename, case ename when sal>3000 then '高工资' when sal=3000 then '中工资' else '低工资' end as '薪资水平' from emp; select sal, case sal when sal>3000 then '高工资' when sal=3000 then '中工资' else '低工资' end as '薪资水平' from emp; select ename, case 3000 when sal>3000 then '高工资' when sal=3000 then '中工资' else '低工资' end as '薪资水平' from emp; select sal, case 3000 when sal>3000 then '高工资' when sal=3000 then '中工资' else '低工资' end as '薪资水平' from emp;
-- 例如:将helloworld字符串中的hello替换为Hiselect replace('helloworld','hello','Hi') from dual;select replace('helloworld','hello','Hi');
问题1:dual是哪个表?
select * from dual;
怎么提示找不到它?
问题2:replace是真替换了字符串中的字符,还是只是输出为这样,表中没变?
select replace('helloworld','hello','Hi');
请教一下老师,我这是哪里错了?
drop index PRIMARY on index_student14;
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637