一、修改数据库

(1)给db_temp数据库添加一个数据文件文件db_temp1指定大小为5MB,最大文件大小为100mb,自动递增大小为1MB,存储路径为d:\。

利用系统存储过程sp_helpdb查看db_temp数据库系统信息

Alter database db_tempAdd file(name=’db_temp1’,filename=’d:\ db_temp1.ndf’,size=5,filegrowth=1,maxsize=100)

Sp_helpdb db_temp

(2)给db_temp数据库添加一个日志文件db_temp1-log文件,指定大小为5MB,最大文件大小为不限定大小,自动递增大小为10%,存储路径为d:\。

1 Alter database db_temp
2
3 Add log file
4
5 (name=’ db_temp1-log’,
6
7 filename=’d:\ db_temp1-log.ldf’,size=5,filegrowth=10%,maxsize=unliminted)

(3)给db_temp数据库添加一文件组 hh,利用系统存储过程sp_helpdb查看db_temp数据库系统信息

1 Alter database db_temp

3 Add filegroup hh

 (4)、 给db_temp数据库添加一数据文件db_temp2(该文件属性自定)到hh组

Alter database db_tempAdd file(name=’db_temp2’,filename=’d:\ db_temp2.ndf’,size=5,filegrowth=1,maxsize=100) to filegroup hh

 (3)修改db_temp数据库中的数据文件db_temp1,之后利用系统存储过程sp_helpdb查看db_temp数据库系统信息

Alter database db_tempModify file(name= db_temp1,size=10,maxsize=500)—修改了该数据库中的db_temp1文件,修改了该文件的大小和最大大小

 

(4)删除db_temp数据库中一个数据文件db_temp1,一个日志文件db_temp1-log

Alter database db_tempremove file db_temp1Alter database db_tempRemove  file db_temp1-log

(7) 删除文件组hh

Alter database db_tempRemove filegroup  hh

(8)用SQL命令删除数据库db_temp

Drop database db_temp

二、管理数据表

1、附加数据库temp-db ,并利用存储过程 sp_renamedb ‘愿数据库名’,‘新数据库名’   , 将该数据库重命名为stu

 sp_renamedb  'temp-db ' ,’ stu’

2、利用存储过程sp_rename '原表名','新表名'  ,依次将该stu数据库的student 重命名为s,  course重命名为c  ,s-c 重命名为sc    

   sp_rename ' student' ,’ s’  sp_rename 'course' ,’ c’  sp_rename ' s-c ' ,’ sc’      

3.使用sql 命令在stu数据库中,分别按以下要求补充三个关系,设置对应表的主键,外键和约束关系。                  

                            T

列名

数据类型

约束

TNO

Varchar(20)

主键,并只能以T开头

tn

Varchar(20)

非空

sex

Char(2)

age

tinyint

30-65

prof

Varchar(50)

只能是教授,副教授,讲师,助教

sal

money

 

comm

smallmoney

 

dept

Varchar(50)

计算机

                            Tc 表

列名

数据类型

约束

备注

tno

Varchar(20)

外键

Tno+cno

主键

cno

Char(8)

外键

                            User表

列名

数据类型

约束

备注

ID

INT

主键

标识列,自动增长,种子为1,增量为1

Username

Varchar(20)

不能重复

 

password

Varchar(50)

非空

 

Create table  t(TNO Varchar(20) primary key  check (tno like 't%'),tn Varchar(20) not null,sex Char(2) default '男',age tinyint check (age between 30 and 65),prof Varchar(50)  constraint xx check (prof in ('教授','副教授','讲师','助教' )),sal money,comm smallmoney,dept Varchar(50) default '计算机') create table tc (tno Varchar(20) foreign key references t(tno),cno Char(8) foreign key references c(cno)primary key (tno,cno) )create table [user](id int identity(1,1) primary key,Username Varchar(20),password Varchar(50))

4.给s表添加手机号列,家庭住址列,身份证号要求手机号只能是-9之间的字符,且长度为位,

