Êý¾Ý¿âÔ­ÀíʵÑ鱨¸æ ÏÂÔØ±¾ÎÄ

¡¶Êý¾Ý¿âÔ­Àí¡·

ʵ Ñé ±¨ ¸æ

ѧºÅ: 541013100256 ÐÕÃû: ÕźÆÅô רҵ°à¼¶: Èí¼þ¹¤³Ì£¨java¼¼Êõ£©

java10-02°à

Ö¸µ¼½Ìʦ£º ËÎʤÀû

Ö£ÖÝÇṤҵѧԺÈí¼þ

ʱ¼ä£º2012Äê12ÔÂ12ÈÕÐÇÆÚÈý

Ŀ ¼

Ò»¡¢ÊµÑéÄÚÈݼ°ÒªÇó ..................................................................................... ´íÎó£¡Î´¶¨ÒåÊéÇ©¡£ ¶þ¡¢ÊµÑéÄ¿µÄ ................................................................................................................................... 4 Èý¡¢Microsoft SQL Server 2008ʵÑé ............................................................................................. 5

ʵÑéÒ» Êý¾Ý¿â´´½¨ ................................................................................................................. 5 ʵÑé¶þ ´´½¨±í ......................................................................................................................... 8 ʵÑéÈý ´´½¨Êý¾ÝÍêÕûÐÔ ....................................................................................................... 12 ʵÑéËÄ Êý¾ÝÍêÕûÐÔʵÑé ....................................................................................................... 18 ʵÑéÎå Ë÷Òý ........................................................................................................................... 26 ʵÑéÁù ¸üÐÂÊý¾Ý ................................................................................................................... 32 ʵÑéÆß Sql ²éѯÓï¾ä ........................................................................................................... 34 ʵÑé°Ë ÊÓͼ ........................................................................................................................... 47 ʵÑé¾Å °²È«ÐÔ¿ØÖÆÊµÑé ....................................................................................................... 54 ʵÑéÊ® ´æ´¢¹ý³Ì ................................................................................................................... 55 ʵÑéʮһ ´¥·¢Æ÷ ................................................................................................................... 59 ʵÑéÊ®¶þ »Ö¸´¼¼Êõ ............................................................................................................... 59 ʵÑéÊ®Èý ÊÂÎñ ....................................................................................................................... 66 ʵÑéÊ®ËÄ Ëø ........................................................................................................................... 68 ËÄ¡¢ÊµÑéÌå»á ................................................................................................................................. 71

2

Ò»¡¢ÊµÑéÄÚÈݼ°ÒªÇó

ʵÑéÒ» Êý¾Ý¿â´´½¨

ÒªÇó£º1 ´´½¨Êý¾Ý¿â 2 ÐÞ¸ÄÊý¾Ý¿â 3 ɾ³ýÊý¾Ý¿â

ʵÑé¶þ ´´½¨±í

ÒªÇó£º1 ´´½¨±í 2 Ð޸ıí½á¹¹ 3 ɾ³ý±í

ʵÑéÈý ´´½¨Êý¾ÝÍêÕûÐÔ

ÒªÇó£º1 Äܽ¨Á¢ÍêÕûÐÔÔ¼Êø 2 ÐÞ¸ÄÍêÕûÐÔÔ¼Êø 3 ɾ³ýÍêÕûÐÔÔ¼Êø

ʵÑéËÄ Êý¾ÝÍêÕûÐÔʵÑé

ÒªÇ󣺼ǼʵÑéÖÐÓöµ½µÄÎÊÌ⣬²¢Ð´³öÔ­Òò¡£

ʵÑéÎå Ë÷Òý

ÒªÇ󣺽¨Ë÷Òý

ʵÑéÁù ¸üÐÂÊý¾Ý

ÒªÇ󣺸üÐÂÊý¾Ý

ʵÑéÆß Sql ²éѯÓï¾ä

ÒªÇó£ºSql²éѯÓï¾ä

ʵÑé°Ë ÊÓͼ

ÒªÇ󣺽¨ÊÓͼ

ʵÑé¾Å °²È«ÐÔ¿ØÖÆÊµÑé

ÒªÇ󣺻ᰲȫÐÔ¿ØÖÆ

ʵÑéÊ® ´æ´¢¹ý³Ì

ÒªÇ󣺽¨´æ´¢¹ý³Ì

ʵÑéʮһ ´¥·¢Æ÷

ÒªÇ󣺽¨´¥·¢Æ÷

ʵÑéÊ®¶þ »Ö¸´¼¼Êõ

ÒªÇ󣺻áÊý¾Ý¿â»Ö¸´¼¼Êõ

ʵÑéÊ®Èý ÊÂÎñ

ÒªÇ󣺻ᴦÀíÊÂÎñ

ʵÑéÊ®ËÄ Ëø

ÒªÇ󣺻ὨÁ¢Ëø

3

¶þ¡¢ÊµÑéÄ¿µÄ

ʵÑéÒ» Êý¾Ý¿â´´½¨

1ÕÆÎÕÀûÓÃSQLÓïÑÔ½øÐÐÊý¾Ý¿âµÄ´´½¨¡¢Î¬»¤¡£ 2 sp_helpdb ÃüÁî

