以下哪个函数可以实现将日期按照%Y年%m月%d日格式显示()
A. NOW()
B. DATE_FORMAT()
C. STR_TO_DATE()
D. CURDATE()
正确答案:B
解析:
NOW() 函数返回的是当前的日期和时间。
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
STR_TO_DATE() 根据fmt格式字符串将str字符串转换为日期值。 STR_TO_DATE()函数可能会根据输入和格式字符串返回DATE,TIME或DATETIME值。
CURDATE() 函数返回当前的日期。以下哪种操作能够实现实体完整性()
A. 设置唯一键
B. 设置主键
C. 设置外键
D. 设置不为NULL
正确答案:A
解析:
实体的完整性是强制表的标识符列或主键的完整性,是通过唯一约束,主键约束或标识列属性来实现编写SQL,将上述EMP表中的员工工资上调100,并查询显示
自己答案:
SELECT SAL+100 ‘员工工资’ FROM EMP
正确答案:
— 修改语句
UPDATE EMP SET SAL = SAL + 100 ;
— 查询语句
SELECT ENO,ENAME,SAL FROM EMP ;
解析:错误审核题目,本只是以为查询显示时为上调100的员工工资,所以并没有修改
4.查询员工工资大于平均水平的
自己答案:
SELECT 名称,工资 FROM 员工表 WHERE 工资>AVG(工资);
正确答案:
SELECT 编号,名称,部门,工资,( SELECT AVG(工资) FROM 员工表 ) 平均工资
FROM 员工表 WHERE 工资 > ( SELECT AVG(工资) FROM 员工表 )
解析:
整体思路:先查出员工的平均工资,再进行对比
5.查询部门人数多于1个的部门信息
自己答案:
SELECT 部.名称,COUNT(员.部门) as 人数 FROM 员工表 员 INNER JOIN 部门表 部 ON 员.部门=部.编号 WHERE 人数>1;
正确答案:
SELECT 编号,名称,人数 FROM 部门表 INNER JOIN (SELECT 部门,COUNT(编号) 人数
FROM 员工表 GROUP BY 部门 HAVING COUNT(编号) > 1)人数表ON 部门表.编号 = 人数表.部门
解析:
对于函数和排序一起使用还是不够熟练;SQL语句中搭配了分组条件,那么能展示的只有分组条件和分组函数;
整体思路:先查询部门信息,再返回部门人数的总数,再加上总数大于1的条件
总结:
1.只是粗略的了解MySQL语法结构和函数,了解的不够全面
2.聚合查询掌握的不是牢固
3.做题粗心,没有仔细审题。