數(shù)據(jù)庫SQL Server基本操作

一、創(chuàng)建表

創(chuàng)建表Student:

create table Student1
(
Sno char(9) primary key,
Sname char(9) ,
Ssex char(2),
Sdept char(8),
Sage smallint);

創(chuàng)建表Course:

create table Course1
(
Cno char(4)primary key,
Cname char(10),
Cpno char(4),
Ccredit smallint,
foreign key Cpno references Course1(Cno)
);

創(chuàng)建表SC:

create table SC1(
Cno char(2),
Sno char(10),
Grade int,
primary key(Sno,Cno),
foreign key(Sno)references Student1(Sno),
foreign key(Cno)references Course1(Cno)
);

二蚯姆、修改表基本表:

alter table 表名

1.增加列:

add 新列名 數(shù)據(jù)類型 完整性約束;
例如:

alter table Student add ID char(20);

2.刪除列(屬性):

drop column 屬性名(列);
例如:

alter table Student drop column ID;

3.修改數(shù)據(jù)類型:

alter column 列名 數(shù)據(jù)類型嗅骄;
例如:

alter table  Student alter column Sage char(8);

三艾杏、刪除基本表:

drop table 表名 [restrict|cascade];
resrrict:刪除表有限制條件(不能有視圖凉唐,不能有觸發(fā)器)
cascade:刪除表沒有限制條件(刪除表時碌冶,相關(guān)視圖將一起刪除)

例如:

drop table Teacher cascade;//有問題

四湿痢、建立索引:

create [unique][cluster]index<索引名>
on <表名>(<表名>[<次序>[,<列名>[<次序>]]…);
unique:表明此索引只對應(yīng)唯一的數(shù)據(jù)記錄
cluster:表示要建立的是聚族索引

例如:

create cluster index StuSname on Student(Sname);
/*將會在Student表的Sname列上建立聚族索引扑庞,且Student表中的記錄將按照Sname值的升序存放*/

例如:建立唯一索引

create unique index StuSno on Student(Sno);
create unique index CouCno on Course(Cno);
create unique index SCno on SC(Sno asc譬重,Cno desc);

注:asc升序拒逮,desc降序,默認(rèn)升序

五臀规、刪除索引:

drop index 索引名消恍;
例如:

drop index StuSname;


六、數(shù)據(jù)查詢:

**select [all|distinct] 目標(biāo)列以现,目標(biāo)列表達(dá)式,……
from 表名或視圖
where 條件
group by 列名1 having 條件表達(dá)式
order by 列名2 [asc|desc]; //升|降约啊,默認(rèn)升
**

**
補充:
lower(列名):變小寫
upper(列名):變大寫
**


(I)

A邑遏、單表查詢:
1.查詢?nèi)w學(xué)生的學(xué)號,姓名

select Sno,Sname
from Student ;

B恰矩、查詢?nèi)苛校?/strong>
1.查詢?nèi)w學(xué)生的詳細(xì)記錄

select *
from Student记盒;

C、查詢經(jīng)計算的值:
1.查詢?nèi)w學(xué)生的姓名及出生年份

select Sname,2014-Sage
from Student;

2.查詢?nèi)w學(xué)生的姓名外傅,出生年份纪吮,和所在系,要用小寫字母表示系名

select Sname,'Birth',2014-Sage,lower(Sdept)
from Student;

D萎胰、取別名:
在查詢列名后加上別名

例如:

select Sname Name,'Year-Birth',2014-Sage Birthday,upper(Sdept)Department
from Student;

E碾盟、去掉結(jié)果中的重復(fù)項加distinct
例如:

select distinct Sno
from SC;


(II)

**查詢滿足條件的元組
比較:=,<,>,<=,>=,!=,<>,!>,!<,NOT+上述比較符
確定范圍:between and,not between and
確定集合:in,not in
字符匹配:like,not like
注:查詢字符本身包括%技竟,_時冰肴,加反斜杠
空值:is null,not is null
注:is不能用=代替
多重條件:and,or,not
**

