SQL数据库编程学习应用语句大全

时间:2019-05-14 03:10:14下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《SQL数据库编程学习应用语句大全》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《SQL数据库编程学习应用语句大全》。

第一篇:SQL数据库编程学习应用语句大全

SQL数据库编程学习应用语句大全

1as 的用处

as可以对表和列取别名

在开发过程中经常遇到开始给某一个的字段去field1的名称,但后来有感觉field1字段指定不确切,于是又把此字段改成了field2,由于开始认为field1是常量,于是到处使用字符串field1,而且程序中又含有大量对field1的处理,此时就可以使用as

例如原来的 select field1 from tableA,改为selectfield2 asfield1 from tableA 代码基本就可以不动了。

2自增长的字段的插入

开发中经常遇到某个字段类型为IDENTITY,也就是自增长类型,但由于特殊需要,又要插入数据

需要临时去掉,可以使用如下语句set IDENTITY_INSERTtablename on,在处理完成后在使用如下语句恢复 set IDENTITY_INSERTtablenameoff

3分组取每组的前N个数据

开发中还会遇到需要对某一组数据先分组,然后取每组的前n条记录的情况

不妨试试如下代码

[sql] view plaincopy

/*

按CurrentNodeLevel列分组,每组按NodeID排序,取出每个组中的前3个元素*/

declare @temp table(NodeIDint, CurrentNodeLevelint ,rowNumberint)--定义临时表insert into @temp

selectNodeID,CurrentNodeLevel,ROW_NUMBER()

OVER(partitionby CurrentNodeLevel

order by NodeID)as rowNumber

from SchoolTerminalStruct---给临时表中插入数据

select * from @temp where rowNumber<=3--从临时表中取数据

4生成随机数

主意此方法只能写成存储过程,不能写成函数

[sql] view plaincopy

-----返回Max,Min之间的随机数不能写成函数

createproc [dbo].[getRAND]

(@Max int,--最大值

@Min int--,--最小值)

AS

BEGIN

DECLARE @result int

SELECT @result=RAND()*(@Max-@Min)+@Min

select@result

END

5把满足一定条件的数据用逗号分隔

这可能也是一个很常用的语句了,经常出现在一对多的关系中对外展示,要求把子表中的数据取出来用逗号或者其他符号分隔开

[sql] view plaincopy

/*

把满足 t2.NodeID=t1.NodeID的tableA 的字段NodeName 以逗号分隔开合并为一个字段输出

*/

select *,stuff((select ',' + t1.NodeName from tableA t1,tableB t2

wheret2.NodeID=t1.NodeID

for xml path('')), 1 , 1 , '')as text

fromtableA

6在数据库中处理异常

通过个参数附加output标志来输出参数,通过TRY,CATCH捕捉异常

[sql] view plaincopy

CREATE PROCEDURE [dbo].[sp_UpdateFunctionTree]

@nodenameint,@Result int output---2,操作失败;0操作成功

AS

BEGIN

begin

BEGIN TRY

UPDATE FunctionTree SET NodeName=@nodename

set @Result=0--操作成功

END TRY

BEGIN CATCH

set @Result=-2--操作失败

END CATCH

end

END

7查询中的条件判断

经常遇到在某些条件下应该查询这个字段,在另外一些条件下需要其他字段的情况,可以通过unoin来完成,但也可以通过CASE WHEN 完成[sql] view plaincopy

/*

在State=0 时返回field1 ,在State=1时返回 field2 ,其他时返回field3

*/

SELECT(CASE WHENState=0 THEN field1 WHENState=1 THEN field2

ELSE field3 END)as State

FROM tablename

8单引号的处理

在包含单引号时应该使用两个单引号转义

[sql] view plaincopy

dbo.sp_executesql @statement = N' select indexID,Sex=(case when Sex=0then ''男'' else ''女'' end)

fromtablename '

9使用游标

[sql] view plaincopy

declare @temp table(TaskIDint ,NodeIdint)--声明临时表

insert into @temp select A.TaskID ,A.NodeIdfrom tableAA,tableB B

whereA.TaskID=B.TaskID--//--给声明的临时表中插入记录

DECLARE tnames_cursor CURSORLOCAL FORWARD_ONLY READ_ONLY--声明游标

FOR select TaskID,NodeId from @temp;--游标需要用到的列

open tnames_cursor--打开游标

DECLARE @TaskIDint,@NodeIdint;--声明变量

FETCH NEXT FROM tnames_cursor INTO @TaskID,@NodeId--移动游标给变量赋值,应该与游标需要用到的列一一对应,顺序类型应该一致

WHILE(@@FETCH_STATUS = 0)--循环

BEGIN

BEGIN

exec TaskType @TaskID,@NodeId--调用存储过程

END

