编程题: (考试时间4小时,个人测试,闭卷考试,请勿抄袭,可查阅文档)
1、完成如下sql语句 (24分,每小题4分)
TableX有三个字段 Code、Name、Age 其中 Code 为主键。学生表
TableY有三个字段Code、Class、Score,其中 Code + Class 为主键。 成绩表
两表记录如下:
Code Name Age Code Class Score
97001张三 22 97001数学80
97002赵四21 97002计算机59
97003张飞20 97003计算机60
97004李五22 97004数学55
1、有写出 SQL,找出所有姓张的学生,并按年龄从小到大排列
SELECT
*
FROM
tablex
WHERE
NAME LIKE '张%'
ORDER BY age
2、请写出SQL,取出计算机科考成绩不及格的学生;
SELECT
*
FROM
tablex AS x,
tabley AS y
WHERE
x.CODE = y.CODE
AND y.Class = '计算机'
AND y.Score < 60
3、通过等值联接,取出Name、Class、Score,请写出SQL即输出结果
SELECT
x.NAME,
y.Class,
y.Score
FROM
tablex AS x,
tabley AS y
WHERE
x.CODE = y.CODE
5、请写SQL,在Tablex表中增加一条学生记录(学号:97005姓名:赵六年龄:20):
INSERT INTO tablex ( CODE, NAME, age )
VALUES
( 97005, '赵六', 20 )
6、李五的年龄记录错了,应该是21,请写SQL,根据主键进行更新
UPDATE tablex a
SET a.age = 21
WHERE
CODE = (Select code from(Select code From tablex as b where name='李五'))
2、完成如下sql语句(20分)
存在单位表UNIT 包含三个宇段:主键ID、名称 NAME、排序号 ORD,用户表USER 存在四个字段:主键 ID、单位外键(UNIT_ID)、代码CODE、排序号 ORD,两张表之间是一对多的关联关系,根据下面的要求写出相应的 SQL 语句。
A.查询用户信息,使其先按单位排序字段升序,如果单位相同再按自身的排序字段升序;(5分)
SELECT
*
FROM
USER
ORDER BY
UNIT_ID ASC,
ord ASC
B.查询单位信息,要求单位中至少包含2人:(7分)
SELECT
unit.*,
FROM
USER,
unit
WHERE
unit.ID = USER.UNIT_ID
GROUP BY
USER.UNIT_ID
HAVING
count( * ) >=2
C.查询单位信息,要求包括每个单位下的人员数量(8分)
SELECT
unit.*,count( * ) as 人员数量
FROM
USER,
unit
WHERE
unit.ID = USER.UNIT_ID
GROUP BY
USER.UNIT_ID
3、请写出 spring boot 中常用的注解,并简要描述,至少写出 10种(10分)
@ResponseBody:将返回值转换成json格式返回给前端
@Controller:作用于表现层上,将对象交给spring的IOC容器进行管理
@RestController:@ResponseBody注解和@Controller注解的组合
@RequestMapping:设置访问资源的唯一路径
@Autowired:将IOC容器中的bean自动注入到私有成员变量中
@Service:作用于业务层,将自己的对象交给IOC容器进行管理
@Repository:作用于持久层,把自己的对象交给IOC容器管理
@DateTimeFormat:规定时间类型的格式
@RequestParam:给形参设置别名从而达到前后端参数名不一致的目的,设置参数是否必填,还可以设置默认值
@PathVariable:路径参数必须要加的
@RequestBody:把前端传来的json格式的数据自动给封装到形参中去
@Component:把该类的对象交给spring的IOC容器管理,作用于不属于三层架构中的类
@ConfigurationProperties:批量的将外部的属性配置注入到bean对象中的属性中去
@Value:单个的将外部的属性注入到当前的成员中去
@SpringBootApplication:引导类
@Qualifier:和@Autowired注解搭配使用,给定需要注入的名称
@Mapper:把接口的实现类对象交给mybatis自动创建,交给IOC容器管理
@Slf4j:提供了日志对象
@Resource:根据名称进行注入
4、请写出Controller 接收参数的注解类型,并简要描述(6分)
@RequestParam:给形参设置别名从而达到前后端参数名不一致的目的,设置参数是否必填,还可以设置默认值
@PathVariable:路径参数必须要加的
@RequestBody:把前端传来的json格式的数据自动给封装到形参中去
@Value:单个的将外部的属性注入到当前的成员中去
5、项目实战,完成资料中项目代码 (40分)
认真阅读业务需求
准备工作:
a、导入项目 和 sql 脚本文件
b、修改 application-druid.yml 配置文件中数据库密码
c、修改DruidDataSourceConfig类中的数据库和密码连接
功能实现:
a、完成 ZhrjAlarmInfoController 类中请求补全
b、完成 ZhrjAlarmInfoServiceImpl 类中代码补全
注意事项:
需要遵从良好编码规范