1.查詢計算系的學(xué)生

select Sname
from Student 
where Sdept='CS';

2.查詢成績在90分以上的學(xué)生學(xué)號,姓名

select  distinct Student.Sno,Sname
from Student,SC
where Grade>90;

3.查詢年齡不再20到30之間的學(xué)生

select Sno,Sage
from Student 
where Sage not between 20 and 30;
//或者:where Sage<20 or Sage>30;

4.查詢計算機系榔组,數(shù)學(xué)系熙尉,信息系學(xué)生的學(xué)號,姓名

select Sno,Sname
from Student 
where Sdept in('CS','IS','MA');
//或者:where Sdept='CS'or Sdept='IS'or Sdept='MA';

5.找出姓李搓扯,并且成績大于90學(xué)生的學(xué)號检痰,姓名,性別锨推,成績

Select Student.Sno,Sname,Ssex,Grade
From Student,SC
where Sname LIKE '李%'and Grade >90;

6.查詢姓李名字為三個字的學(xué)生信息

select *
from Student
where Sname like '李____';

7.查詢第二個字不為‘芳’的學(xué)生

select *
from Student 
where Sname not like '__芳%' ;

8.查詢有成績學(xué)生的學(xué)號

select distinct SC.Sno
from Student ,SC
where Grade is not null;

(III)

order by 列名 [asc|desc];

1.查詢選修了課程號為3的學(xué)生的學(xué)號铅歼,成績安降序排列

select Sno
from SC
where Cno='3'
order by Grade desc;

(IV)聚集函數(shù)

count([distinct|all] * ) 統(tǒng)計元組個數(shù)

count([distinct|all] 列名 ) 統(tǒng)計一列值的個數(shù)

sum([distinct|all] 列名) 計算一列值的總和

avg([distinct|all] 列名) 計算一列值的平均值

**max([distinct|all] 列名) 求一列值的最大值 **

**min([sistinct|all] 列名) 求一列值的最小值
**

1.查詢學(xué)生總?cè)藬?shù)

select count(Sno)
from Student;

2.計算1號課程的平均成績

select avg(Grade)
from SC
where Cno='1';

3.查詢200215012選修課程的總學(xué)分

select sum(Ccredit)
from SC,Course
where SC.Cno=Course.Cno and Sno='200215012';

(V)group by

**查詢結(jié)果按某一列或多列的值分組,值相等的為一組
目的:為了細(xì)化聚集函數(shù)的作用對象爱态。如果未對查詢結(jié)果分組谭贪,聚集函數(shù)將作用于整個查詢結(jié)果。分組后聚集函數(shù)將作用于每個分組锦担,即每個函數(shù)都有一個函數(shù)值俭识。
**

1.求各個課程號及相對應(yīng)的選課人數(shù)

select Cno,count(Sno)
from SC
group by Cno;

2.查詢選修了1門課以上的學(xué)生學(xué)號

select Sno
from SC
group by Sno
having count (*)>1;

(VI)連接查詢:

等值與非等值連接

1.查詢每個學(xué)生及其選修課程情況

select Student.*,SC.*
from Student,SC
where Student.Sno=SC.Sno;

自身連接

1.查詢每一門的間接先修課。

select first.Cno,second.Cpno
from Course first,Course second
where first.Cpno=second.Cno;

外連接

1.查詢每個學(xué)生及其選修課程情況

select Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
from Student left outer join SC on(Student.Sno=Sc.Sno); 

/*from Student left outer join SC using (Sno);*/有問題

復(fù)合連接

1.查詢選修了2號課程且成績在90分以上的所有學(xué)生

select Student.Sno,Sname,Grade
from SC,Student
where SC.Sno=Student.Sno and Cno='2' and Grade>90;