家庭住址不能为空,身份证号要求不能为空,且不能重复 

alter table s add tel char(11) check (tel like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),addr varchar(50) not null,sfzh varchar(20) not null unique

5、给s表添加一唯一约束到姓名列,一默认约束到姓别列,要求默认值为“男”

alter table s add unique(sn),default '男' for sex

6.删除t表中的prof列上的约束

alter table tdrop constraint xx 

7、删除s表与sc 表之间的关联,再通过命令重新建立其关联

alter table scdrop constraint 外键约束的名称 alter table sc add foreign key (sno) references s(sno)

三、表单查询

1.查询全体学生的学号和姓名

select sno,Sn from s

2.查询考试有不及格的学生学号,若有多门不及格,相同的学号只显示一个。

select distinct sno from Sc where score<60

3.查询年龄在20岁以下的所有女生的姓名和性别

select Sn,sex from s where age<20 and sex='女'

4.查所有第二个字为小或晓的学生学号和姓名

select sno,Sn from s where Sn like '_[小晓]%'

5.查所有不姓王的学生姓名

select Sn from s where Sn not like '王%'

6.查计算机系,自动化系的学生姓名和性别

select Sn,sex from s where dept in ('计算机','自动化')

7.查所所有学生的姓名及出生年份,并为对应列给别名

select Sn,year(GETDATE()) 出生年份 from s 

8.查询姓王或李的学生姓名和所在系

select Sn,dept from s where Sn like '[王李]%'

9.查询所有选了课的学生学号,要求选了多门课的学生学号只显示一次

select distinct sno from Sc

10.查询分数为80,90分的学生选课记录

select * from Sc where score in (80,90)

11.查询以'编'开头的,且倒数第2个为'原'的课程信息

select * from C where cn like '编%原__%'

12.查询工资在1000--2000元之间(含1000,2000)的计算机系教师的信息

select * from t where sal between 1000 and 2000

四、函数使用

1、统计c2 课程的缺考学生人数

select count(sno) from sc
where cno='c2' and score is null

2、查询选了课的学生人数

select count(distinct sno) from sc 

3、查询s1同学的总分,平均分,最高分,最低分,已经最高分和最低分之间的差值

select sum(score),avg(score),max(score),
min(score),max(score)-min(score)
from sc where sno='s1'

4、查询刘伟老师的总收入,要求输出教师号,总收入

select tno,sal+comm 总收入 from t
where tn='刘伟'select tno,sum(sal+comm)总收入 from t
where tn='刘伟'
group by tno 

5、统计sc表中每门课程的补考人数,要求显示课程号,补考人数

select cno,count(sno)补考人数
from sc
where score<60 or score is null
group by cno 

6、查询每门课程的平均分和最高分

select avg(score),max(score) from sc
group by cno 

7、统计男生和女生的人数,显示性别和人数,并按人数升序排。

select sex,count(sno) from sgroup by sex
order by count(sno) asc 

8、查询每个学生所选课程的平均分,并分别为这两列取别名为学号,平均分。

select sno 学号,avg(score)平均分
from sc
group by sno 

9、查询选修了c2课程的学生学号与成绩,按成绩降序排列。

select sno,score
from sc
where cno='c2'
order by score desc 

10、查询各系不同职称的男女老师的人数

select sno,score
from sc
where cno='c2'
order by score desc 

11、查询选修了2门课以上课程的学生的学号和总成绩,按总成绩降序排序。

select sno,sum(score)
from sc
group by sno
having count(cno)>2

12、查询平均分在75分及以上的课程号;

select cno from sc
group by cno
having avg(score)>=75

13、查询计算机系收入高于8000的教师的教师名

select tn from t
where dept='计算机'
group by tn
having sum(sal+comm)>8000select tn from t
where dept='计算机'
and comm+sal>8000

14、查询计算机系,电子系讲师职称的教师人数