FETCH NEXT FROM tnames_cursor INTO @TaskID,@NodeId ,@TaskRunCYCType--移动游标给变量赋值 应该与游标需要用到的列一一对应,顺序类型应该一致

END

CLOSE tnames_cursor--关闭游标

DEALLOCATE tnames_cursor--释放游标

10合并更新和插入

在开发中大部分情况下,插入和更新传递的参数基本上是一样,那为什么不合并呢

[sql] view plaincopy

createproc [dbo].[Save_TableName]

(@field1 varchar(50),@field2varchar(200),@ID int,@insertOrUpdate--小于0插入 大于0更新)

as

begin

if(@insertOrUpdate<0)

begin

INSERT INTOTableName(field1,field2,ID)

values(@field1,@field2,@ID);

end

else

begin

UPDATE TableNameSET field1= @field1, field2 = @field2

where ID =@ID;

end

end

11定义函数

在没有满足要求的情况时,可以定义函数,但是使用自己定义的函数时需要加上架构名称

[sql] view plaincopy

create FUNCTION [dbo].[CheckTime]

(@startTimedatetime,@endTimedatetime--,)

RETURNSint

AS

BEGIN

DECLARE @result int

SET@result=DATEDIFF(hour, @startTime, @endTime)--

if(@result=0)--小时相同 比较分钟

begin

SET@result=DATEDIFF(minute, @startTime, @endTime)

if(@result=0)--分钟相同比较秒

begin

SET@result=DATEDIFF(second, @startTime, @endTime)

end

end

RETURN @result

END

调用此函数

[sql] view plaincopy

dbo.CheckTime(@startTime1, @startTime2)--需要加上架构名称

12递归读取数据

在实际的应用中经常遇到树结构的表,但读取会比较麻烦,这里提够一个函数

[sql] view plaincopy

/*

函数 返回表,返回给定节点的所有子孙节点,而不仅仅是子节点

*/

Create Function [dbo].[GetChildren](@NodeIDInt)

Returns @Tree Table(NodeIDInt, NodeNameVarchar(50), ParentIDInt)

As

Begin

Insert @Tree Select NodeID, NodeName, ParentIDFromTreetable Where ParentID = @NodeID

While @@Rowcount> 0

Insert @Tree Select A.NodeID, A.NodeName, A.ParentID

From Treetable A

Inner Join @Tree B

On A.ParentID = B.NodeIDAndA.NodeID Not In(Select NodeID From @Tree)Return

End

13通过默认值实现存储过程重载

存储过程可以使用默认值,估计都知道,但以此就可以实现类似函数重载的效果

例如,如下的存储过程由于使用了默认值,就可以不传递参数,传递一个参数,两个,三个,[sql] view plaincopy

CREATE PROCEDURE dbo.my_proc

@firstint = NULL,--NULL default value

@secondint = 2,--Default value of 2

@thirdint = 3--Default value of 3

AS SELECT @first, @second, @third;

14在数据库中拼字符串,也可以用参数

在实际的开发中,某些情况下在数据库中拼字符串不可避免,但又担心有特殊字符,导致拼出来的SQL有问题,其实数据库中拼字符串也可以使用参数,这就要用到dbo.sp_executesql,这样就可以避免SQL注入和特殊字符导致的错误

[sql] view plaincopy

DECLARE @IntVariable INT;--定义变量

DECLARE @SQLString NVARCHAR(500);--存储拼出来的SQL

DECLARE @ParmDefinition NVARCHAR(500);---存储拼出来的SQL中的参数

/* Build the SQL string one time.*/

SET @SQLString =

N'SELECT * FROM AdventureWorks.Sales.Store WHERE SalesPersonID = @SalesID';/* Specify the parameter format one time.*/

SET @ParmDefinition = N'@SalesIDint';--赋值

/* Execute the string with the first parameter value.*/

SET @IntVariable = 275;--赋值

EXECUTE dbo.sp_executesql@SQLString, @ParmDefinition,@SalesID = @IntVariable;

/* Execute the same string with the second parameter value.*/

SET @IntVariable = 276;

EXECUTE dbo.sp_executesql@SQLString, @ParmDefinition,@SalesID = @IntVariable;

16触发器需要注意的问题

在使用触发器时有一个问题,或许很少有人注意到,一条更新语句一次更新了十条记录,会触发几次触发器?只有一次!很奇怪,但却是事实,所以这需要注意,一不小心就会把好

多数据漏了

第二篇:数据库SQL语句十题

作业十题

1.查询所有学生的基本信息,并按学号降序排列

SELECT * FROM STUDENT

ORDER BY sno DESC;

2.查询系别代码为“02”的女同学信息

SELECT * FROM STUDENT

WHERE ssex=’女’ and sdept=‘02’;

3.查询学生的总人数

SELECT COUNT(*)AS 学生总人数

FROM STUDENT;

4.所有选修课学生的姓名,课程名及成绩

SELECT sname,cname,grade