2.查詢每個學(xué)生的學(xué)號洞渔,姓名套媚,選修課程名及成績

select Student.Sno,Sname,Cname,Grade
from Student,SC,Course
where Student.Sno=SC.Sno and SC.Cno=Course.Cno ;

嵌套查詢

select Sname ,Sno,Sdept
from Student
where Sno in(select Sno
           from Student 
            where Sdept='女');

查詢與劉晨同一系的學(xué)生

select *
from Student
where Sdept in(select Sdept
from Student
where Sname='劉晨');

集合查詢

  1. 查詢數(shù)學(xué)系和信息系的學(xué)生的信息
select * 
from student
where sdept=’MA’
 union
select * 
from student 
where sdept='IS';
  1. 查詢選修了1號課程或2號課程的學(xué)生的學(xué)號
select sno from sc where cno='1' 
Union 
select sno from sc where cno='2';

3.查詢同時選修了“英語”和“數(shù)學(xué)”這兩門課的同學(xué)的學(xué)號缚态,姓名及成績。

select SC.Sno,Sname,Grade
from Student,SC,Course 
where Student.Sno=SC.Sno and SC.Cno=Course.Cno and  Cname in('數(shù)學(xué)','英語')and SC.Sno in(
select Sno
from SC,Course 
where SC.Cno=Course.Cno and Cname='數(shù)學(xué)' 
intersect
select Sno
from SC,Course 
where  SC.Cno=Course.Cno and Cname='英語') ;

4.查詢計算機系學(xué)生年齡不大于23的學(xué)生的差集

select*
from student
where sdept='cs'
except
select *
from student
where sage<23;


查詢測試:

1堤瘤、查詢不姓劉也不姓王的同學(xué)學(xué)號玫芦、姓名、出生年份本辐。

select Sno,Sname,2014-Sage Birthday
from Student
where Sname not like '王%'and Sname not like '劉%';

2桥帆、查詢“信息”系同學(xué)中最大年齡,最小年齡的同學(xué)的信息慎皱。

方法一
select *
from Student
where Sdept='IS'and( Sage =(select max(Sage)
from Student 
where Sdept ='IS'
)or Sage in(select min(Sage)
from Student 
where Sdept='IS'));
方法二
select *
from Student
where Sdept='IS'and Sage in(
select max(Sage)
from Student 
where Sdept ='IS'
union
select min(Sage)
from Student
where Sdept='IS'
);

3老虫、查詢選修了沒有先行課程的同學(xué)的課程號及成績。

select Sno,SC.Cno,Grade
from Course,SC
where SC.Cno=Course.Cno and Cpno is null;

4茫多、查詢和王敏同一個系的同學(xué)的總?cè)藬?shù)祈匙。

select count(Sno)
from Student
where Sdept in(
select Sdept
from Student
where Sname ='王敏');

5、查詢成績在85分以上的同學(xué)信息天揖,按男女分組顯示夺欲,系別以大寫字母顯示。

select Student.Sno,Sname,Sage,Ssex,upper(Sdept)
from Student,SC
where Student.Sno=SC.Sno and Grade>85
order by Ssex;

6今膊、查詢“數(shù)據(jù)庫”這門課程的總成績及平均分些阅。

select sum(Grade),avg(Grade)
from SC,Course
where SC.Cno=Course.Cno and Cname='數(shù)據(jù)庫';

7、查詢數(shù)學(xué)系和信息系同學(xué)的信息万细,按照系別降序扑眉,年齡升序排列。

select *
from Student
where Sdept in('IS','MA')
order by Sage asc,Sdept desc;

8赖钞、查詢姓張的兩個字同學(xué)的選課的學(xué)號腰素,課程號,課程名及成績雪营。

select SC.Sno,SC.Cno,Cname,Ccredit
from Student,SC,Course
where Student.Sno=SC.Sno and SC.Cno=Course.Cno and Sname like '張__';