select count(tno) from t
where (dept='计算机'or dept='电子')
and prof='讲师'
group by deptselect count(tno)
from t group by dept,prof  having
((dept='计算机'or dept='电子')and prof='讲师')

二、多表查询

1、连接查询

(1)from 表1,表2... where 连接条件--内连接
(2)表1 join 表2 on 连接条件join 表3 on                 连接条件 .....--内连接
 (3)表1 left|rightjoin 表2 on 连接条件 left|rightjoin 表3 on           连接条件 .....--外连接

内连接:显示满足连接条件的元祖
外连接:显示满足连接条件的元祖,以及左表或右表不满足连接条件的元祖

s,sc
from s,sc where s.sno=sc.sno
s join sc on s.sno=sc.sno --内连接
========================================
s,sc
s left join sc on s.sno=sc.sno --左外连接

sc right join s on s.sno=sc.sno--右外连接

1、查询选了课的学生学号,姓名 s,sc

select s.sno,sn from s,sc where s.sno=sc.snoselect s.sno,snfrom s join sc on s.sno=sc.sno

2、查询没有选课的学生学号和姓名s,sc

select s.sno,snfrom s left join sc on s.sno=sc.sno
where cno is null

 3、查询选了数据库课程的学生姓名s,sc,c

select sn
from s,sc,c where s.sno=sc.sno and sc.cno=c.cno and cn='数据库'select sn
from
s join sc on s.sno=sc.sno join c on c.cno=sc.cno
where cn='数据库'

4、查询刘伟老师所教课程的课程名 c,t,tc

select cn from t,tc,c where t.tno=tc.tno
and tc.cno=c.cno and tn='刘伟'

5、查询每个学生姓名,选课门数 s sc

select sn,count(cno)
from
s left join sc on s.sno=sc.sno
group by sn 

6、查询跟赵亦在同一个系的学生姓名 s s

select x.sn
from s x,s y where x.dept=y.dept  and y.sn='赵亦' and x.sn<>'赵亦'

7、查询比钱尔大的学生姓名 s,s

select x.sn
from s x,s y where x.age>y.age  and y.sn='钱尔'

五、查询

(1)、连接查询:

1、查询李力老师所教课程的课程名

select cn from C,t,tc where t.tno=tc.tno and C.cno=sc.cno and tn='李力'

2、查询计算机系选了数据库课程的学生姓名

select sn from s,sc,c where S.sno=sc.sno and c.cno=sc.cno and dept='计算机' and cn='数据库'

3、查询选了c1或c2课程的学生学号,姓名

select s.sno,sn from s,sc where s.sno=sc.sno and cno in ('c1','c2')

4、查询教了计算机系学生且职称为教授的老师的姓名,职称,工资

select sn,prof,sal from t,tc,sc,s where t.TNO=tc.tno and sc.cno=tc.cno and s.sno=sc.sno
and dept='计算机' and prof='教授'

5、查询各系的平均成绩要求显示系别,平均成绩,并按平均成绩降序排序。

select dept,AVG(score) from s,sc where s.sno=sc.sno group by dept
order by AVG(score) desc 

6、查询平均成绩在80分以上的课程号,课程名

select c.cno,cn from c,sc where c.cno=sc.cno group by c.cno
having AVG(score)>80

7、查询跟刘伟老师职称相同且工资相同的老师的姓名,职称,工资

select x.tn,x.prof,x.sal from t x,t y where x.prof=y.prof and x.sal=y.sal and y.tn='刘伟'
and x.tn<>'刘伟'

8  用SQL实现S,SC表的自然连接

select s.*,cno,score from s,sc where s.sno=sc.sno .

9、查询没有学生选的课程的课程号,课程名

select c.cno,cn from c left join sc on sc.cno=c.cno
where cno is null

10、查询所有学生的姓名,选课门数

select sn,COUNT(cno) from s left join sc on s.sno=sc.sno group by sn 

11、查询数据库,程序设计两门课程的总分,平均分