ʵÑé¶þ ´´½¨±í

1 ÕÆÎÕÀûÓÃSQLÓïÑÔ´´½¨±íµÄ·½·¨¡£ 2 sp_help ÃüÁî

ʵÑéÈý ´´½¨Êý¾ÝÍêÕûÐÔ

1ÕÆÎÕ´´½¨Êý¾ÝÍêÕûÐÔÔ¼ÊøµÄÃüÁî¡£ 2 ÕÆÎÕÍêÕûÐÔÔ¼ÊøµÄÐ޸ġ¢É¾³ý¡£

ʵÑéËÄ Êý¾ÝÍêÕûÐÔʵÑé

1Àí½âʵÌåÍêÕûÐÔ¡¢²ÎÕÕÍêÕûÐÔ¡¢Óû§×Ô¶¨ÒåÍêÕûÐÔµÄ×÷Óà 2 ÌØ±ðÕÆÎÕÍâÂëµÄ×÷Óá£

ʵÑéÎå Ë÷Òý

ÕÆÎÕË÷ÒýµÄ½¨Á¢¡¢É¾³ýµÄ·½·¨¡£

ʵÑéÁù ¸üÐÂÊý¾Ý

ÕÆÎÕinsert,update ,delete Óï¾äµÄʹÓá£

ʵÑéÆß Sql ²éѯÓï¾ä

ÕÆÎÕ Select ²éѯÓï¾ä¡£

ʵÑé°Ë ÊÓͼ

ÕÆÎÕÊÓͼµÄ½¨Á¢¡¢Ê¹Óá£

ʵÑé¾Å °²È«ÐÔ¿ØÖÆÊµÑé

ÕÆÎÕSql-server µÄÊÚȨ»úÖÆ.

ʵÑéÊ® ´æ´¢¹ý³Ì

ÕÆÎÕ´æ´¢¹ý³ÌµÄ¸ÅÄî¡¢±à³Ì¼°Ê¹ÓÃ

ʵÑéʮһ ´¥·¢Æ÷

Á˽ⴥ·¢Æ÷µÄ»úÖÆ¼°±à³ÌÉè¼Æ¡¢Ê¹ÓÃ

ʵÑéÊ®¶þ »Ö¸´¼¼Êõ

1 ÕÆÎÕÊý¾Ý¿âµÄ±¸·Ý¼°»Ö¸´µÄ·½·¨¡£ 2 Á˽ⱸ·Ý·½°¸µÄÉ趨

ʵÑéÊ®Èý ÊÂÎñ

1 ÕÆÎÕ²¢Àí½âÊÂÎñ

ʵÑéÊ®ËÄ Ëø

1 Àí½âËøµÄ¸ÅÄî¼°ËøµÄ×÷ÓÃ

4

Èý¡¢ÊµÑé²½Öè¼°ÔËÐнá¹û

ʵÑéÒ» Êý¾Ý¿â´´½¨

Ò» ½¨Á¢school Êý¾Ý¿â

1 Create database school;

Ë¢ÐÂ×ó±ßµÄÊý¾Ý¿â¼´¿É¿´µ½½¨Á¢µÄschoolÊý¾Ý¿â

2 ÓÃsp-helpdb²éѯÊý¾Ý¿âschoolµÄÐÅÏ¢

5

¶þ ɾ³ýSchoolÊý¾Ý¿â

1 ʹÓòéѯ·ÖÎöÆ÷ɾ³ýÊý¾Ý¿â school DROP DATABASE school

ˢкó¿É¿´µ½ÒÑ´´½¨µÄÊý¾Ý¿âschoolÒѱ»É¾³ý

2 ʹÓÃSQL-Server µÄÆóÒµ¹ÜÀíÆ÷ɾ³ýÊý¾Ý¿â school ¡£

Èý create Database ÉîÈëÑо¿

6

1 ½¨Á¢schoolÊý¾Ý¿â,ÒªÇóÊý¾Ý¿â´æ´¢ÔÚD:\\sqldataÎļþ¼ÐÏ£¬³õʼ´óСΪ5MB ,ÔöÁ¿Îª 1MB¡£

CREATE DATABASE school ON( Name = ¡®school_dat¡¯,

Filename =¡¯ D:\\sqldata \\school.mdf¡¯, SIZE = 5,

FILEGROWTH = 1 )

Ë¢ÐÂÊý¾Ý¿â¿É¿´µ½schoolÊý¾Ý¿â

7

ʵÑé¶þ ´´½¨±í

Ò» д³öʹÓà Create Table Óï¾ä´´½¨±í student, SC,course µÄSQLÓï¾ä¡£

ѧÉú±í¡¢¿Î³Ì±í¡¢Ñ¡¿Î±íÊôÓÚÊý¾Ý¿â School £¬Æä¸÷×ÔµÃÊý¾Ý½á¹¹ÈçÏ£º ѧÉú student (Sno,Sname,Ssex,Sage,Sdept)

