设有学生表STUDENT,其中有学号,姓名,年龄,性别等字段,该表是在2002年建立的,到 2003年用户可以使用SQL的______语句,将表中的所有学生年龄增加一岁,到2004年,显示学生表中年龄大于22岁的学生信息的SQL语句是______。
UPDATE STUDENT SET年龄=年龄+1
事务T1,T2,T3分别对数据D1,D2,D3并发操作如下图所示,其中T1与T2问的并发操作存在的问题是______。T2与T3问的并发操作存在的问题是______。
时间 | T1 | T2 | T3 |
t1 | 读D1=50 | | |
t2 | 读D2=100 | | |
t3 | 读D3=300 | | |
t4 | x1=D1+D2+D3 | | |
t5 | | 读D2=100 | |
t6 | | 读D3=300 | |
t7 | | | 读D2=100 |
t8 | | D2=D3-D2 | |
t9 | | 写D2 | |
t10 | 读D1=50 | | |
t11 | 读D2=200 | | |
t12 | 读D3=300 | | |
t13 | x1=D1+D2+D3 | | |
t14 | 验证不对 | | D2=D2+50 |
t15 | | | 写D2 |
有学生选课表SC(Sno,Cno,Grade),各属性为学号,课程号,成绩;完成SQL语句:找出每个学生超过他选修课平均成绩的课程号
SELECT Sno , Cno
FROM SC X
WHERE (1)
(SELECT (2)
FROM SC Y
(3) );
对于教学数据库的3个基本表:
S(Sno,Sname,Sage,Ssex);
SC(Sno,CNo,Grade);
C(CNo,CName,Teacher).
SQL更新语句表达对下列的更新操作:
①把WANG同学的选修课和成绩全部删去。
②把选修Maths课及格的成绩全改为空值。
③把低于总平均成绩的女同学成绩提高5%。
设职工一社团数据库有三个基本表:
职工(职工号,姓名,年龄,性别);
社会团体(编号,名称,负责人,活动地点);
参加(职工号,编号,参加日期)。
其中:
1)职工表的主码为职工号。
2)社会团体表的主码为编号,外码为负责人,被参照表为职工表,对应属性为职工号。
3)参加表的职工号和编号为主码;职工号为外码,其被参照表为职工表,对应属性为职工号;编号为外码,其被参照表为社会团体表,对应属性为编号。
试用SQL语句表达下列操作:
1)定义职工表、社会团体表和参加表,并说明其主码和参照关系。
2)建立下列两个视图。
社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别);
参加人情况(职工号,姓名,社团编号,社团名称,参加日期)
3)查找没有参加任何团体的职工情况。
4)查找参加了职工号为“1001”的职工所参加的全部社会团体的职工号。
5)把对社会团体和参加两个表的数据查看、插入和删除数据的权力赋给用户张三,并允许他将此权力授予其他用户。
A)CREATE TABLE 职工(职工号CHAR(H) NOT NULL UNIQUE,姓名 CHAR(H)NOT NULL,年龄 SMALLINT,性别 CHAR( B),CONSTRAINT CA CHECK(性别IN(‘男’,‘女’)));
CREATE TABLE 社会团体(编号 CHAR(H)NOT NULL UNIQUE,名称 CHAR(AB)NOT NULL,负责人 CHAR(H),活动地点 VARCHAR( E0),CON-STRAINT CB FOREICN KEY(负责人)REFERENC-ES 职工(职工号));
CREATE TABLE参加(职工号CHAR(H),编号CHAR(H),参加日期 DATA,CONSTRAINT CC PRI-MARY KEY(职工号,编号),CONSTRAIN CC FOREIGNKEY(职工号)REFFRENCES职工(职工号));
B) CREATE VIEW社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别) AS SELECT编号,名称,负责人,姓名,性别FROM社会团体,职工WHERE社会团体.负责人=职工,职工号;
CREATE VIEW参加人情况(职工号,姓名,社团编号,参加日期)AS SFLECT参加.职员号,姓名,社会团体.编号,名称,参加日期FROM职工,社会团体,参加 WHERE 职工,职工号=参加,职工号AND参加,编号=社会团体.编号;
C) SELECT*FROM职工WHERF NOT EXISTS(SELECT*FORM参加WHERE参加.职工号=职工.职工号);
D) SELECT职工号 FROM 职工 WHERENOT EXISTS(SELECT*FROM参加 参加AWHERE 参加A.职工号=‘A00A’ AND NOT EX-ISTS (SELECT*FROM 参加 WHERE 参加B.编号=社会团体,编号AND参加B.职工号=职工.职工号));
E) CRANT SELECT,INSERT,DELETE ON 社会团体,参加 TO 张三 WHERE GRANT OPTION;
现有如下两个关系模式:
Employees(Eid,Name,DeptNO)
Departments(DeptNO,DeptName,TotalNumber)
Employees关系模式描述了职工编号、姓名和所在部门编号;Departments关系模式描述了部门编号、名称和职工总人数。
请按SQL Server所采用的Tansact-SQL语法格式编写实现具有功能的后触发型触发器:每当在Employees表中插入一行数据时,相应部门的职工总人数就加1。
create trigger sql_tri on employees for insert as
declare @ eid varchar(11)
declare @ name varchar(20)
declare @ deptno varchar(11)
declare yjy cursor for
select * from inserted
open yjy
fetch next from yjy into @ eid,@ name,@ deptno
while @ @ fetch_status=0
begin
update departments
set totalnumber=totalnumber+1
where deptno= @ deptno
fetch next from yjy into @ eid,@ name,@ deptno
end
close yjy
deallocate yjy