select cn,SUM(score),AVG(score) from c,sc where c.cno=sc.cno  and cn in ('数据库','程序设计')group by  cn

二、(子查询)

1、查询选了C1课程的学生姓名
思路一:从sc表中找出所有选了c1课程的学生学号,再根据学号到s表中找出对应的学生姓名

select sn from s where SNO in (select SNO from SC where CNO='c1')

思路二:以此到s表中判断每个学生是否选c1课程--相关子查询

select sn from s
where 'c1' in (select cno from SC where SNO=s.SNO )
或
select sn from s where  exists(select * from SC where SNO=s.SNO and CNO='c1')

2、查询王伟老师所教课程的课程号

思路一:先从t表中找到刘伟老师的教师号,再利用该教师号到tc表找到该老师所教课程号

select cno from TC where TNO =(select TNO from t where tn='王伟')

思路二:依次到c表中去判断课程是否由王伟老师讲授

select cno from c  where  '刘伟' in (select tn from t where tno in (
select tno from TC where CNO=C.cno))--不带exists 或not exists的相关子查询
或
select cno from C where exists(select * from  TC ,t where TC.TNO=t.tno  and CNO=c.cno
and tn='刘伟')--带exists的相关子查询

3、查询赵亦选的课程名。
思路一:先找到赵亦的学号,再根据学号去找该学生所选的课程号,最后根据课程号找对应的课程名

select cn from C
where CNO in (select CNO from SC where SNO =(select
SNO from s where SN='赵亦') )--普通子查询

思路二:以此到c表中去判断该们课程是否被赵亦选修

select cn  from C where '赵亦' in (select sn from s,SC where s.SNO=SC.SNO and
CNO=C.CNO )--不带exists 或not exists的相关子查询
或
select cn from C where exists(select * from s,SC where s.SNO=SC.SNO and CNO=C.CNO
and SN='赵亦')--带exists的相关子查询

4、查询不学数据库的学生学号。
思路一:先查找所有选了数据库的学号,找不属于这个集合的学生学号--普通子查询

select sno from s where SNO not in
(select sno from SC
where CNO  =(select CNO from C where CN='数据库'))--普通子查询

思路二:用所有学生的学号减去选了数据库的学生学号

select sno from s
except
select sno from s where SNO in (select SNO from SC where CNO =(
select CNO from C where CN='数据库'))

思路三:依次到s表中去判断每个学生是否选了数据库--相关子查询

select sno from s where '数据库'<> all(
select cn from C,SC where C.CNO=SC.CNO and SNO=s.sno)
或
select sno from s where not exists(
select * from C,SC where C.CNO=SC.CNO and CN='数据库' and SNO=s.sno)

5、查询被t1和t3老师教了的课程的课程名

思路一:先去找到被t1和t3老师所教课程的课程号,再根据课程号找对应的课程名

select cn from C where CNO in (
select CNO from TC where TNO='t1' and CNO  in (select CNO from TC where TNO='t3'))

思路二:先找ti老师所教课程名,再找t3老师所教课程名,然后求其交集

select cn from  C where CNO in ( select CNO from TC where TNO='t1')
intersect
select cn from  C where CNO in ( select CNO from TC where TNO='t3')

思路三:依次到c表中判断每门课程是否被ti和t3教

select cn from C where
't1' in (select tno from TC  where  CNO=c.cno)
and
't3' in (select tno from TC  where  CNO=c.cno)

思路四:不存在t1和t3 老师没有教的课程的课程名

select cn from C where not exists( select *  from  (select * from  t where tno in ('t1','t3')) x
where not exists(select * from  TC where TNO=x.tno and CNO=C.cno ))

6、查询没有选修任何课程的学生姓名、所在院系

思路一:选找到选了课的学生学号,然后再找不再这个集合中的学生学号,最后通过该学号找对应学生的姓名

select sn,dept from s where SNO not in (
select distinct SNO from SC )

