讨论/求职面试/这个笔试sql的大家看看/
这个笔试sql的大家看看

上面的几条sql语句的题,我做的都不是很正确,我只是普通的增删改查,联合查询熟悉点,求正解,小弟研究研究,感谢🙏

咋不能插图……手机点插图没反应,还是手打出来吧😓

现有2个表

city_name
城市编码city_No 城市名称cityName
001 北京
002 上海
003 广州
004 深圳
……

city_rain 记录城市日降雨量
日期date 城市编号cityNo qry降雨量
2016.1.1 001 220
2016.2.5 002 190
2016.3.6 003 500
2016.8.5 004 600

1,使用create table 建立city_rain表,主键为日期和城市编号

2,写出获取2016.1.1到2016.6.30期间,降雨量小于200的城市信息的sql语句,返回信息包含城市编号和城市名称,按照城市编号排序

3,写出获取2016年各城市总降雨量信息的sql语句,返回信息包括城市编码,城市名称,总降雨量;按城市编码排序

4,像表中增加一条城市008,武汉,2016.6.6的一条降雨量为500的记录

5,降雨量不能小于0,编写触发器进行

第1题,当时忘了主键的字母怎么拼的,只知道什么什么key😅😅
第4题我是用的2条insert分开写的😭
第5题是空着的,没怎么接触过触发器,不知道关键字是啥

这些语句题目后面还有一些考察逻辑的,我感觉我都做对了,就不一一打出来了,就有一个感觉比较绕,看下面

全国运动会举行女子5000米比赛,辽宁、山东、河北各派了三名运动员参加。比赛前,四名体育爱好者在一起预测比赛结果。甲说:辽宁队训练就是有一套,这次的前三名非他们莫属。乙说:今年与去年可不同了,金银铜牌辽宁队顶多拿一块。丙说:据我估计,山东队或者河北队会拿牌的。丁说:第一名如果不是辽宁队,就该是山东队了。比赛结束后,发现四个人只有一人言中。
以下哪项最可能是该项比赛的结果()
A
第一名辽宁队,第二名辽宁队,第三名辽宁队
B
第一名辽宁队,第二名河北队,第三名山东队
C
第一名河北队,第二名辽宁队,第三名辽宁队

共 5 个回复

sql的五道题(自己写的,可以参考一下,有错误的话可以一起探讨下)
#1.使用create table 建立city_rain表,主键为日期和城市编号
#城市表(city_name)

create table city_name(
   city_No  varchar(50) primary key,
   cityName varchar(50)
)

#记录城市日降雨量(city_rain )

create table city_rain(
   date date primary key,
   cityNo varchar(50),
   qry int,
   foreign key(cityNo) references city_name(city_No)
)

#2.写出获取2016.1.1到2016.6.30期间,降雨量小于200的城市信息的sql语句,返回信息包含城市编号和城市名称,按照城市编号排序

SELECT city_No,cityName FROM city_name n,city_rain r WHERE n.city_No=r.cityNo AND r.qry<200 AND
r.date BETWEEN '2016-1-1' AND '2016-6-30' ORDER BY n.city_No;

#3.写出获取2016年各城市总降雨量信息的sql语句,返回信息包括城市编码,城市名称,总降雨量;按城市编码排序

SELECT cityNo,cityName,SUM(qry) count from city_name n,city_rain r WHERE n.city_No=r.cityNo GROUP BY cityNo ORDER BY cityNo;

#4.向表中增加一条城市008,武汉,2016.6.6的一条降雨量为500的记录

insert into city_name(city_No,cityName) VALUES('008','武汉');
insert into city_rain(date,cityNo,qry) VALUES('2016-6-6','008',500);

#5.降雨量不能小于0,编写触发器进行

CREATE TRIGGER qry_city after update ON qry FOR EACH ROW 
BEGIN
      if city_rain.qry < 0 then
            SIGNAL SQLSTATE 'QRY00'  SET mysql_errno = 10000, message_text = '降雨量不能小于0';
      end if;
END;

逻辑题思路:(不知道对不对,如果错误可以指正我一下)
甲:前三名都是辽宁队
乙:辽宁队前三名只有一人
丙:山东队进了前三或河北进了前三
丁:第一名不是辽宁队就是山东队
分析一下选项:
A.可见甲是满足的,但是丁也满足了,所以不对。
B.可见乙是满足的,但是丙,丁也满足了,所以不对。
C.可见只有丙是满足的,所以正确。

1

佛祖咯哦摸摸头

创建表主键为日期,应该没有这么干的

image.png

第二题离散数学推一下