9弓千、查詢有選課記錄的同學(xué)的人數(shù)。

select count( distinct Sno ) 
from SC;

10献起、查詢選修課程信息中女同學(xué)的選修課程號及相應(yīng)選課人數(shù)洋访。

select SC.Cno,count(SC.Cno)
from SC
where Cno in(select SC.Cno
        from Student,SC
        where Student.Sno=SC.Sno and Ssex='女')
group by SC.Cno;

11、查詢選修“1”號課程且成績在80分以上的同學(xué)的選課信息谴餐。

select*
from SC
where Cno='1' and Grade>80;

12姻政、查詢選修了“信息系統(tǒng)”和“數(shù)學(xué)”兩門課的同學(xué)的學(xué)號,姓名及成績岂嗓。

select SC.Sno,Sname,Grade
from SC,Course,Student
where SC.Sno=Student.Sno and SC.Cno=Course.Cno and Cname in('數(shù)學(xué)','信息系統(tǒng)')and SC.Sno in(
select Sno
from SC,Course
where SC.Cno=Course.Cno and Cname ='數(shù)學(xué)'and Sno in(
select Sno
from SC,Course
where SC.Cno=Course.Cno and Cname='信息系統(tǒng)'));

1汁展、查詢選修了“信息系統(tǒng)”課程的人數(shù)。

select count(Sno)
from Course,SC
where  Course.Cno=SC.Cno and Cname='信息系統(tǒng)';

2、查詢姓劉的同學(xué)的選課信息及出生年份食绿。

select Sname,SC.*,2014-Sage  Birth
from Student,SC
where  Student.Sno=SC.Sno and Sname like'劉%';

3侈咕、查詢選修了“1”號課程的同學(xué)的總成績及平均分。

select sum(Grade) sum,avg(Grade) avg
from SC,Course
where SC.Cno=Course.Cno and SC.Cno='1'; 

4器紧、查詢信息系和計算機系同學(xué)的學(xué)號耀销,姓名和年齡,并按系別升序铲汪,年齡降序排列熊尉。

select Sno,Sname,Sage,Sdept
from Student
where Sdept in('IS','CS')
order by Sage desc,Sdept asc;

5、查詢選修了“數(shù)學(xué)”且在90分以上的同學(xué)的學(xué)號掌腰,姓名帽揪,成績。

select SC.Sno,Sname,Grade
from Student,SC,Course
where Student.Sno=SC.Sno and SC.Cno=Course.Cno and Cname='數(shù)學(xué)' and Grade>90;

6辅斟、統(tǒng)計和李勇同一個系的學(xué)生人數(shù)。

select Count(Sno)
from Student
where  Sdept=(select Sdept
from Student
where Sname like '李勇');

7芦拿、查詢“男同學(xué)中最大年齡士飒,最小年齡的同學(xué)的信息。

方法一
select*
from Student
where Sage in(
select max(Sage)
from Student
where   Ssex like '男')or
Sage in(
select min(Sage)
from Student
where   Ssex like '男');
方法二
select*
from Student
where Sage in(
select max(Sage)
from Student
where   Ssex like '男'
union
select min(Sage)
from Student
where   Ssex like '男');

8蔗崎、查詢姓王的兩個字的同學(xué)的選課的課程名稱及學(xué)分酵幕。

select Cname,Ccredit
from Student,SC,Course
where Student.Sno=SC.Sno and SC.Cno=Course.Cno and Sname like '王__';

9、查詢數(shù)據(jù)庫課程成績在85分以上的同學(xué)的人數(shù)缓苛。

select count(Sno)
from SC,Course
where  SC.Cno=Course.Cno and Cname like '數(shù)據(jù)庫'and Grade>85;

10芳撒、查詢不及格的同學(xué)的學(xué)生信息,按男女進行分組顯示未桥,系別以大寫字母顯示笔刹。