思路二:找选课门数=0的学生

select sn,dept from S
where SNO in (select s.SNO from s left join SC on s.SNO=SC.SNO
group by s.SNO
having COUNT(cno)=0)

思路三:以此从s表中去判断该学生是否选课--相关子查许

select sn,dept from s where not exists(
select * from SC where SNO=s.SNO )

7、查询“数据库”课程的选课人数和总成绩。

思路一:普通子查询

select COUNT(sno),SUM(score) from SC
where CNO =(select CNO from C where CN='数据库')

8、查询其他系中比信息系某一学生年龄小的学生姓名和年龄。

select sn,age from s where DEPT<>'信息' and AGE<any(select
AGE from s where DEPT='信息')

9、查询选了所有课程的学生信息

思路一:先找选课门数=总课程数的学生学号,再根据学号找对应的学生信息

select * from s where SNO in (select SNO from SC
group by SNO  having COUNT(cno)=(
select COUNT(cno) from C ))

思路二:c表中没有一门课程是他没选的

select * from s where not exists(
select * from  C where not exists(select * from SC where s.SNO=SC.SNO and CNO=C.CNO ))

10、查询计算机系微机原理成绩最好的学生的姓名

思路一:先找符合条件的学生学号,再找姓名,注意此题中有三个条件

select sn from s where DEPT='计算机'
and SNO in (select SNO from SC,C where SC.CNO=C.CNO and CN='微机原理'
and  score=(select MAX(score) from SC,C where SC.CNO=C.CNO and CN='微机原理'))

思路二:依次到s表中判断每个学生是否符合以上条件--相关子查询

select sn from s where  dept='计算机' and exists(select * from SC,C where SC.CNO=C.CNO and
CN='微机原理' and SCORE=(select MAX(score)from SC,C where SC.CNO=C.CNO and CN='微机原理') and SNO=s.sno )

六、更新操作:

2)在s表中插入一条完整的纪录(记录自定义 )

insert into S
(SNO,SN,SEX,AGE,dept)
values ('s7','李斯','男',20,'信息')
select * from s

3)如果要在表SC中插入某个学生的选课信息(如:学号为“s3”,课程号为“c2”,成绩待定),应如何进行?

insert into SC
(SNO,CNO,score)
values ('s3','c2',null)

4)求各系学生的平均成绩,并把结果存入数据库;

select dept,AVG(score) 平均成绩 into X
from s left join SC on s.SNO=SC.SNO
group by DEPT
select * from x

5)s3同学的c5,c6,c7 三门课程的成绩分别是75,80,67 ,如何一次性将这些信息添加到sc表中 ?

insert into SC (SNO,CNO,score)
select 's3','c5','75'
union
select 's3','c6','80'
union
select 's3','c7','67'
select * from sc

6)将“计算机”系全体学生的成绩置零;

update SC
set SCORE=0
where SNO in(select SNO from s where dept='计算机')
select * from sc

7)删除“计算机系”系全体学生的选课记录;

delete from SC where SNO in (select SNO from s where DEPT='计算机')
8)删除学号为“S1”的相关信息;并注意跟这个学生相关信息的变化
delete from s where SNO='s1'
select * from SC
delete from sc where SNO='s1'
select * from s  

9)将学号为“S2”的学生的学号修改为“S002”;并注意跟这个学生相关信息的变化

update s
set SNO='s002'
where SNO='s2'
select * from sc 

10)把平均成绩大于80分的男同学的入另一个表S_GRADE(SNO,AVG_GRADE);

create table S_GRADE
(SNO  varchar(20),AVG_GRADE float)
insert into  S_GRADE
select s.sno,AVG(score) from SC,s where SC.SNO=S.SNO and SEX='男'
group by s.SNO
having AVG(score)>80

11)把选修了课程名为“数据结构”的学生的成绩提高10%;

update SC
set SCORE=1.1*score
where cno in (select cno from c where CN='数据结构' )
select * from sc