ÐòºÅ ÁÐÃû º¬Òå Êý¾ÝÀàÐÍ ³¤¶È 1 Sno 6 ѧºÅ ×Ö·ûÐÍ(char) 2 Sname 8 ÐÕÃû ×Ö·ûÐÍ(varchar) 3 Ssex 2 ÐÔ±ð ×Ö·ûÐÍ(char) 4 Sage ÄêÁä ÕûÊý (smallint) 5 sdept 15 ϵ¿Æ ×Ö·ûÐÍ(varchar)

¿Î³Ì±í course(Cno,Cname,Cpno,Ccredit)

ÐòºÅ ÁÐÃû º¬Òå Êý¾ÝÀàÐÍ ³¤¶È 1 Cno 4 ¿Î³ÌºÅ ×Ö·ûÐÍ(char) 2 cname 20 ¿Î³ÌÃû ×Ö·ûÐÍ(varchar) 3 Cpno 4 ÏÈÐÞ¿Î ×Ö·ûÐÍ(char) 4 Ccredit ѧ·Ö ¶ÌÕûÊý (tinyint) ѧÉúÑ¡¿Î SC(Sno,Cno,Grade)

ÐòºÅ ÁÐÃû º¬Òå Êý¾ÝÀàÐÍ ³¤¶È 1 Sno 4 ѧºÅ ×Ö·ûÐÍ(char) 2 Cno 6 ¿Î³ÌÃû ×Ö·ûÐÍ(char) 3 Grade 12,1 ³É¼¨ СÊý(decimal)

¶þ ÒªÖ´ÐеÄSqlÓï¾ä¡£

create table student ( Sno char(6) , Sname char(10) , Ssex char(2) , Sage smallint , Sdept char(10) , )

create table course( Cno char(4) , Cname char(16) , Cpno char(4) , Ccredit int, )

create table SC( Sno char(6), Cno char(4) , Grade int )

8

ËÄ ÀûÓà sql Óï¾ä±í½á¹¹ÐÞ¸Ä

Alter table student add address varchar(60); Alter table student add inDate datetime; ʹÓÃsp_help½øÐв鿴£º

9

alter table student alter column address varchar(50); ʹÓÃsp_help²é¿´½á¹û£º

alter table student drop column inDate;

·Ö±ðɾ³ý±ísc¡¢student¡¢course

drop table sc;

drop table student;

drop table course;

10

11

ʵÑéÈý ´´½¨Êý¾ÝÍêÕûÐÔ

Ò» д³ö´øÓÐÍêÕûÐÔÔ¼ÊøµÄ Create Table ÃüÁÁ¢±ístudent¡¢course¡¢SC ¡£ÒªÇó£º

1 Student±íµÄÖ÷Â룺Sno student µÄÔ¼Êø£º

? ÐÕÃû²»¿ÉΪ¿Õ£¬ÇÒΨһ

? ÐԱ𠲻ÄÜΪ¿ÕÇÒȡֵ·¶Î§Îª{ÄУ¬Å®} ? ÄêÁä´óÓÚ16Ëê

? Sdept ĬÈÏΪ ?JSJ? ϵ

2 Course±íµÄÖ÷Â룺Cno course µÄÔ¼Êø£º

? Ccredit ȡֵ·¶Î§{ 0 ,1,2,3,4,5 }

? ¿Î³Ì±íµÄÿһÐÐµÄ Cno Óë cpno ²»¿ÉÏàͬ

3 SC±íµÄÖ÷Â룺Sno£¬Cno ¡£Ö÷ÂëÃûΪ PK_SC

ScµÄÍâÂ룺

? ÍâÂ룺SC ±íµÄSno ²ÎÕÕ±í student µÄSno ? ÍâÂ룺SC ±íµÄCno ²ÎÕÕ±í course µÄCno

4 °ÑÉÏÊö´´½¨±íµÄsql Óï¾äµÄ½Å±¾´æ´¢µ½Îļþ createSchool.sql ¡£ create table student ( Sno char(6) ,

Sname char(10) not null unique ,

Ssex char(2) check (ssex='ÄÐ' or ssex='Å®') , Sage smallint check(sage>16) ,

Sdept char(10) not null default 'JSJ' ,

primary key (Sno) )

create table course( Cno char(4) , Cname char(16) , Cpno char(4) ,

Ccredit int check (Ccredit >=0 and Ccredit<=5),

check( Cno<>Cpno) , --Ô¼Êø primary key (Cno) )

create table SC( Sno char(6), Cno char(4) ,

Grade int check(grade<=100) ,

constraint pk_sc primary key (Sno,Cno), foreign key (Sno) references student(Sno) , foreign key (Cno) references course(Cno) , )

12

¶þ ʹÓà SP_HELP ²é¿´±í student µÄÖ÷ÂëÃû£¬Ô¼ÊøÃû£¬²¢¼Ç¼¡£

¼Ç¼½á¹ûΪ£º

Ö÷ÂëÃû£ºPK__student__7C8480AE(sno)

Ô¼ÊøÃû£ºCK__student__sage__7F60ED59([sage]>(16))