FROM STUDENT,COURSE,SC

WHERE STUDENT.sno=SC.sno and COURSE.cno=SC.cno;

5.不及格学生姓名(合并重复项)

SELECT distinct sname

FROM SC,STUDENT

WHERE grade<=60 and STUDENT.sno=SC.sno;

6.查询学号为“011110”的学生的哪些课程的成绩比他数据库的成绩要高 SELECT cno

FROM COURSE

WHERE sno=’011110’ and grade>(SELECT grade FROM COURSE,SC

WHERE cname=’数据库’ and sno=‘011110’ and

COURSE.cno=SC.cno);

7.查询选修课在3门以上(包括3门)的学生学号及选课门数 SELECT sno,COUNT(*)AS 选修门数

FROM SC

GROUP BY sno HAVING COUNT(*)>=3;

8.查询学号为“011110”的学生的平均成绩,并以平均成绩命名 SELECT AVG(grade)AS average grade

FROM SC

WHERE sno=’011110’;

9.查询计算机系或英语系的所有学生的个人信息

SELECT*FROM STUDENT

WHERE sdeptIN(SELECT sdept FROM DEPT

WHERE sdname=’计算机系’OR sdname=’英语系’);

10.查询与“罗宇波”同一个系的学生情况

SELECT * FROM STUDENT

WHERE sdept=(SELECT sdept FROM STUDENT

WHERE sname=’罗宇波’);

第三篇:sql语句学习

一、选择题

1、SQL语言是()语言。——(SQL特点)(易)

A)层次数据库 B)网络数据库 C)关系数据库D)非数据库

答案:C2、SQL语言具有两种使用方式,分别称为交互式SQL和()。

——(SQL语言使用方式)(易)

A)提示式SQLB)多用户SQLC)嵌入式SQLD)解释式SQL

答案:C

3-4-5()包括数据库模式定义和数据库存储结构与存取方法定义。()实现对DB的操作,包括查询、插入、删除、修改数据库中的数据。()用于数据保护,包括数据的安全性,完整性,并发控制和恢复等。——(数据库语言DDLDMLDCL)(中)

A)数据控制子语言 B)数据定义子语言 C)数据操纵子语言 D)数据库语言

答案:B C A

6-7-8-9-

10、下列SQL语句中,实现数据检索的语句是(),修改表结构的是(),修改属性值的是(),删除表结构的是(),删除表记录的是()。

——(DROP TABLE, ALTER TABLE,UPDATE, DELETE,SELECT 语句)(易)

A)SELECTB)DROPC)UPDATED)ALTERE)DELETE

答案:A D C B E

二、用关系代数表达式及SQL语句描述关系查询

1、设有如下关系表R、S和T:——(易)R(BH,XM,XB,DWH)

S(DWH,DWM)

T(BH,XM,XB,DWH)

写出实现下列关系代数的SQL语句:

1)DWH'100'(R)σDWH=’100’(R)

2)XM,XB(R)∏xM,XB(R)

3)XM,DWH(

4)RS R∞S

5)XM,XB,DWH(

解:

1)SELECT * FROM R WHERE DWH=’100’;

2)SELECT XM,XB FROM R;

3)SELECT XM,DWH FROM R WHERE XB=’女’;

4)SELECT R.*,S.DWM FROM R, S WHERE R.DWH=S.DWH;

5)SELECT XM,XB,DWH FROM R,S WHERE R.DWH=S.DWH AND XB=’男’;XB'男'XB'女'(R))∏XM,DWH(σXB=’女’(R))(RS))∏XM,XB,DWH(σXB=’男’(R∞S))

2、设有如下三个关系:——(易-易)

A(A#,ANAME,WQTY,CITY): A#:商店代号;ANAME:商店名;WQTY:店员人数

B(B#,BNAME,PRICE):B#:商品号;BNAME:商品名称;

AB(A#,B#,QTY):QTY:商品数量

试用关系代数和SQL语言写出下列查询。

1)找出店员人数不超过100人或者在长沙市的所有商店的代号和商店名;

2)找出供应书包的商店名;

解:

1)A#,ANAME(WQTY100  CITY'长沙'(A))∏A#,ANAME(σWQTY<=100ⅤCITY=’长沙’(A))

SELECT A#,ANAME FROM A WHERE WQTY<=100 OR CITY=’长沙’;

2)ANAME((BNAME'书包'(B))ABA)∏ANAME((σBNAME=’书包’(B))∞AB∞(A))

SELECT ANAME FROM A,B,AB

WHERE BNAME=’书包’ AND B.B#=AB.B# AND AB.A#=A.A#;

3.设有如下关系模式:

student(NO, NAME , SEX ,BIRTHDAY, CLASS)

teacher(NO,NAME,SEX,BIRTHDAY,PROF,DEPART)PROF为职称,DEPART为系别

