sqlserver数据库操作总结

--sqlserver数据库总结
--添加字段age(无column)
alter table employer add age tinyint;
--修改字段类型(要符合类型转换规则)(null or not null的修改也用这种方法)
alter table employer alter column name varchar(32) not null;
--为字段添加 check约束
alter table employer add constraint check_id check(id>0) ;
alter table employer add check(id>0) ;
--为字段添加unique约束
alter table employer add constraint uni_id unique(id);
alter table employer add unique(id);
--为字段设置主键
alter table employer add constraint pri_id primary key(id);
alter table employer add primary key(id);
--添加外键约束
alter table emp add constraint for_id foreign key(text_id) references test(id);
alter table emp add foreign key(text_id) references test(id);
--删除约束
alter table emp drop constraint for_id;
--添加索引
create index LOCATIONS_PK_IDX on emp(deptno);
--删除索引
drop index LOCATIONS_PK_IDX;
--修改字段名(sp_rename更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称)
sp_rename 'employer.age','ager';
--修改表名
sp_rename 'employer','emp';
--连接查询
--查询每个参加选课的学生信息及其选修课程的情况(多表连接)
select * from Student,SC where Student.Sno=SC.Sno;
--查询每一门课的间接先修课 (自连接)
select * from Course c1,Course c2 where c1.Ccredit=c2.Cno;
--查询选修了 2 号课程的同学的学号和姓名 (学号和姓名在同一表中)
select Sno,Sname from Student where Sno in (select Sno from SC where Cno='2');
--嵌套查询
--查询与“刘晨”在同一个系学习的学生 
SELECT Sno,Sname,Sdept FROM Student WHERE Sdept IN ( SELECT Sdept FROM Student WHERE Sname= '刘晨'); 
--找出每个学生超过他选修课程平均成绩的课程号
SELECT Sno, Cno  FROM  SC  x WHERE Grade >= ( SELECT AVG(Grade)  FROM  SC y  WHERE y.Sno=x.Sno);
select * from SC,(select Sno,avg(grade) as grade from SC group by Sno) as gg where SC.Sno=gg.Sno and SC.Grade>gg.grade;


--数据库安全性
--通过sp_addlogin创建登录名
execute sp_addlogin 'zhangsan','12345';
use text;
--指定登录名为zhangsan,并且创建test数据库中的用户
execute sp_grantdbaccess 'zhangsan','zzx';
--授予用户zzx拥有businessDeal表的select权限
grant select on businessDeal to zzx;
--撤销用户zzx拥有对表businessDeal的select权限
revoke select on businessDeal from zzx;
--添加数据库角色
execute sp_addrole 'work';
--添加zzx为角色work的成员
execute sp_addrolemember 'work','zzx';
--设置角色work拥有BusinessDeal表的update权限
grant update on BusinessDeal to work;
--给用户授予建表的权限
grant create table to wanggang;
--把表student的全部操作权限授予wanggang
grant all privileges on table student to wanggang ;
--














 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页