¡¶Êý¾Ý¿âÔÀí¡·
ʵ Ñé ±¨ ¸æ
ѧºÅ: 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