CK__student__ssex__7E6CC920 ([ssex]='ÄÐ' OR [ssex]='Å®') DF__student__sdept__00551192 ('JSJ') PK__student__7C8480AE £¨sno£© UQ__student__7D78A4E7£¨sname£©

1¡¢É¾³ýscµÄÖ÷Âë

alter table sc drop pk_sc;

13

ɾ³ýsc±í²ÎÕÕ±ícourse±íµÄÍâÂëµÄÃû×Ö¡£ ÏÈÕÒµ½course±íµÄÍâÂëÃû sp_help course;

school.dbo.sc: FK__sc__cno__08EA5793 alter table sc drop FK__sc__cno__08EA5793;

14

Ìí¼Ósc±íµÄÖ÷Âë

alter table sc add constraint pk_sc primary key(sno,cno);

Ìí¼Ósc±íµÄcnoµÄÍâÂë

alter table sc add foreign key (cno) references course(cno);

15

¼Ó×Ô¶¨ÒåÔ¼Êø£º±íscµÄ³É¼¨Ö»ÄÜÔÚ0-100·ÖÖ®¼ä¡£

alter table sc add check(grade>=0 and grade<=100);

ËÄ Ê¹Óà Sql-Server ÆóÒµ¹ÜÀíÆ÷Íê³É£º

1 ɾ³ý SC ±í²ÎÕÕ course ±íµÄÍâÂë¡£

2 ½¨Á¢ SC ±íµÄCno µÄÍâÂë £¬²ÎÕÕ±íCourseµÄCno. *ʹ¸ÃÍâÂë¾ßÓм¶ÁªÐ޸ĵŦÄÜ¡£

3 ɾ³ý±í SCµÄ³É¼¨Ö»ÄÜÔÚ 0 ¨C 100·ÖÖ®¼äµÄÔ¼Êø.

3¼Ó×Ô¶¨ÒåÔ¼Êø£º±í SCµÄ³É¼¨Ö»ÄÜÔÚ 0 ¨C 100·ÖÖ®¼ä¡£

16

Îå ʹÓÃ

select * from student ²é¿´ÐÅÏ¢ select * from course ²é¿´ÐÅÏ¢ select * from SC ²é¿´ÐÅÏ¢

17

ʵÑéËÄ Êý¾ÝÍêÕûÐÔʵÑé

1¡¢Ïòstudent±íÖÐÊäÈëÊý¾Ý

insert into student (

sno,sname,ssex,sage,sdept)

values ('3001','ÕÔ´ï','ÄÐ','20','SX');

²åÈëµÚ¶þÌõ¼Ç¼£º

insert into student (

sno,sname,ssex,sage,sdept)

values ('3002','ÑîÀö','Å®','21','JSJ');

²åÈëµÚÈýÌõ¼Ç¼£º

insert into student (

sno,sname,ssex,sage,sdept)

18

values ('3001','ÀîÒú','Å®','21','SX');

·¢ÏÖÏûÏ¢¿òÌáʾ´íÎ󣺵ÚÈýÐв»ÄÜÊäÈ룬studentµÄÖ÷ÂëΪsno£¬Òò´Ë£¬snoÁеÄÖµ²»ÄÜÖØ¸´¡£

ÓÃselectÓï¾ä¶Ô±ístudent½øÐвéѯ£¬·¢ÏÖÖ»²åÈëÁËǰÁ½Ìõ¼Ç¼£¬ÓÉÓÚµÚÈýÌõ¼Ç¼Υ·´ÁËÖ÷ÂëΨһÐÔ£¬ËùÒÔ²åÈëʧ°Ü¡£½ØÍ¼ÈçÏ£º

insert into sc( sno,cno,grade)

values('3001','1081','79');

½ØÍ¼ÈçÏ£º

19

ÓÉÉÏͼ¿ÉÖªÓÐ´í£¬Ô­ÒòÊÇ£ºsc±íµÄÖ÷ÂëΪ£ºsno,cno,Ö÷ÂëÃûΪ£ºPK_SC£¬Î¥·´ÁËPRIMARY KEYΨһÐÔ£¬Òò´Ë²»ÄܲåÈëÖØ¸´Öµ£¬Ìáʾ´íÎó¡£ Óû§×Ô¶¨ÒåÍêÕûÐÔÔ¼Êø£º Student±íÊý¾ÝµÄÊäÈ룺 ²åÈëµÚÒ»Ìõ¼Ç¼£º

insert into student(

sno,sname,ssex,sage,sdept)

values('3005','ÕÔ´ï','ÄÐ','14','SX');

½ØÍ¼ÈçÏ£º

20

ÓÉÉÏͼ¿ÉÖª³ö´í£¬Ô­Òò£ºÎ¥·´ÁËÓû§×Ô¶¨ÒåÔ¼Êø£ºÄêÁ乿¶¨Îª´óÓÚ16£¬¶øÕâÀï²åÈëµÄÊÇ14£¨<16£©£¬ËùÒÔ²åÈëʧ°Ü£¬Ìáʾ´íÎó¡£ ²åÈëµÚ¶þÌõ¼Ç¼£º

insert into student(

sno,sname,ssex,sage,sdept)

values('3006','ÑîÀö','ÄÏ','21','JSJ');