12)把选修了“C2”号课程,且成绩低于该门课程的平均成绩的学生的成绩提高5%;

update SC
set SCORE=SCORE*1.05
where CNO='c2' and SCORE<(select AVG(SCORE) from SC where CNO='c2')
select * from sc

13)把选修了“C2”号课程,且成绩低于该门课程的平均成绩的学生成绩删除掉;

delete from sc
where CNO='c2' and SCORE<(select AVG(SCORE) from SC where CNO='c2')
select * from sc

七、权限控制:

sp_addlogin 'uu','123'
sp_addlogin 'nn','123'
sp_adduser 'uu','uu1'
sp_adduser'uu','uu2'

1、写出如何让普通用户user1查询和使用t(tno,tn)进行查询和更新的权限--对象权限

sp_addlogin 'mm','123'
sp_adduser 'mm','user1'
grant select,update on t(tno,tn) to user1
grant select(tno,tn),update(tno,tn) on t to user1revoke select,update on t(tno,tn) from user1

2、将对计算机系学生进行查询和更新的权限给user2用户

sp_addlogin 'xx','123'
sp_adduser 'xx','user2'
create view zz
as
select * from S where DEPT='计算机'
with check option
grant select,update on zz to  user2

3、将查询dept权限给所有用户

grant select on s to public
4、将创建表的权限给普通用户user3,并使得user3获得传递权权限的能力--系统权限
sp_addlogin 'yy','123'
sp_adduser 'yy','user3'
grant create table to user3 with grant option 

5、创建角色role1,将查询和更新s,c,sc表的权限给角色role1

sp_addrole 'role1'
grant select,UPDATE on s to role1
grant select,UPDATE on c to role1
grant select,UPDATE on sc to role1

6、将用户user1,user2添加到角色role1中,但不希望user1具备更新s,c,sc的权限,写出所有相关的过程

sp_addrolemember 'role1','user1'
sp_addrolemember 'role1','user2'
deny update on s to user1--取消
deny update on sc to user1
deny update on c to user1

7、如何让用户具有创建数据库的权限--添加用户到服务器角色中dbcreator

sp_addsrvrolemember 'yy','dbcreator'--yy登录名添加到dbcreator服务器角色中

8、如何让用户拥有数据中所有对象的所有权限--添加用户到指定的数据库角色中db_owner

sp_addrolemember 'db_owner','user1'

9、收回user3创建表的权限

revoke create  table from user3  cascade --收回级联权限

10、收回用户创建数据库的权限--删除服务器角色中的成员

sp_dropsrvrolemember 'yy','dbcreator'--删除服务器角色成员

11.如何收回用户拥有数据中所有对象的所有权限--删除数据库角色中的成员

sp_droprolemember 'db_owner','user1'

12、删除登陆用户

sp_droplogin 'mm'

13、删除数据库用户

sp_dropuser 'user1'

八、视图操作:

以S , C , SC表为基础完成以下视图定义及使用。
1)    定义“计算机”系学生基本情况视图V_IS 并查询结果;

create view V_IS
as
select sno,sn,sex,age,dept from s where DEPT='计算机'
with check optionselect * from  V_IS
select * from s

2)    将S,C,SC表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_G 并查询结果;

create view V_S_C_G
as
select s.sno,sn,c.cno,cn,score from  s left join SC on s.SNO=SC.SNO left join C on C.CNO=SC.CNO
select * from V_S_C_G

3)    将各系学生人数,平均成绩定义为视图V_NUM_AVG并查询结果;

create view V_NUM_AVG
as
select dept,COUNT(sno) 人数,AVG(age)平均成绩
from s  left sc on s.sno=sc.sno
group by dept

4)    定义一个反映学生出生年份的视图V_YEAR并查询结果;

create view V_YEAR
as
select *,year(GETDATE())-age 出生年份 from s

5)    将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G并查询结果;