select Student.Sno,Sname,Sage,Ssex,upper(Sdept)
from Student,SC
where Student.Sno=SC.Sno and Grade<60
order by Ssex;

11、查詢沒有先行課的課程號及課程名冬耿。

select Cno,Cname
from Course
where Cpno is null;

12舌菜、查詢選修了“數(shù)據(jù)庫”或“信息系統(tǒng)”兩門課程的同學(xué)的學(xué)號、姓名及成績亦镶。

select SC.Sno,Sname,Grade,Cname
from Student,SC,Course
where Student.Sno=SC.Sno and SC.Cno=Course.Cno and Cname in('數(shù)據(jù)庫','信息系統(tǒng)');

1日月、查詢“信息”系同學(xué)中最大年齡和平均年齡。

select sum(Sage),avg(Sage)
from Student
where Sdept='IS';

2缤骨、查詢不是信息系也不是數(shù)學(xué)系的同學(xué)學(xué)號爱咬、姓名、出生年份绊起。

select Sno,Sname,2014-Sage Birthday
from Student
where Sdept!='IS' and Sdept!='MA';

3精拟、查詢選修了沒有先行課程的同學(xué)的課程號及成績。

select SC.Cno,Grade
from Course,SC
where  SC.Cno=Course.Cno and Cpno is null;

4、查詢和王敏同性別的的同學(xué)的學(xué)號串前、姓名瘫里。

select Sno,Sname
from Student
where Ssex in (
select Ssex
from Student
where Sname ='王敏');

5、查詢不及格的同學(xué)信息荡碾,按男女分組顯示谨读,系別以小寫字母顯示。

select Student.Sno,Sname,Sage,Ssex,lower(Sdept)
from Student,SC
where Student.Sno=SC.Sno and Grade<60
order by Ssex;

6坛吁、查詢選修了“數(shù)據(jù)庫”這門課程的總?cè)藬?shù)劳殖。

select count(Sno)
from SC,Course
where SC.Cno=Course.Cno and Cname='數(shù)據(jù)庫';

7、查詢計算機系和數(shù)學(xué)系同學(xué)的信息拨脉,按照系別降序哆姻,年齡升序排列。

select *
from Student
where Sdept in ('CS','MA')
order by Sdept desc,Sage asc;

8玫膀、查詢姓張和姓王的同學(xué)的選課的學(xué)號矛缨,課程號,課程名及成績帖旨。

select SC.Sno,SC.Cno,Cname,Grade
from Student,SC,Course
where STudent.Sno=SC.Sno and SC.Cno=Course.Cno and (Sname like'王%' or Sname like '張%');

9箕昭、查詢各個課程號及相應(yīng)的選課人數(shù)。

select Cno ,count(Cno)
from SC
group by Cno; 

10解阅、查詢選修了3門課程的同學(xué)的學(xué)生學(xué)號落竹。

select Sno
from SC
group by Sno
having count(Cno)=3; 

11、查詢選修“1”號課程且成績在80分以上的同學(xué)的學(xué)號货抄、姓名述召、課程名及成績。

select SC.Sno,Sname,Cname,Grade
from Student,SC,Course
where Student.Sno=SC.Sno and SC.Cno=Course.Cno and SC.Cno='1' and Grade>80;

12蟹地、查詢同時選修了“英語”和“數(shù)學(xué)”這兩門課的同學(xué)的學(xué)號积暖,姓名及成績。

方法一
select SC.Sno,Sname,Grade
from Student,SC,Course 
where Student.Sno=SC.Sno and SC.Cno=Course.Cno and  Cname in('數(shù)學(xué)','英語')and SC.Sno in(
select Sno
from SC,Course 
where SC.Cno=Course.Cno and Cname='數(shù)學(xué)' 
intersect
select Sno
from SC,Course 
where  SC.Cno=Course.Cno and Cname='英語') ;
方法二
select SC.Sno,Sname,Grade
from Student,SC,Course 
where Student.Sno=SC.Sno and SC.Cno=Course.Cno and Cname in('數(shù)學(xué)','英語')and SC.Sno in(
select Sno
from SC,Course 
where SC.Cno=Course.Cno and Cname='數(shù)學(xué)'and Sno in( 
select Sno
from SC,Course 
where  SC.Cno=Course.Cno and Cname='英語')) ;