½ØÍ¼ÈçÏ£º

ÓÉÉÏͼ¿ÉÖª²åÈëʧ°Ü£¬Ô­Òò£ºÎ¥·´ÁËÓû§×Ô¶¨ÒåÍêÕûÐÔÔ¼Êø£ºÐÔ±ð²»ÄÜΪ¿ÕÇÒȡֵ·¶Î§Îª{ÄУ¬Å®}£¬

¶ø´Ë´¦µÄÐÔ±ðΪÄϲ»µÈÓÚÄУ¬ËùÒÔ²åÈëʧ°Ü£¬Ìáʾ´íÎó¡£ ÓÃselectÓï¾ä²éѯ²åÈëµÄ¼Ç¼Êý£º

select * from student;

½ØÍ¼ÈçÏ£º

21

Course±íÊý¾ÝµÄÊäÈ룺 µÚÒ»Ìõ¼Ç¼£º

insert into course(

cno,cname,cpno,ccredit)

values('1085','c++','','9');

½ØÍ¼ÈçÏ£º

ÓÉÉÏͼ¿ÉÖª²åÈëʧ°Ü£¬Ô­ÒòÊÇ£ºÎ¥·´ÁËcourse±íµÄ×Ô¶¨ÒåÔ¼Êø£ºccreditȡֵ·¶Î§{0,1,2,3,4,5}£¬¶øÕâÀï²åÈëµÄccreditΪ6£¬²»ÊôÓÚccredit¹æ¶¨µÄȡֵ·¶Î§£¬ËùÒÔ²åÈëʧ°Ü£¬¸ø³öÌáʾÐÅÏ¢¡£

22

µÚ¶þÌõ¼Ç¼£º

insert into course(

cno,cname,cpno,ccredit)

values('1086','ÓïÎÄ','1086','3');

½ØÍ¼ÈçÏ£º

ÓÉÉÏͼ¿ÉÖª²åÈëʧ°Ü£¬Ô­Òò£ºÎ¥·´Á˱ícourseµÄ×Ô¶¨ÒåÔ¼Êø£º¿Î³Ì±íµÄÿһÐеÄcnoÓëcpno²»¿ÉÏàͬ£¬¶øÕâÀï²åÈëµÄcno:1086=cpno:1086£¬ËùÒÔ²åÈëʧ°Ü£¬¸ø³öÌáʾÐÅÏ¢¡£ ÓÃselectÓï¾ä²éѯ¿´³É¹¦²åÈëÁ˼¸ÌõÓï¾ä£º

select * from course;

½ØÍ¼ÈçÏ£º

23

ÓÉÉÏͼ¿ÉÖª³É¹¦²åÈëÁËÒ»Ìõ¼Ç¼¡£ Sc±íÊý¾ÝµÄÊäÈ룺

insert into sc( sno,cno,grade)

values('3002','1081','128');

½ØÍ¼ÈçÏ£º

ÓÉÉÏͼ¿ÉÖª²åÈëʧ°Ü£¬Ô­Òò£ºgrade²»ÄÜ´óÓÚ100·Ö£¬¶øÕâÀïÊÇ128£¨>100£©£¬ËùÒÔ²åÈëʧ°Ü¡£

ÔÚsc±íÖÐÌí¼ÓÐÂÐУº

24

insert into sc( sno,cno,grade)

values('4001','1066','76');

Ìí¼Óʧ°Ü£¬Ô­Òò£ºcnoÊÇÍâÂ룬²ÎÕÕcourse±íµÄcno,µ«ÔÚcourse±íÖÐûÓÐ1066µÄ¿Î³ÌºÅ¡£

25

ʵÑéÎå Ë÷Òý

1¡¢´´½¨Ë÷Òý

½¨studentµÄË÷Òý£ºÎªÐÕÃû½¨Á¢Ë÷Òý£¬Ë÷ÒýÃû£ºix_student_sname Ϊϵ¿Æ½¨Á¢Ë÷Òý£¬Ë÷ÒýÃû£ºix_student_sdept

create index ix_student_sname on student(sname);

´´½¨Ë÷Òý³É¹¦¡£

create index ix_student_sdept on student(sdept);

26

´´½¨Ë÷Òý³É¹¦¡£ ScµÄË÷Òý

Ϊ¿Î³ÌºÅ½¨Á¢Ë÷Òý£ºix_sc_cno create index ix_sc_cno on sc(cno);

´´½¨Ë÷Òý³É¹¦¡£ CourseµÄË÷Òý

Ϊ¿Î³ÌÃû½¨Á¢Î¨Ò»ÐÔË÷Òý£ºix_course_cname

create unique index ix_course_cname on course(cname);

27

´´½¨Ë÷Òý³É¹¦¡£

ÓÃsp_help·Ö±ð²é¿´±ístudent,sc,courseËù´´½¨µÄË÷Òý¡£ sp_help student;

sp_help sc;

28

sp_help course;

ɾ³ýcourse±íµÄË÷Òýix_course_cname

drop index course.ix_course_cname;

29

°ÑË÷Òýix_student_snameÐÞ¸ÄΪΨһÐÔË÷Òý¡£ ²½Ö裺