create view V_AVG_S_G
as
select s.sno,COUNT(cno) 选修课程的门数,AVG(score) 平均成绩 from
SC right join  s on s.SNO=SC.SNO
group by s.SNO 

6)    将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G并查询结果;

create view V_AVG_C_G
as
select c.cno,COUNT(sno) 选修人数,AVG(score) 平均成绩 from
C left join sc  on SC.CNO=C.CNO
group by c.CNO 

7)    查询平均成绩为90分以上的学生学号、姓名和成绩;  s sc V_AVG_S_G

select * from V_AVG_S_G
select s.sno,sn,score from s,SC, V_AVG_S_G where s.SNO=SC.SNO and s.SNO=V_AVG_S_G.sno
and 平均成绩>90

8)    查询各课成绩均大于平均成绩的学生学号、姓名、课程名 和成绩;  s c,sc V_AVG_C_G

select * from  V_AVG_C_G
select s.sno,sn,cn,score, 平均成绩 from V_S_C_G, V_AVG_C_G where  V_S_C_G.CNO=V_AVG_C_G.CNO
and SCORE>平均成绩

9)    按系统计各系平均成绩在80分以上的人数,结果按降序排列; sc,s

select  dept, COUNT(s.sno) from s,SC where s.SNO=SC.SNO
group by  dept
having AVG(score)>80
order by  COUNT(s.sno) desc 

10)    通过视图V_IS,分别将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM” 并查询结果;

update v_is
set sn='S1_MMM'
where sno='S1'update v_is
set sn='S4_MMM'
where sno='S4'select * from s

11)    通过视图V_IS,新增加一个学生记录 ('S12','YAN XI',19,'计算机')

insert into V_IS
values  ('S12','YAN XI',19,'计算机')

12)    通过视图V_IS,新增加一个学生记录 ('S13','YAN XI',19,'信息')

insert into V_IS
values  ('S12','YAN XI',19,'信息')
--看不到该信息

13)    通过视图V_IS,删除学号为“S12”和“S3”的学生信息

delete from v_is
where sno='s12' or sno='s3'

14)    要通过视图V_S_C_G,将学号为“S12”的姓名改为“S12_MMM”,是否可以实现?

select * from V_S_C_G
update  V_S_C_G
set sn='S13_MMM'
where sno='ss'
--可更新

15)    要通过视图V_AVG_S_G,将学号为“S1”的平均成绩改为90分,是否可以实现?

select * from V_AVG_S_G
update V_AVG_S_G
set 平均成绩=90
where sno='s1'
--不可更新

                                                                                                2017-12-20、01:40:45

转载于:https://www.cnblogs.com/zhh19981104/p/8069689.html