插入

1.插入一條學(xué)生紀(jì)錄

insert 
into student(sno,sname,ssex,sdept,sage)
values ('201212019','程東','男','IS',18);

insert
 into Student(sno,sname,ssex,sage,sdept)  
values('95005', '劉云',   '女',18, 'CS ');

2怪与,插入一條選課記錄

insert 
into SC
values ('6','201212016',56);
或者
insert 
into SC
values ('9','201212013',null);

3.對每一個系呀酸,求學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫

create table Dept_age
(Sdept char(15),
 ave_age smallint);
insert 
into Dept_age(sdept,avg_age)
select Sdept,avg(Sage)
from student
group by  Sdept;

修改

1.將學(xué)號201212016的年齡改為25

update Student
set Sage=25
where Sno='201212016';

2.將所有的學(xué)生年齡加1

update student
set sage=sage+1;

3.將張三成績置0

update SC
set grade=0
where'張三'=(select Sname 
from Student
where Student.Sno=SC.sno);

4.輸出數(shù)據(jù)庫成績前三名信息

方法一:
select top 3 SC.Sno,Sname,sdept,Grade
from sc,course,student
where Student.sno=SC.sno and course.cno=sc.cno and cname='數(shù)據(jù)庫'  
order by grade desc;
方法二:
create view 數(shù)據(jù)庫成績
as
select SC.Sno,Sname,sdept,Grade
from sc,course,student
where Student.sno=SC.sno and course.cno=sc.cno and cname='數(shù)據(jù)庫';
select top 3*
from 數(shù)據(jù)庫成績
order by grade desc;

刪除

1.刪除學(xué)號是201212018的同學(xué)信息

delete 
from Student
where Sno='201212018';

2.刪除程東同學(xué)的選修信息

delete 
from SC
where '程東'=(select Sname
from student
where SC.sno=student.sno);

視圖

創(chuàng)建視圖

1.創(chuàng)建一個反映學(xué)生出生年份的視圖:

create view BT_S(sno, sname, 出生年份) 
as 
select sno, sname, 2014- sage 
from student;

2.將所有女生的記錄定義為一個視圖:

create view F_student 
as
 select *
 from student 
where ssex='女';

3.建立數(shù)學(xué)系學(xué)生視圖

create view MA_student 
as
 select *
 from student 
where Sdept='ma';

4.建立信息系學(xué)生視圖琼梆,要求進行修改和插入操作時仍需保證該視圖只有信息系學(xué)生

create view IS_student 
as
 select sno,sname,sage
 from student 
where Sdept='is'
with check option;

刪除視圖

1.刪除視圖SC-s

drop view SC_s;

drop view SC_s cascade;//刪除了視圖和它導(dǎo)出的所有視圖

查詢視圖

1.查找出信息系視圖中年齡小于20的所有學(xué)生

select *
from IS_student
where Sage<20;

更新視圖與更新表的操作一樣

完整性約束命令子句建表

1.創(chuàng)建學(xué)生表要求性誉,姓名唯一,年齡在18-25茎杂,性別只能是男错览,女,學(xué)號是主碼

create table Stu(
Sname char(9) unique,
Sno char(10),
Sage smallint constraint c1 check (Sage between 18 and 45),
Ssex char(2) constraint c2 check (Ssex in('男','女')),
Sdept char(20), 
constraint Stukey primary key(Sno));

修改完整性約束