1¡¢ÏÈɾ³ýË÷Òýix_student_sname£º

drop index student.ix_student_sname;

1¡¢½¨Î¨Ò»ÐÔË÷Òýix_student_sname£º

create unique index ix_student_sname on student(sname);

30

31

ʵÑéÁù ¸üÐÂÊý¾Ý

Ò» insert

1 д³ö°ÑÏÂÊöѧÉúµÄÐÅÏ¢Ìí¼Óµ½student±íÖеÄÃüÁî¡£ ѧºÅ ÐÕÃû ÐÔ±ð ÄêÁä ϵ¿Æ 4001 20 SX ÕÔÒð ÄÐ 4002 21 Ñ Å® Insert into student (sno,sname,ssex,sage,sdept) values (?4001 ?,?ÕÔÒð?,?ÄÐ?,20,? SX?) Insert into student (sno,sname,ssex,sage) values (?4002 ?,?Ñ?,?Å®?,21)

2 ÅúÁ¿²åÈëÊý¾Ý

1£© ½¨Á¢Ò»¸öбí sc_name £¬ÓÐÊôÐÔ sno , sname , ssex , cno , grade ¡£ CREATE TABLE sc_name ( Sno char(6) , Sname varchar(20), Ssex char(2) , Cno char(4) , Grade int )

2£© °Ñ SX ϵѧÉúµÄsno,sname,ssex, cno , grade ²åÈëµ½±í sc_name ÖС£ Insert into sc_name(Sno,Sname,Ssex,Cno,Grade) select student.Sno,Sname,Ssex,Cno,Grade from student,SC where student.Sno = SC.Sno and Sdept = 'SX' 3£© ²ì¿´ sc_name ±íµÄÊý¾Ý select * from sc_name

32

¶þ Update

1 ÐÞ¸Ä3001 ѧÉúµÄϵ¿ÆÎª: JSJ

Update student set Sdept = 'JSJ' where Sno = '3001'; 2 °Ñ³ÂСÃ÷µÄÄêÁä¼Ó1Ë꣬ÐÔ±ð¸ÄΪŮ¡£

Update student set sage=sage+1 , ssex=?Å®? where sname=?³ÂСÃ÷? 3 ÐÞ¸ÄÑµÄ1081¿Î³ÌµÄ³É¼¨Îª 93 ·Ö

update SC set Grade = 93 where Cno = '1081' and Sno in( select Sno from student where Sname = 'Ñ' )

4 °Ñ¡°Êý¾Ý¿âÔ­Àí¡±¿ÎµÄ³É¼¨¼õÈ¥1·Ö

update SC set Grade = Grade-1 where Cno in(

select Cno from course where Cname = 'Êý¾Ý¿âÔ­Àí' )

Èý Delete

1 ɾ³ýËùÓÐ JSJ ϵµÄÄÐÉú delete from student where sdept=?JSJ? 2 ɾ³ý¡°Êý¾Ý¿âÔ­Àí¡±µÄ¿ÎµÄÑ¡¿Î¼Í¼

delete from SC where Cno in (select Cno from course where Cname = 'Êý¾Ý¿âÔ­Àí')

33

ʵÑéÆß Sql ²éѯÓï¾ä

Ò» µ¥±í

1²éѯÄêÁäÔÚ19ÖÁ21ËêÖ®¼äµÄÅ®ÉúµÄѧºÅ,ÐÕÃû,ÄêÁä,°´ÄêÁä´Ó´óµ½Ð¡ÅÅÁС£ select Sno,Sname,Sage from student

where Sage between 19 and 21 and Ssex = 'Å®' order by Sage desc; 2²éѯÐÕÃûÖеÚ2¸ö×ÖΪ¡°Ã÷¡±×ÖµÄѧÉúѧºÅ¡¢ÐÔ±ð¡£

select COUNT(*) from student where Sname like '_Ã÷%'; 3²éѯ 1081¿Î³ÌûÓгɼ¨µÄѧÉúѧºÅ¡¢¿Î³ÌºÅ

select Sno,Cno from SC where Grade is null and Cno = '1081' 4²éѯJSJ ¡¢SX¡¢WL ϵµÄѧÉúѧºÅ,ÐÕÃû£¬½á¹û°´Ïµ¼°Ñ§ºÅÅÅÁÐ

select Sno,Sname from student where Sdept in ('JSJ','SX','WL') order by Sdept,Sno

5°´10·ÖÖÆ²éѯѧÉúµÄsno,cno,10·ÖÖÆ³É¼¨

£¨1-10·Ö Ϊ1 £¬11-20·ÖΪ2 £¬30-39·ÖΪ3£¬¡£¡£¡£90-100Ϊ10£© select Sno , Cno , Grade/10.0+1 as level from SC

6²éѯ student ±íÖеÄѧÉú¹²·Ö²¼ÔÚÄǼ¸¸öϵÖС££¨distinct£© select distinct Sdept from student

7²éѯ3001ºÅѧÉú1081£¬1082¿Î³ÌµÄ³É¼¨¡£