course(CNO, CNAME, TNO)

score(NO, CNO, DEGREE)DEGREE 为成绩

写出实现以下各题功能的SQL语句:

(1)查询至少有2名男生的班号;——(难)

(2)查询不姓“王”的同学记录;——(易)

(3)查询每个学生的姓名和年龄;——(难)

(4)查询学生中最大和最小的birthday日期值;——(中)

(5)查询学生表的全部记录并按班号和年龄从大到小的顺序;——(中)

(6)查询男教师及其所上的课程;——(中)

(7)查询最高分同学的学号,课程号和成绩;——(中)

(8)查询和“李军”同性别并同班的所有同学的姓名;——(中)

(9)查询选修“数据库系统概论”课程的男同学的成绩表;——(中)

(10)查询所有未讲课的教师的姓名和所在系别;——(难)

(11)查询“计算机系”教师所教课程的成绩表;——(难)

(12)查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录;——(难)

(13)查询最低分大于70,最高分小于90的学生的学号;——(中)

(14)查询成绩在60到80之间的所有记录;——(中)

(15)查询成绩比该课程平均成绩低的同学的成绩表;——(相关子查询)(难)

(16)查询所有女教师和女同学的姓名、性别和生日;——(中)

(17)查询“计算机系”和“无线电系”不同职称的教师的姓名和职称;——(中)

解:(1)SELECT CLASS FROM student WHERE SEX=‘男’

GROUP BY CLASS HAVING COUNT(*)>=2;

(2)SELECT * FROM student WHERE NAME NOT LIKE ‘王%’;

(3)SELECT NAME,year(date())-year(birthday)as age FROM student;

(4)SELECT MAX(BIRTHDAY), MIN(BIRTHDAY)FROM student;

(5)SELECT * FROM student ORDER BY CLASS,BIRTHDAY DESC;

(6)SELECT x.name, y.cname FROM teacher x, course y WHERE x.no=y.tno and x.sex=’男’;

(7)SELECT * FROM score WHERE degree=(SELECT max(degree)FROM score);

(8)SELECT name FROM student WHERE sex=(SELECT sex FROM student WHEREname=’

李军’)and class=(SELECT class FROM student WHERE name=’李军’);

(9)SELECT * FROM score WHERE no IN(SELECT no FROM student WHERE sex=‘男’)and

cno=(SELECT cno FROM course WHERE cname=‘数据库系统概论’);

(10)SELECT name, depart FROM teacher t WHERE NOT EXIST(SELECT * FROM course c

WHERE c.tno=t.no);

(11)SELECT * FROM score s, teacher t, course c WHERE t.depart=’计算机系’ and t.no=c.tno

and c.cno=score.cno;

(12)SELECT * FROM student s, score sc WHERE s.no=sc.no and cno=’3-105’ and

degree>(SELECT degree FROMsc WHERE no=’109’ and cno=’3-105’);

(13)SELECT no FROM score GROUP BY no HAVING min(degree)>70 and max(degree)<90;

(14)SELECT * FROM score WHERE degree BETWEEN 60 AND 80;

(15)SELECT * FROM score a WHERE degree <(SELECT avg(degree)FROM score b WHERE b.cno=a.cno group by b.cno);

(16)SELECT name, sex, birthday FROM teacher WHERE sex=‘女’UNION SELECT name, sex,birthday FROM student WHERE sex=‘女’;

(17)SELECT name, prof FROM teacher WHERE depart=’计算机系’ OR depart=’无线电系’

order by prof;

4、设有图书登记表TS,具有属性:BNO(图书编号),BC(图书类别),BNA(书名),AU(著者),PUB(出版社)。按下列要求用SQL语言进行设计。——(易)

1)按图书馆编号BNO建立TS表的索引ITS;

2)查询按出版社统计其出版图书总数。

3)删除索引。

解:1)CREATE INDEX ITSON TS(BNO);

2)SELECT PUB,COUNT(BNO)FROM TS GROUP BY PUB;

3)DROP INDEXITS;

5、已知三个关系R、S和T——(中)

R(A,B,C)S(A,D,E)T(D,F)

试用SQL语句实现如下操作:

1)R、S和T三个关系按关联属性建立一个视图R-S-T;

2)对视图R-S-T按属性A分组后,求属性C和E的平均值。

解:1)CREATE VIEW R-S-T(A,B,C,D,E,F)AS

SELECT R.A , B, C ,S.D, E, F FROM R, S, T

WHERE R.A=S.A AND S.D=T.D;

2)SELECT AVG(C), AVG(E)FROM R-S-T GOUPY BY A;

6、设有学生表S(SNO, SN)(SNO为学生号,SN为姓名)和学生选修课程表SC(SNO,CNO,CN,G)

(CNO为课程号,CN为课程名,G为成绩),试用SQL语言完成以下各题:——(易)