alter table Stu2 add constraint check ( Sname not like '劉%'and Ssex='女');
alter table Stu2 add constraint t9 check (Sno between 900and 999);

4.刪除原來的完整性約束煌往,增加新的

alter table student drop constraint C1;
alter table student add constraint C1 check(Sno between 900 and 999);

更新視圖測試:

1倾哺、將計算機系和數(shù)學(xué)系姓劉的同學(xué)年齡加1歲轧邪。

update Student
set sage=sage+1
where Sdept in('MA','CS');

2、將同學(xué)們選修的“數(shù)據(jù)庫”課程的成績設(shè)為85分羞海。

update SC
set Grade=85
where '數(shù)據(jù)庫'=(
select Cname
from Course
where Course.cno=SC.Cno );

3忌愚、在數(shù)據(jù)表的全屬性中將新同學(xué)記錄(200215178,張鵬却邓,女硕糊,18歲);

(200215179腊徙,劉明简十,男, 19歲)插入到學(xué)生表中撬腾。
insert
into Student(Sno,Sname,Ssex,Sage)
values ('200215179','劉明','男' ,'19');

4螟蝙、求選修了數(shù)據(jù)庫同學(xué)的平均成績,并將結(jié)果存入數(shù)據(jù)庫中民傻。

create table  DB
( Sno char(13),
   Avgs smallint);
insert 
into DB
select cname,avg(Grade)
from sc,course
where sc.cno=course.cno and cname='數(shù)據(jù)庫'
group by cname;

5胰默、刪除“7”號課程的課程信息。

delete
from sc
where cno='7'; 

6漓踢、將選修課各科的課程號初坠、課程名及平均成績的定義一個視圖。

create view SC_Course
as
select SC.Cno,Cname,avg(grade) 平均成績
from sc,course
where sc.cno=course.cno
group by sc.cno,cname;

7彭雾、向信息系學(xué)生視圖IS_S中插入一條新的學(xué)生記錄(200215199,趙庚锁保,20歲)薯酝。

create view IS_S
as
select *
from student
where Sdept='Is';

insert
into  IS_S(sno,sname,sage)
values('200215199','趙庚','20');

insert
into  IS_S(sno,sname,sage,sdept)
values('200215199','趙庚','20','is');

8、查詢計算機系及信息系選修1號課程視圖中成績在80-95之間的學(xué)生的學(xué)號爽柒,姓名吴菠,課程名及成績。

create view SC_s(sno,sname,cno,cname,sdept,grade)
as
select sc.sno,sname,sc.cno,cname,sdept,grade
from sc,student,course
where student.sno=sc.sno and sc.cno=course.cno and sc.cno='1'and sdept in ('cs','is');


select sno,sname,cname,grade
from SC_s
where grade between 80 and 95;

9浩村、刪除信息系同學(xué)視圖IS_S中學(xué)號為200215199的學(xué)生記錄做葵。

delete 
from IS_S
where sno='200215199';

10、將信息系學(xué)生視圖IS_S中學(xué)號為200215125的同學(xué)姓名改為楊悅心墅。

update IS_S
set sname='楊悅'
where sno='201212019';

11酿矢、用命令創(chuàng)建一個職工表,其中有職工號怎燥,姓名瘫筐,性別,年齡铐姚,
其中職工號為四位整數(shù)策肝,姓名不允許取空值,性別只能取男或女。

create table Workers
( Wno char(10)constraint W1 check (Wno between 1000 and 9999),
Wname char(20)constraint W2 not null,
Wsex char(3) constraint W3 check (Wsex in('男','女')),
Wage int);

12之众、用命令創(chuàng)建一個倉庫管理表拙毫,其中有職工號,倉庫號棺禾,庫存量缀蹄,其中庫存量在0到1000之間。

create table  Chouse
( Wno char(10),
  Cno char(10),
  Cquanlity float constraint C1 check (Cquanlity between 0 and 1000));

授權(quán)與回收