Select Grade from SC where Sno='3001' and (Cno='1081' or Cno='1082')

¶þ ͳ¼Æ

1²éѯÐÕÃûÖÐÓС°Ã÷¡±×ÖµÄѧÉúÈËÊý¡£

select COUNT(*) from student where Sname like '%Ã÷%'; 2¼ÆËã¡®JSJ¡¯ÏµµÄƽ¾ùÄêÁä¼°×î´óÄêÁä¡£

Select avg(Sage) , max(Sage) from student Where Sdept='JSJ'

34

3¼ÆËãÿһÃſεÄ×Ü·Ö¡¢Æ½¾ù·Ö£¬×î¸ß·Ö¡¢×îµÍ·Ö£¬°´Æ½¾ù·ÖÓɸߵ½µÍÅÅÁÐ select Cno,sum(Grade),avg(Grade),max(Grade),min(Grade) from SC group by Cno

order by avg(Grade) desc

4 ¼ÆËã 1081,1082 ¿Î³ÌµÄƽ¾ù·Ö¡£

Select Cno , avg(Grade) from SC where Cno in ('1081','1082') Group by cno

35

5 ²éѯƽ¾ù·Ö´óÓÚ80·ÖµÄѧÉúѧºÅ¼°Æ½¾ù·Ö select SC.Sno , avg(Grade) from SC group by SC.Sno

having avg(Grade)>80

6 ͳ¼ÆÑ¡Ð޿γ̳¬¹ý 2 ÃŵÄѧÉúѧºÅ

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

7 ͳ¼ÆÓÐ10λ³É¼¨´óÓÚ85·ÖÒÔÉϵĿγ̺š£ Select Cno from SC where Grade>80

36

group by Cno having count(*) =2

8 ͳ¼ÆÆ½¾ù·Ö²»¼°¸ñµÄѧÉúѧºÅ select Sno from SC

group by Sno having avg(Grade)<60

9 ͳ¼ÆÓдóÓÚÁ½Ãſβ»¼°¸ñµÄѧÉúѧºÅ select Sno from SC where Grade<60 group by Sno having COUNT(*)>2

Èý Á¬½Ó

1²éѯ JSJ ϵµÄѧÉúÑ¡Ð޵Ŀγ̺Å

select Cno from student,SC where student.Sno = SC.Sno and Sdept = 'JSJ'

37

