1,20年
首先第一问,注意check后面最好用between连接,也可以用and连接.
对于第二问,注意select 后面的属性,如果重名需要加上表的名字
对于第三问,group by 按orders表中的商品编号来分组,而不是商品表中的.
并且在下午题中一般用到的是count(星号)来记录元组个数.
对于第四题,首先想到的是用 not in 来做,但是问题是,最后没有括号,也就没做子查询.这里是用except来做的.
2,21年
第一问注意,check这里用or进行分隔,而不能用逗号
第三问注意,删除为:delete
并且应该先删除pc表中的,再删除contest表中的,因为pc参照contest表,后删pc表会报错.
3,19年
首先第一问,注意这里创建表时,对于外码可以用:
on delete cascade 或者on delete set null
第二问,这里注意对count()函数需要进行重命名.并且这里也用到了union函数,intersect,except
第三问,为触发器.首先,可以改变视图名称.referencing 定义出nrow和orow,这里在插入操作中用到nrow,删除操作中用到orow,在更新操作中可能两者都会用到.
并且还可以定义为for each row 或者 for each statement
下面的更新语句,注意如果引用student表(触发器建立在student表上),我们应该用orow,或nrow.不再引用student表了
对于第四问,应该是,对schno进行排序,而不是分组.
4,18年题
首先,第一问,在于需要用default getdate()来默认为系统时间.
第二问,用到回滚操作.rollback,并且触发器里一般是要
将nrow和修改表进行连接.
第三问,注意创建视图,视图名后面需要跟(属性),这里的属性与select语句的属性保持一致.
select 语句用聚合函数,sum来求和.并且从这道题可以看到,在select后面修改了名称,后面用的时候,不可用total(新名称)
第四问,这个exists是看后面查出来的东西是否为true,如果是真就输出主查询的这一行,这里主查询中实现了对车型号的查询,在子查询中就需要实现,对于查出不良次数大于等于2的人.
这里如果我们只查询人,就不能保证是在同一次租赁中产生的,所以需要借贷号也相同.
5,17年题
这道题最明显的特征就是:前面使用了聚合函数,那么分组时候,就把聚合函数前面所有的属性都加上.
第二问,from后面只有一个表,所以可以不写表名.
注意having后面的count(星号)不能丢掉.
这里涉及取反操作,那么就可以用,not in 或者except 或者是 not exists.
6,16年题
对于这道题,首先第一问中的约束条件,check需要约束一个范围,所以还是要用到between.
然后设置的时候需要用到,amount=amount+更新值.
注意select语句是先执行where后执行group by 所以,前面将两个表连接在一起,后面就不存在按谁分组的冲突.因为where以及让两个属性列相同的.group by 一般是select后面除去聚合函数的部分.
回顾历年真题,取反问题中,也不会出现group by 的情况.
第二次做,
21年题,注意先删除引用的再删除主表中的
20年题,注意可以用select后面重命名的名称.oamount desc
19年题,注意视图名后的列表与select语句后的属性,需要完全相等,所以需要重命名.
18年题,注意默认的写法不是用check,直接DEFAULT getdate()就好了.
并且,这里涉及四个表连接,需要用到每个表.所以是users.uid.
SQL中几个关键字 的执行顺序为:
(1)FROM
(2)WHERE
(3)GROUP BY
(4)having
(5)聚合函数
(6)Select
(7) ORDER BY
Having在select前面,having后面不可以用在select里面的重命名
16年题,注意check后面也不一定是属性名,也可能是一个函数.
对于17年题,可能在触发器触发的时候,sales表已经进行了插入.所以可以再引用sales表.
对于14年题,注意计算价格还需要使用时间,和group by having之间不需要分号或逗号.
对于13年题,注意时间的表示方法就是(2012/1/1)不能写年月日形式,并且注意对于连接的两个表有相同的属性列,需要带有表名.
12年题,注意constraint的用法,用来定义约束性条件.
另外,工资>AVG(工资)的写法是不正确的.因为where执行在聚集函数之前,select执行在聚集函数之后,所以可以在select中执行聚集,但不可以在where中执行聚集.
还有when then else 的用法.