a)建立一个视图V-SSC(SNO, SN, CNO, CN, G);

b)从视图V-SSC上查询平均成绩在90分以上的SN, CN 和G。

解:

1)CREATE VIEW V-SSC(SNO , SN, CNO, CN, G)AS

SELECT S.SNO, SN, CNO, CN, GFROM S, SC WHERE S.SNO=SC.SNO

2)SELECT SN, CN, G FROM V-SSC GROUP BY SNO HAVING AVG(G)>907、设有关系模式: 其中SB表示供应商,SN为供应商号,SNAME为供应商名字,CITY

为供应商所在城市; PB(PN, PNAME, COLOR, WEIGHT)其中PB表示零件,PN为零件代号,PANME为零件名

字,COLOR为零件颜色,WEIGHT为零件重量; JB(JN, JNAME, CITY)其中JB表示工程,JN为工程编号,JNAME为工程名字,CITY为工

程所在城市;

SPJB()其中SPJB表示供应关系,QTY表示提供的零件数量。

写出实现以下各题功能的SQL语句:

(1)取出所有工程的全部细节;——(易)

(2)取出所在城市为上海的所有工程的全部细节;——(易)

(3)取出重量最轻的零件代号;——(难)

(4)取出为工程J1提供零件的供应商代号;——(易)

(5)取出为工程J1提供零件P1的供应商代号;——(易)

(6)取出由供应商S1提供零件的工程名称;——(易)

(7)取出供应商S1提供的零件的颜色;——(易)

(8)取出为工程J1或J2提供零件的供应商代号;——(中)

(9)取出为工程J1提供红色零件的供应商代号;——(易)

(10)取出为所在城市为上海的工程提供零件的供应商代号;——(易)

(11)取出为所在城市为上海或北京的工程提供红色零件的供应商代号;——(中)

(12)取出供应商与工程所在城市相同的供应商提供的零件代号;——(中)

(13)取出上海的供应商提供给上海的任一工程的零件的代号;——(难)

(14)取出至少有一个和工程不在同一城市的供应商提供零件的工程代号;——(难)

(15)取出上海供应商不提供任何零件的工程的代号;——(难)

(16)取出这样一些供应商代号,它们能够提供至少一种由红色零件的供应商提供的零件;

——(难)

(17)取出由供应商S1提供零件的工程的代号;——(易)

(18)取出所有这样的一些

市的工程提供零件;——(难)

(19)取出所有这样的三元组,使得第一个城市的供应商为第二个城

市的工程提供指定的零件;——(难)

(20)重复(19)题,但不检索两个CITY值相同的三元组。——(难)

解:

(1)SELECT * FROM JB;

(2)SELECT * FROM JB WHERE CITY=‘上海’;

(3)SELECT PN FROM PB

WHERE WEIGHT=(SELECT MIN(WEIGHT)FROM PB);

(4)SELECT SN FORM SPJB WHERE JN=‘J1’;

(5)SELECT SN FORM SPJB WHERE JN=‘J1’AND PN=‘P1’;

(6)SELECT JNAME FROM JB,SPJB WHERE SN=‘S1’AND SPJB.JN=JB.JN;

(7)SELECT DISTINCT COLOR FROM PB,SPJB WHERE SN=‘S1’AND SPJB.JN=JB.JN'

(8)SELECT SN FROM SPJB WHERE JN IN {J1, J2};

或者 SELECT SN FROM SPJB WHERE JN=’J1’ OR JN=’J2’;

(9)SELECT SN FROM SPJB,PB

WHERE COLOR=‘红色’AND PB.PN=SPJB.PN AND JN=’J1’;

(10)SELECT DISTINCT SN FROM SPJB,JB WHERE CITY=‘上海’AND JB.JN=SPJB.JN;

(11)SELECT SN FROM PB, JB, SPJB WHERE COLOR=‘红色’AND CITY IN {‘上海’,‘北京’} AND PB.PN=SPJB.PN AND JB.JN=SPJB.JN;

(12)SELECT PN FROM SB, JB , SPJB WEHRE SB.CITY=JB.CITY AND SB.SN=SPJB.SN

AND JB.JN=SPJB.JN;

(13)SELECT PN FROM SB, SPJB, JB WEHRE SB.CITY=‘上海’AND JB.CITY=‘上海’

AND SB.SN=SPJB.SN AND JB.JN=SPJB.JN;

(14)SELECT JN FROM JB WHERE EXISTS(SELECT * FROM SB WHERE

EXISTS(SELECT * FROM SPJB WHERE SB.CITY<>JB.CITY AND SPJB.SN= SB.SN AND SPJB.JN= JB.JN));

(15)SELECT DISTINCT JN FROM SPJB WHERE JN NOT IN(SELECT DISTINCT

SPJB.JN FROM SB,SPJB WHERE SB.SN=SPJB.SN AND SB.CITY=‘上海’);