2²éѯѡÐÞ1081 ¿Î³ÌµÄѧÉúµÄѧÉúÐÕÃû (²»ÓÃǶÌ×¼°Ç¶Ì×2ÖÖ·½·¨£©

a: select Sname from Student,SC where student.Sno = SC.Sno and Cno = '1081' b: select Sname from student where Sno in (select Sno from SC where Cno = '1081')

3²éѯÊý¾Ý¿âÔ­Àí²»¼°¸ñµÄѧÉúѧºÅ¼°³É¼¨ select sno,grade from sc ,course

where sc.cno=course.cno and cname=¡¯Êý¾Ý¿âÔ­Àí¡¯

4²éѯѡÐÞ¡°Êý¾Ý¿âÔ­Àí¡±¿ÎÇҳɼ¨ 80 ÒÔÉϵÄѧÉúÐÕÃû(²»ÓÃǶÌ×¼°Ç¶Ì×2ÖÖ·½·¨£© a: select Sname from student,SC,course

38

where student.Sno = SC.Sno and SC.Cno = course.Cno and Grade>80 and Cname = 'Êý¾Ý¿âÔ­Àí'

b:select Sname from student where Sno in(select Sno from SC where Grade>80 and Cno in(select Cno from course where Cname = 'Êý¾Ý¿âÔ­Àí') )

5²éѯƽ¾ù·Ö²»¼°¸ñµÄѧÉúµÄѧºÅ£¬ÐÕÃû,ƽ¾ù·Ö¡£

select student.Sno,MAX(Sname),AVG(Grade) as avggrade from SC,student where student.Sno=SC.Sno group by student.Sno having AVG(Grade)<80

39

6²éѯŮѧÉúƽ¾ù·Ö¸ßÓÚ75·ÖµÄѧÉúÐÕÃû¡£

A: select Sname from student where Ssex ='?' and Sno in( select Sno from SC group by Sno having AVG(Grade)>75 )

B: Select max(sname ) from sc,student where student.sno=sc.sno and Ssex=¡¯Å®¡¯ Group by student.sno having avg(grade)>75

7²éѯÄÐѧÉúѧºÅ¡¢ÐÕÃû¡¢¿Î³ÌºÅ¡¢³É¼¨¡£(Ò»ÃſγÌҲûÓÐÑ¡ÐÞµÄÄÐѧÉúÒ²ÒªÁгö£¬²»ÄÜÒÅ©)

select student.Sno,Sname,Cno,Grade from student left join SC ON student.Sno = SC.Sno and Ssex = 'ÄÐ'

40

ËÄ Ç¶Ìס¢Ïà¹Ø¼°ÆäËû

1 ²éѯƽ¾ù·Ö²»¼°¸ñµÄѧÉúÈËÊý

select COUNT(*) from student where Sno in(

select Sno from SC group by Sno having AVG(Grade)<60 )

2 ²éѯûÓÐÑ¡ÐÞ1002 ¿Î³ÌµÄѧÉúµÄѧÉúÐÕÃû

41

select Sname from student where Sno not in( select Sno from SC where Cno = '3001' )

3 ²éѯƽ¾ù·Ö×î¸ßµÄѧÉúѧºÅ¼°Æ½¾ù·Ö £¨2ÖÖ·½·¨ TOP , any , all£©

a: select top 1 Sno,avg(Grade) from SC group by Sno order by avg(Grade) desc B: select Sno,avg(Grade) from SC group by Sno

having avg(Grade) = (select top 1 avg(Grade) from SC group by Sno order by avg(Grade) desc ) c: select Sno,avg(Grade) from SC group by Sno

having avg(Grade) >=all ( select avg(Grade) from SC group by Sno )

42

*4 ²éѯûÓÐÑ¡ÐÞ1001£¬1002¿Î³ÌµÄѧÉúÐÕÃû¡£

Select Sname from student where not exists (

Select * from course where Cno in ('3001','3002') and

Not exists ( select * from SC where Sno=student.Sno and Cno=course.Cno ) )

5 ²éѯ1002¿Î³ÌµÚÒ»ÃûµÄѧÉúѧºÅ£¨2ÖÖ·½·¨£©

select top 3 Sno from SC group by Sno order by avg(Grade) desc

6 ²éѯƽ¾ù·ÖǰÈýÃûµÄѧÉúѧºÅ

select top 3 sno from sc group by sno order by avg(grade) desc

43

7 ²éѯ JSJ ϵµÄѧÉúÓëÄêÁä²»´óÓÚ19ËêµÄѧÉúµÄ²î¼¯

a: select * from student where Sdept='JSJ' and Sage>19 b: select * from student where sdept='JSJ' except select * from student where sage<19

8 ²éѯ1001ºÅ¿Î³Ì´óÓÚ90·ÖµÄѧÉúѧºÅ¡¢ÐÕÃû¼°Æ½¾ù·Ö´óÓÚ85·ÖµÄѧÉúѧºÅ¡¢ÐÕÃû select student.Sno,Sname from student,SC where Cno='1081' and Grade>90 union select Sno,Sname from student where Sno in( select Sno from SC group by Sno having AVG(Grade)>85 )

44

9 ²éѯÿÃſγ̳ɼ¨¶¼¸ßÓÚ¸ÃÃÅ¿Î³ÌÆ½¾ù·ÖµÄѧÉúѧºÅ select Sno from student where Sno not in ( select Sno from SC X where Grade < (

select avg(Grade) from SC where Cno=X.Cno ) )

select sno from student where sno not in (

select sno from sc X where grade < (

select avg(grade) from sc where cno=X.cno ) )

10 ²éѯ´óÓÚ±¾Ïµ¿ÆÆ½¾ùÄêÁäµÄѧÉúÐÕÃû select Sname from student X where Sage > ( select avg(Sage) from student y where Sdept=x.Sdept )

45

46

ʵÑé°Ë ÊÓͼ

½¨Á¢Ñ§ÉúѧºÅ¡¢ÐÕÃû¡¢ÐԱ𡢿γ̺š¢³É¼¨µÄÊÓͼv_sc£¬²¢ÇҲ鿴v_scÖеÄÊý¾Ý¡£

create view v_sc(sno,sname,ssex,cno,grade) as(select student.sno,sname,ssex,cno,grade from student,sc

where student.sno=sc.sno );

´´½¨ÊÓͼ³É¹¦¡£

select * from v_sc;

47

²éѯ³É¹¦,¹²ÓÐ14Ìõ¼Ç¼.

½¨Á¢Ñ§ÉúѧºÅ¡¢ÐÕÃû¡¢³öÉúÄêÔµÄÊÓͼv_age£¬²¢ÇҲ鿴v_ageÖеÄÊý¾Ý¡£

create view v_age(sno,sname,sbirth)

as select sno,sname,2008-sage from student;

´´½¨³É¹¦¡£

select * from v_age;

48

²éѯ³É¹¦,¹²ÓÐ12Ìõ¼Ç¼.

½¨Á¢¡¯JSJ¡¯ÏµµÄѧÉúѧºÅ¡¢ÐÕÃû¡¢ÐÔ±ð¡¢ÄêÁäµÄÊÓͼV_JSJ

create view V_JSJ(sno,sname,ssex,sage) as select sno,sname,ssex,sage from student where sdept='JSJ';

½¨Á¢ÊÓͼ³É¹¦¡£

½¨Á¢Ã¿ÃÅ¿Î³ÌµÄÆ½¾ù·ÖµÄÊÓͼv_average

create view v_average(cno,grade1)

49

as select cno,avg(grade) from sc group by cno;

½¨Á¢ÊÓͼ³É¹¦¡£

½«ÊÓͼV_JSJÖÐÕÔ˳µÄÄêÁä¸ÄΪ21Ëê.

update V_JSJ set sage=sage+1

where sname='ÕÔ˳';

²éѯ³É¹¦.

50