Server SQL 2008 练习相关推荐

  1. Server SQL 2008安装出现重新启动计算机失败问题解决办法

    安装Server SQL 2008,出现如下图问题: 解决办法: 1.win+R键打开运行窗口,输入regedit,回车打开注册表编辑器 2.在打开的注册表编辑器窗口中,点击展开左侧菜单中的HKEY_ ...

  2. sqlserver配置管理器不显示服务器,sql 2008配置管理器的服务器无法启动(待)

    当前位置:我的异常网» Sql Server » sql 2008配置管理器的服务器无法启动(待) sql 2008配置管理器的服务器无法启动(待) www.myexceptions.net  网友分 ...

  3. SQL Server 2005/2008 图形界面(SQL Server Management Studio Express)

    SQL Server 2005/2008 图形界面(SQL Server Management Studio Express)2009年03月25日 星期三 18:28SQL 2005 新建数据库 S ...

  4. iis6上安装PHP5.3.2及连接到SQL Server 2005/2008的设置(原创)

    iis6上安装PHP5.3.2及连接到SQL Server 2005/2008的设置(原创) 新增一台win2003 server系统的服务器.以前其他的服务器上使用php5.0/5.1,数据库是SQ ...

  5. 2008 r2 server sql 中文版补丁_Microsoft SQL Server 2008 R2 SP1补丁 32位 官方免费版(附安装教程)...

    SQL Server 2008 R2 SP1 补丁是sql 2008 r2的升级版本,是由微软推出的一款数据库管理系统,主要方便用户对数据库进行开发.管理.查询等操作,支持存储过程.触发器.函数和视图 ...

  6. 2008 r2 server sql 中文版补丁_Microsoft SQL Server 2008 R2 SP1补丁 64位 官方免费版(附安装教程)...

    SQL Server 2008 R2 SP1 补丁是sql 2008 r2的升级版本,是由微软推出的一款数据库管理系统,主要方便用户对数据库进行开发.管理.查询等操作,支持存储过程.触发器.函数和视图 ...

  7. java连接sql 2008代码,java连接sql server 2008数据库代码

    Java连接SQLServer 2008数据库的步骤: 1.到微软官方下载jdbc 并解压,得到sqljdbc.jar和sqljdbc4.jar,由于使用的是JDK1.7,所以使用sqljdbc4.j ...

  8. 监控 SQL Server (2005/2008) 的运行状况--来自微软TetchNet - 邀月 - 博客园

    邀月工作室 监控 SQL Server (2005/2008) 的运行状况--来自微软TetchNet 原文地址: http://technet.microsoft.com/zh-cn/library ...

  9. SQL 2008升级SQL 2008 R2完全教程或者10.00.1600升级10.50.1600

    今天将由于需要就将我的SQL 2008升级到SQL 2008 R2. 说到为什么要升级是因为,从另一台机器上备份了一个数据库,到我的机器上还原的时候提示"System.Data.SqlCli ...

最新文章

  1. Swift - 委托(delegate)的介绍,及使用样例
  2. ka电器表示什么意思_电器上的KA是指的什么电流?
  3. 把巧克力球送上天,玛氏用Uni Marketing 打造网红零食
  4. Dockerfile 常用指令 - 每天5分钟玩转 Docker 容器技术(16)
  5. Python NLPIR2016 与 wordcloud 结合生成中文词云
  6. python中的递归函数是什么_讲解Python中的递归函数
  7. python获取路由器数据包pppoe_PPPoE协议***4:如何得到PPPoE服务器的mac地址
  8. python selenium 关闭窗口_Selenium快速上手实战 | 上篇
  9. Windows 命令行改主机名、加域、退域、更改IP
  10. JDBC-简单连接Oracle Database
  11. 如何实现消息功能_微信多个群转发消息如何实现?多群转发小助手转播云端转播功能怎样操作?...
  12. visual studio html插件,实用的 Visual Studio Code 插件
  13. php文本框添加表情,仿微信在对话框文字中插入Emoji表情包
  14. C++使用ffmpeg解码v模块,支持cpu解码、amd64平台的cuda解码和NX平台的Nvmpi解码
  15. Cocos Creator SDK接入OPPO篇
  16. 【论文阅读笔记】Incremental Network Quantizatio:Towards Lossless CNNs with Low-Precision Weights
  17. 拓嘉辰丰电商:拼多多店铺做不起来的原因
  18. Mysql 条件查询(like、between、and、in······)
  19. 解析 Java 类和对象的初始化过程
  20. 如何追踪大户操作,暴躁兔链上数据复盘StepN

热门文章

  1. MIGO 收货批次增强
  2. matlab正负序分离模块,一种自适应宽频带正负序分离方法与流程
  3. 【数据治理】数据分析八大模型:OGSM模型
  4. 学点历史-欧洲君主命名
  5. 7-4 银行排队问题之单窗口“夹塞”版 (30 分) C语言版
  6. java代码生成_Java代码生成器CodeX4J介绍
  7. webstorm最新激活方法。绝对有效
  8. mysql设备台账_mysql数据库操作语句大全.pdf
  9. 生产用计算机软件管理台账,计算机台账管理系统
  10. Hystrix服务降级、熔断-微服务(十)