(16)SELECT DISTINCT SPJB.SN FROM SB,SPJB WHERE SPJB.PN IN(SELECT

SPJB.PN FROM SPJB,PB WHEREPB.PN=SPJB.PN AND PB.COLOR=‘红色’;

(17)SELECTJN FROM SPJB WHERE SN=’S1’;

(18)SELECT DINSINCT SB.CITY , JB.CITY FROM SB, JB, SPJB WHERE

SB.SN=SPJB.SN AND JB.JN=SPJB.SN;

(19)SELECT SB.CITY, SPJB.PN, JB.CITY FROM SB,JB,SPJB WHERE SB.SN=SPJB.SN

AND JB.JN=SPJB.JN;

(20)SELECT DISTINCT SB.CITY, SPJB.PN, JB.CITY FROM SB,JB,SPJB WHERE

SB.SN=SPJB.SN AND JB.JN=SPJB.JN AND SB.CITY<>JB.CITY;

8、设有如下关系模式:——(中)

图书关系B(图书编号B#,图书名T,作者A,出版社P);

读者关系R(借书证号C#,读者名N,读者地址D);

借阅关系L(C#,B#,借书日期E,还书标志BZ);

BZ=‘1’表示已还; BZ=‘0’ 表示未还;

写出实现以下各题功能的SQL语句:

(1)查询“工业出版社”出版的图书名

(2)将书号为B5的图书的出版社改为“工业出版社”

(3)查询99年12月31日以前借书未还的读者名与书名

(4)查所借的书包含借书证号为C1的读者借出未还的所有书的读者名与借书证号。

(5)删去“工业出版社”出版的所有图书及相关的借阅信息。

解:

(1)SelectTfromBWhereP = ’工业出版社’

(2)UpdateBSetP=’工业出版社’ WhereB# = ’B5’

(3)SelectN , TFrom B, R , L

WhereE <’99/12/31’ AND BZ=’0’ AND

L.C#=R.C# AND L.B#=B.B#

(4)select N,C# from R where not exists

(select * from LL1 where L1.C#=’c1’ and BZ=‘0’ andnot exists

(select * from L L2 where L2.c#=R.c#

and L2.B#=L1.B#))

(6)Delete from LWhere B#IN(Select B#From B

Where P=’工业出版社’);

Delete from B Where P=’工业出版社’;

第四篇:VB数据库SQL语句学习

1.Select * from student查询所有原始记录

2.Select StudentID, StudentName from student 只查询学号和姓名

3.Select StudentID as 学号, StudentName as 姓名, Sex as 性别,Class as 班级,NormalScore as平时成绩,ExperimentScore as 实验成绩, ExaminationScore as 考试成绩 from student

4.Select * from student where sex=’男’只需要查看男生的成绩

5.Select * from student where NormalScore>80只需要查看平时成绩大于80分的记录

6.Select * from student where studentname like ‘陈%’查询姓陈的同学的记录

7.Select * from student order by examinationScore根据考试成绩排序

8.Select * from student order by examinationScore排序---降序

9.Select Sum(examinationScore)as 总成绩 from student求总成绩

10.Select Avg(examinationScore)as平均成绩 from student求平均成绩

11.Select count(*)as 总记录数 from student求总记录数

12.Select Max(ExaminationScore)as 最高分 from student求最高分

13.Select Min(ExaminationScore)as 最高低分 from student求最低分

14.Select Class as 班级, Avg(ExaminationScore)as平均成绩 from student group by class各班级成绩的分类汇总

Public Class frmMain

Private ObjCnn As New OleDbConnection

Private ObjCmd As OleDbCommand

Private StrDir As String = “D:MIS1025StudentMgr.accdb”

Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As

System.EventArgs)Handles MyBase.Load

ObjCnn.ConnectionString = “Provider=Microsoft.ACE.OLEDB.12.0;Data Source=” & StrDir

ObjCnn.Open()

ObjCmd = New OleDbCommand

ObjCmd.Connection = ObjCnn

End Sub

Private Sub FindRecord(ByVal StrSQL As String)

ObjCmd.CommandText = StrSQL

Dim rd As OleDbDataReader = ObjCmd.ExecuteReader

Dim tbl As New DataTable

tbl.Load(rd)

DataGridView1.DataSource = tbl

End Sub

Private Sub CmdFind_Click(ByVal sender As System.Object,System.EventArgs)Handles CmdFind.Click

FindRecord(txtSQL.Text)

End Sub ByVal e As

第五篇:SQL Server数据库及应用教学大纲

《SQL Server数据库及应用》课程教学

大纲

一、课程的性质与任务

本课程是计算机相关专业一门重要的专业技术课。通过本课程的学习,应使学生从理论和实践上掌握数据库开发技巧,选择前端开发环境与后端SQL Server数据库系统的集成,使学生在数据库开发应用方面能提出正确的解决方案。

二、课程教学目标

(一)知识目标

1.SQL Server 2012涉及的概念和范围较多较广,因此要强调基本概念和基本操作,从更多的实践环节中理解SQL Server 2012的体系和特点。2.课程应注重Transact-SQL的教学和实践,在掌握SQL Server图形管理工具的同时,加强isql/osql公用程序的使用。3.本课程综合性较高,教学中可酌情安排一定时数的课程设计(结合前端开发工具),使学生对于SQL Server及其它数据库有更全面的理解。

(二)能力目标

培养学生具备数据库应用程序开发能力,能够根据实际需要自行开发以SQL Server 2012为后台的Windows数据库应用程序,具有分析和调试程序的能力。

(三)德育目标

将德育教育寓于专业知识的教学中,教育学生热爱生活、热爱学习、热爱自己的专业,刻苦学习,学风严谨,使学生养成理论联系实际的良好习惯。

三、课程内容及教学要求

(一)SQL Server概述

1.教学内容:(1)数据库的基本概念(2)SQL语言的特点

(3)Microsoft SQL Server的特点 2.教学要求:

掌握Microsoft SQL Server的结构、功能和性能特点;理解SQL语言的特点;了解数据库的基本概念、SQL Serve的演变过程。

(二)安装SQL Server 2012系统

1.教学内容:

(1)安装预准备工作

(2)Microsoft SQL Server 2012的安装过程(3)验证系统是否按装成功 2.教学要求:

掌握Microsoft SQL Server安装的软、硬件要求及安装过程;了解 SQL Serve的版本类型。

(三)注册和配置服务器

1.教学内容:(1)注册服务器(2)配置服务器 2.教学要求:

掌握注册和配置服务器的各种方法和技术;了解注册和配置服务器的作用。

(四)SQL Server的安全管理

1.教学内容:

(1)认证模式和认证进程(2)管理登录账号

(3)管理数据库用户账号(4)管理角色(5)管理许可 2.教学要求:

掌握设置认证模式技术、管理惧色、许可技术;理解数据库安全模式、认证模式及账号管理;了解许可类型。

(五)管理数据库

1.教学内容

(1)数据库对象(2)创建、删除、修改数据库(3)设置数据库选项 2.教学要求:

掌握数据库的基本操作和属性技术;了解数据库的基本概念。

(六)管理表

1.教学内容:

(1)表的基本概念和特点(2)数据类型(3)管理表 2.教学要求:

掌握表的基本概念和系统数据类型,表的基本操作;了解自定义数据类型。

(七)操纵表中的数据

1.教学内容:

(1)插入、修改和删除数据(2)检索表中的数据(3)高级检索技术 2.教学要求:

掌握表数据的基本操作及各种检索技术。

(八)索引

1.教学内容:

(1)索引的类型和访问数据的方式(2)创建索引技术(3)维护索引 2.教学要求:

掌握创建、维护索引技术;理解索引的类型;了解索引的作用。

(九)数据库的备份和恢复

1.教学内容:(1)备份技术(2)恢复技术 2.教学要求:

掌握备份操作和恢复操作技术;了解备份和恢复的概念和作用;

(十)视图、存储过程和触发器 1.教学内容:(1)视图(2)存储过程(3)触发器 2.教学要求:

掌握创建、修改和使用视图技术,创建触发器技术;了解视图的概念和特点,触发器的特点和作用。

(十一)Transact-SQL语言

1.教学内容:

(1)Transact-SQL语言的特点(2)Transact-SQL语言的组成元素(3)执行Transact-SQL语句的工具 2.教学要求:

掌握使用数据控制、定义和操作语言及T-SQL语句;了解Transact-SQL语言的特点。

(十二)SQL Server的并发性

1.教学内容:

(1)并发性的概念(2)事务(3)使用锁 2.教学要求:

掌握事务管理和锁技术;理解锁的作用;了解并发性的概念。

(十三)数据互操作性技术

1.教学内容:

(1)数据互操作性技术工具(2)数据转换服务 2.教学要求:

掌握使用DTS工具;理解DTS工具的特点;了解数据互操作性技术的概念。

(十四)数据完整性

1.教学内容:

(1)数据完整性的概念(2)约束管理(3)缺省管理(4)规则管理

(5)完整性技术比较研究 2.教学要求:

掌握如何选择数据完整性的方法,对象管理技术;了解数据完整性的概念和类型。

(十五)数据复制

1.教学内容:

(1)数据复制的特点

(2)复制代理、复制类型和模型(3)建立数据复制的各种技术(4)在异构环境中复制数据(5)监视和维护复制 2.教学要求:

掌握建立数据复制的各种技术和复制代理、复制类型和模型;了解数据复制的概念和特点。

(十六)管理作业和警报

1.教学内容:

(1)管理作业技术(2)管理警报技术(3)故障诊断 2.教学要求:

掌握作业管理、警报管理和故障诊断技术;了解任务自动化的原因。

(十七)性能监测和调整

1.教学内容:

(1)SQL Profiler(2)性能监视器 2.教学要求:

掌握使用SQL Profiler工具监视性能即T-SQL语句监视系统性能;了解影响系统性能的因素和监测工具。

(十八)向导和工具

1.教学内容:

(1)服务器注册向导(2)数据库类向导工具(3)系统管理类向导(4)数据转换服务向导工具(5)复制类向导工具 2.教学要求:

掌握数据库各类向导工具的用法;了解向导工具的分类。

(十九)管理ODBC数据源

1.教学内容:(1)ODBC技术

(2)配置ODBC数据源 2.教学要求:

掌握创建和配置ODBC数据源的过程;了解ODBC的概念和特点。

四、课时分配

总学时 授课时数 上机时数

(一)SQL Server概述 2 2

(二)安装SQL Server 2012系统 4 2 2(三)注册和配置服务器 2 1 1(四)SQL Server的安全管理 2 1 1(五)管理数据库 2 1 1(六)管理表 2 1 1(七)操纵表中的数据 2 1 1(八)索引 4 2 2(九)数据库的备份和恢复 2 1 1(十)视图、存储过程和触发器 14 10 4(十一)Transact-SQL语言 12 8 4(十二)SQL Server的并发性 2 1 1(十三)数据互操作性技术 4 2 2(十四)数据完整性 4 1 1(十五)数据复制 2 1 1(十六)管理作业和警报 2 1 1(十七)性能监测和调整 2 1 1(十八)向导和工具 2 1 1(十九)管理ODBC数据源 2 1 1 机 动

4 0 合 计

45 27 序号

五、实践环节

1.实验(25学时,包含在上机时间内),可根据授课内容安排,建议项目:创建和使用数据库;创建和使用表;Transact-SQL;索引;视图;数据库完整性;存储过程;触发器;SQL Server的安全管理;数据备份与还原;数据转换;用ADO操作SQL Server数据库;VB的数据环境和数据报表;数据库系统设计实例。2.综合性大作业,可根据实际课时安排在实训内容来进行,建议1~2次。

六、大纲说明

1.本大纲适用于三年制高职高专计算机各专业使用。

2.本课程与其它编程语言课程是相辅相成的,并且作为程序设计的提高课程,应在《程序设计基础》之后开设。

3.考核方式:平时考核占40%,期末考核占60%。考核及格后获得3学分。4.参考教材:《SQL Server 2012数据库及应用》 徐人凤、曾建华编著高等教育出版社。

下载SQL数据库编程学习应用语句大全word格式文档
下载SQL数据库编程学习应用语句大全.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    sql语句

    简单基本的sql语句 几个简单的基本的sql语句 选择:select * from table1 where范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1......

    SQL语句

    SQL语句,用友的SQL2000,通过查询管理器写的语句 1、查询 2、修改 3、删除 4、插入表名:users 包含字段:id,sname,sage 查询 select * from users查询users表中所有数据 select i......

    SQL数据库心得

    黄淮学院 2015--- 2016学年第 一 学期 《C#数据库应用程序开发技术与案例教程》课程 题目:学习报告 院系:数学科学系 专业:数学与应用数学 年级:1301B 姓名:曹占营 学号:1331110......

    数据库原理与应用SQL教学纲要

    《数据库原理与应用》课程教学纲要 一、课程概述 (一)课程学时与学分 课程代码: ,计算机网络技术专业,第2学期开课; 课程总学时:48学时(理论讲授学时:24学时;实践学时:24学时) 课程总学......

    SQL语句判断数据库、表、字段是否存在

    SQL语句判断数据库、表、字段是否存在 --判断[TestDB]是否存在 if exists(select 1 from master..sysdatabases where name='TestDB') print 'TestDB存在' else print 'Test......

    SQL简单语句小结 数据库菜鸟不可不看

    数据库菜鸟不可不看简单SQL语句小结为了大家更容易理解我举出的SQL语句,本文假定已经建立了一个学生成绩管理数据库,全文均以学生成绩的管理为例来描述。 1.在查询结果中显示......

    实验四使用SQL语句修改SQL Server 数据库

    实验四使用SQL语句修改SQL Server数据库 1、实验目的: (1) 了解SQL Server数据库的逻辑结构和物理结构; (2) 掌握使用SQL语句修改数据库的方法; 2、实验准备: (1)要明确能够修改数据库......

    文管二级Access数据库SQL语句详解

    第一讲 上面是Access数据库中所涉及的两个表 下面我们介绍Access数据库中用于查询数据的语句: 1、 SELECT 语句 SELECT语句是数据库中使用频率最高的语句,就是我们通常说的查......