1.將查詢student表的權(quán)限授予用戶U1

grant select
on  student
to U1;
考試時寫
grant select
on  table student
to U1;

2.把student帘睦,course表的全部權(quán)限授予U2和U1

grant all privileges
on  student,course
to U1,U2;

3.把對表SC的查詢權(quán)限授予所有用戶

grant select
on SC
to public;

4.把查詢student和修改學(xué)生學(xué)號的權(quán)限授予用戶2

grant update(sno),select
on student
to U2;

5.把對表SC的插入權(quán)限授予用戶2袍患,并允許將此權(quán)限在授予其他用戶

grant insert
on SC
to U2
with grant option;

回收權(quán)限

6.把用戶2修改學(xué)生學(xué)號的權(quán)限回收

revoke update(sno)
on student
from u2;

7.回收所有用戶對表的查詢

revoke select
on SC
from public;

8.把用戶u2對SC的插入權(quán)限回收

revoke insert
on SC
from U2 cascade;

創(chuàng)建角色

1.創(chuàng)建一個角色R1;

create role R1;

2.用grant對角色R1授予student的select,update竣付,insert權(quán)限

grant select,update,insert
on student
to R1;

3.將角色授予U1

grant R1
to U1;

4.回收u1的三個權(quán)限

revoke R1
from U1;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诡延,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子古胆,更是在濱河造成了極大的恐慌肆良,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逸绎,死亡現(xiàn)場離奇詭異惹恃,居然都是意外死亡,警方通過查閱死者的電腦和手機棺牧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門巫糙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人颊乘,你說我怎么就攤上這事参淹。” “怎么了乏悄?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵浙值,是天一觀的道長。 經(jīng)常有香客問我檩小,道長开呐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任规求,我火速辦了婚禮筐付,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘阻肿。我一直安慰自己家妆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布冕茅。 她就那樣靜靜地躺著伤极,像睡著了一般蛹找。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哨坪,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天庸疾,我揣著相機與錄音,去河邊找鬼当编。 笑死届慈,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的忿偷。 我是一名探鬼主播金顿,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鲤桥!你這毒婦竟也來了揍拆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤茶凳,失蹤者是張志新(化名)和其女友劉穎嫂拴,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贮喧,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡筒狠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了箱沦。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辩恼。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖谓形,靈堂內(nèi)的尸體忽然破棺而出灶伊,到底是詐尸還是另有隱情,我是刑警寧澤套耕,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站峡继,受9級特大地震影響冯袍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碾牌,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一康愤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧舶吗,春花似錦征冷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽肴捉。三九已至,卻和暖如春叔收,著一層夾襖步出監(jiān)牢的瞬間齿穗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工饺律, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窃页,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓复濒,卻偏偏與公主長得像脖卖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子巧颈,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 50個常用的sql語句Student(S#,Sname,Sage,Ssex) 學(xué)生表Course(C#,Cname...
    哈哈海閱讀 1,228評論 0 7
  • 50個常用的sql語句 Student(S#,Sname,Sage,Ssex) 學(xué)生表 Course(C#,Cna...
    最美的太陽WW閱讀 3,170評論 0 23
  • 說明:以下五十個語句都按照測試數(shù)據(jù)進行過測試畦木,最好每次只單獨運行一個語句。 問題及描述: --1.學(xué)生表 Stud...
    lijun_m閱讀 1,295評論 0 1
  • 1 概要 數(shù)據(jù)查詢 select數(shù)據(jù)定義 create drop alter數(shù)據(jù)操縱 insert update ...
    Rush的博客閱讀 1,325評論 0 1
  • 中秋節(jié)三天假期過得好快洛二,我還沒來得及回味呢馋劈。總得來說晾嘶,第一天去北交面基妓雾,第二天在死宅,第三天去了天壇垒迂。有圖有真相械姻。...
    冰弦斷橋雪閱讀 233評論 0 0