一、时间差 timestampdiff
给了试卷开始和结束时间,要的是作答时间,就需要用到时间差:
timestampdiff (interval, time_start, time_end)计算结束时间和开始时间相隔的时间差,interval指的是时间单位,主要有:
second,秒;
minute,分钟(返回的秒数整除以60的整数部分);
hour,小时(返回的秒数整除以3600的整数部分);
month,月数;
day,天数;
year,年数
答案:
delete from exam_record
where timestampdiff(minute,start_time , submit_time)< 5
and score<60;
二、修改表alter
题目:
1、alter table语句用来在表中添加、修改、删除数据,具体操作如下:
- 添加
alter table 表名 add 要添加的列 datatype;
- 修改
alter table 表名 change 新列名 旧列名 datatype;
- 删除
alter table 表名 drop 列名;
- modify主要是修改列的属性(默认值、自增等属性)
alter table 表名 modify 列名 datatype 属性;
2、将列名添加到指定列的后面,使用after关键字
alter table 表名 add 新列名 datatype after 制定列名;
3、答案:
三、索引的创建删除和使用
题目:
答案:
或者
1、索引分类:
- 普通索引 index
没有任何限制,可以为空值、重复值等; - 唯一索引 unique index
索引值唯一,可以允许空值,但不能重复值; - 主键索引 primary index
在唯一索引的基础上,列上的数值为主键; - 全文索引 fulltext
对表中所有字符(char、varchar、text)进行索引;
-组合索引 遵循最左前缀原则
只有执行了第一个索引生效后才能执行下一个索引
2、索引创建的几种方法:
举例对象:表(exam),普通索引(index)
create语句创建
create index 索引名 on table_name(列名);
举例:
create index idx1 on table exam (id);
#在表exam的id列建立普通索引idx1
create unique index idx2 on table exam (id);
#在表exam的id列建立唯一索引idx2
alter语句创建
alter table 表名 add index 索引名(插入的列名);
举例:
alter table exam add index idx2(name);
#给exam的name列,添加普通索引idx2
3、删除索引
drop方法删除
drop index 索引名 from 表名;
举例:
drop index idx3 on exam;
# 删除exam表里面的索引idx3
drop index idx4 on exam;
# 删除exam表里的唯一/全文/主键索引idx4
不管是什么类型的索引,drop后面都是跟index,而不是unique index、fulltext index之类的名字
alter方法删除
alter table 表名 drop index 索引名;
举例:
alter table exam drop index idx3;
#删除exam表中的普通/唯一/全文/主键索引idx3