SQL语言总结最新范文心得体会精品工作活动培训总结计划.docx
- 文档编号:17230781
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:21
- 大小:29.19KB
SQL语言总结最新范文心得体会精品工作活动培训总结计划.docx
《SQL语言总结最新范文心得体会精品工作活动培训总结计划.docx》由会员分享,可在线阅读,更多相关《SQL语言总结最新范文心得体会精品工作活动培训总结计划.docx(21页珍藏版)》请在冰点文库上搜索。
SQL语言总结最新范文心得体会精品工作活动培训总结计划
select姓名,sum(成绩)as总分from学生innerjoin成绩on学生.学号=成绩.学号groupby姓名
答:
从通过学号建立的学生与成绩关系表中选择选择学生成绩的姓名集合
Update学生成绩表set高数=93Where高数=80;
答:
将“学生成绩表”中所有“高数”为80分的记录的改为93分
Select学号,姓名From学生
Where专业=“计算机应用”;
答:
查询出专业为“计算机应用”的所有男生的学号和姓名
Select学号,姓名From学生
Where年龄>=18and姓名like“王*”;
答:
显示学生表中年龄大于18岁且姓“王”的学生的所有信息。
SelectCount(性别)as男生人数From学生Where性别=“男”;答:
分别显示男生人数
Select课程.课程编号,课程.课程名,成绩.学生编号,成绩.成绩From课程InnerJoin成绩on课程.课程编号=成绩.课程编号Where(课程.课程名)=“数据库原理”and(成绩.成绩)>70;答:
查找“数据库原理”课程成绩在70分以上学生的学号、姓名和成绩
Selecttop3学号,姓名From学生
Orderby成绩Desc;
答:
显示成绩前3名的学生的学号和姓名
SELECT学生.学生编号,学生.学生姓名,课程.课程编号,课程.课程名,成绩.成绩,班级.班级编号
FROM课程INNERJOIN(班级INNERJOIN(成绩INNERJOIN学生ON成绩.学生编号=学生.学生编号)ON班级.班级编号=学生.班级编号)ON课程.课程编号=成绩.课程编号
WHERE(((课程.课程名)=“计算机基础”)AND((班级.班级编号)=“0401”));答:
查询0401课程成绩SELECT学生编号,学生姓名,性别,出生年月,籍贯,身高,班级编号
FROM学生
WHERE性别=“男”AND班级编号=“0401”;答:
查找班级编号为0401的所有男生
UPDATE成绩SET成绩=((成绩*0.1)+成绩)WHERE成绩SELECTavg(成绩)AS平均成绩FROM成绩;答:
平均成绩查询
SELECTavg(身高)AS平均身高FROM学生WHERE性别=“男”;答:
求出男生的平均身高
SELECT学生编号,Avg(成绩)AS平均成绩,Sum(成绩)AS总成绩FROM成绩
GROUPBY学生编号;答:
求学生的平局成绩和总成绩
UPDATE学生SET学生编号=“050211”WHERE学生编号=“050101”;答:
修改学生编号
altertable学生add身高smallint;答:
增加身高字段
扩展阅读:
经典SQL语句总结
SQL分类:
DDL数据定义语言(CREATE,ALTER,DROP,DECLARE)DML数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:
创建数据库
CREATEDATABASEdatabase—name
2、说明:
删除数据库
dropdatabasedbname
3、说明:
备份sqlserver
———创建备份数据的device
USEmaster
EXECsp_addumpdevice”disk”,”testBack”,”c:
\\mssql7backup\\MyNwind_1.dat”
———开始备份
BACKUPDATABASEpubsTOtestBack
4、说明:
创建新表
createtabletabname(col1type1[notnull][primarykey],col2type2[notnull],..)
根据已有的表创建新表:
A:
createtabletab_newliketab_old(使用旧表创建新表)
B:
createtabletab_newasselectcol1,col2fromtab_olddefinitiononly
5、说明:
删除新表:
droptabletabname
6、说明:
增加一个列:
Altertabletabnameaddcolumncoltype注:
列增加后将不能删除。
DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:
添加主键:
Altertabletabnameaddprimarykey(col)
说明:
删除主键:
Altertabletabnamedropprimarykey(col)
8、说明:
创建索引:
create[unique]indexidxnameontabname(col.)
删除索引:
dropindexidxname
注:
索引是不可更改的,想更改必须删除重新建。
9、说明:
创建视图:
createviewviewnameasselectstatement
删除视图:
dropviewviewname
10、说明:
几个简单的基本的sql语句
选择:
select*fromtable1where范围
插入:
insertintotable1(field1,field2)values(value1,value2)
删除:
deletefromtable1where范围
更新:
updatetable1setfield1=value1where范围
查找:
select*fromtable1wherefield1like’%value1%’———like的语法很精妙,查资料!
排序:
select*fromtable1orderbyfield1,field2[desc]
总数:
selectcount*astotalcountfromtable1
求和:
selectsum(field1)assumvaluefromtable平均:
selectavg(field1)asavgvaluefromtable1
最大:
selectmax(field1)asmaxvaluefromtable1
最小:
selectmin(field1)asminvaluefromtable1
11、说明:
几个高级查询运算词
A:
UNION运算符
UNION运算符通过组合其他两个结果表(例如TABLE1和TABLE2)并消去表中任何重复行而派生出一个结果表。
当ALL随UNION一起使用时(即UNIONALL),不消除重复行。
两种情况下,派生表的每一行不是来自TABLE1就是来自TABLE2。
B:
EXCEPT运算符
EXCEPT运算符通过包括所有在TABLE1中但不在TABLE2中的行并消除所有重复行而派生出一个结果表。
当ALL随EXCEPT一起使用时(EXCEPTALL),不消除重复行。
C:
INTERSECT运算符
INTERSECT运算符通过只包括TABLE1和TABLE2中都有的行并消除所有重复行而派生出一个结果表。
当ALL随INTERSECT一起使用时(INTERSECTALL),不消除重复行。
注:
使用运算词的几个查询结果行必须是一致的。
12、说明:
使用外连接
A、leftouterjoin:
左外连接(左连接):
结果集几包括连接表的匹配行,也包括左连接表的所有行。
SQL:
selectA.a,A.b,A.c,B.c,B.d,B.ffromaLEFTOUTJOINbONA.a=B.c
B:
rightouterjoin:
右外连接(右连接):
结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:
fullouterjoin:
全外连接:
不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
其次,大家来看一些不错的sql语句1、说明:
复制表(只复制结构,源表名:
a新表名:
b)(Access可用)
法一:
select*intobfromawhere11
法二:
selecttop0*intobfroma
2、说明:
拷贝表(拷贝数据,源表名:
a目标表名:
b)(Access可用)
insertintob(a,b,c)selectd,e,ffromb;
3、说明:
跨数据库之间表的拷贝(具体数据使用绝对路径)(Access可用)
insertintob(a,b,c)selectd,e,ffrombin‘具体数据库’where条件
例子:
..frombin”“
8、说明:
between的用法,between限制查询数据范围时包括了边界值,notbetween不包括
select*fromtable1wheretimebetweentime1andtime2
selecta,b,c,fromtable1whereanotbetween数值1and数值2
9、说明:
in的使用方法
select*fromtable1wherea[not]in(‘值1’,’值2’,’值4’,’值6’)
10、说明:
两张关联表,删除主表中已经在副表中没有的信息
deletefromtable1wherenotexists(select*fromtable2wheretable1.field1=table2.field1)
11、说明:
四表联查问题:
select*fromaleftinnerjoinbonA.a=B.brightinnerjoinconA.a=C.cinnerjoindonA.a=D.dwhere.....
12、说明:
日程安排提前五分钟提醒
SQL:
select*from日程安排wheredatediff(“minute”,f开始时间,getdate())>5
13、说明:
一条sql语句搞定数据库分页
selecttop10B.*from(selecttop20主键字段,排序字段from表名orderby排序字段desc)a,表名bwhereB.主键字段=A.主键字段orderbyA.排序字段
14、说明:
前10条记录
selecttop10*formtable1where范围
15、说明:
选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
selecta,b,cfromtablenametawherea=(selectmax(a)fromtablenametbwheretB.b=tA.b)
16、说明:
包括所有在TableA中但不在TableB和TableC中的行并消除所有重复行而派生出一个结果表
(selectafromtableA)except(selectafromtableB)except(selectafromtableC)
17、说明:
随机取出10条数据
selecttop10*fromtablenameorderbynewid()
18、说明:
随机选择记录
selectnewid()
19、说明:
删除重复记录
Deletefromtablenamewhereidnotin(selectmax(id)fromtablenamegroupbycol1,col2,...)
20、说明:
列出数据库里所有的表名
selectnamefromsysobjectswheretype=“U”
21、说明:
列出表里的所有的
selectnamefromsyscolumnswhereid=object_id(“TableName”)
22、说明:
列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select中的case。
selecttype,sum(casevenderwhen”A”thenpcselse0end),sum(casevenderwhen”C”thenpcselse0end),sum(casevenderwhen”B”thenpcselse0end)FROMtablenamegroupbytype
显示结果:
typevenderpcs电脑A1电脑A1光盘B2光盘A2手机B3手机C3
23、说明:
初始化表table1
TRUNCATETABLEtable1
24、说明:
选择从10到15的记录
selecttop5*from(selecttop15*fromtableorderbyidasc)table_别名orderbyiddesc
随机选择数据库记录的方法(使用Randomize函数,通过SQL语句实现)
对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们可能太慢了些。
你不能要求ASP“找个随机数”然后打印出来。
实际上常见的解决方案是建立如下所示的循环:
Randomize
RNumber=Int(Rnd*499)+1
WhileNotobjReC.EOF
IfobjRec(“ID”)=RNumberTHEN...这里是执行脚本...endif
objReC.MoveNextWend
这很容易理解。
首先,你取出1到500范围之内的一个随机数(假设500就是数据库内记录的总数)。
然后,你遍历每一记录来测试ID的值、检查其是否匹配RNumber。
满足条件的话就执行由THEN关键字开始的那一块代码。
假如你的RNumber等于495,那么要循环一遍数据库花的时间可就长了。
虽然500这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。
这时候不就死定了?
采用SQL,你就可以很快地找出准确的记录并且打开一个只包含该记录的recordset,如下所示:
Randomize
RNumber=Int(Rnd*499)+1
SQL=“SELECT*FROMCustomersWHEREID=“
Conn.Execute说明
Execute方法
该方法用于执行SQL语句。
根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:
1.执行SQL查询语句时,将返回查询得到的记录集。
用法为:
Set对象变量名=连接对象.Execute(“SQL查询语言”)
Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。
2.执行SQL的操作性语言时,没有记录集的返回。
此时用法为:
连接对象.Execute”SQL操作性语句”[,RecordAffected][,Option]
RecordAffected为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。
通过访问该变量,就可知道SQL语句队多少条记录进行了操作。
Option可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。
通过指定该参数,可使执行更高效。
BeginTrans、RollbackTrans、CommitTrans方法
这三个方法是连接对象提供的用于事务处理的方法。
BeginTrans用于开始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的事务处理结果,即确认事务的处理。
事务处理可以将一组操作视为一个整体,只有全部语句都成功执行后,事务处理才算成功;若其中有一个语句执行失败,则整个处理就算失败,并恢复到处里前的状态。
BeginTrans和CommitTrans用于标记事务的开始和结束,在这两个之间的语句,就是作为事务处理的语句。
判断事务处理是否成功,可通过连接对象的Error集合来实现,若Error集合的成员个数不为0,则说明有错误发生,事务处理失败。
Error集合中的每一个Error对象,代表一个错误信息。
SQL语句大全精要201*/10/2613:
46DELETE语句
DELETE语句:
用于创建一个删除查询,可从列在FROM子句之中的一个或多个表中删除记录,且该子句满足WHERE子句中的条件,可以使用DELETE删除多个记录。
语法:
DELETE[table.*]FROMtableWHEREcriteria
语法:
DELETE*FROMtableWHEREcriteria=“查询的字”
说明:
table参数用于指定从其中删除记录的表的名称。
criteria参数为一个表达式,用于指定哪些记录应该被删除的表达式。
可以使用Execute方法与一个DROP语句从数据库中放弃整个表。
不过,若用这种方法删除表,将会失去表的结构。
不同的是当使用DELETE,只有数据会被删除;表的结构以及表的所有属性仍然保留,例如字段属性及索引。
UPDATE
有关UPDATE,急!
!
!
!
!
!
!
!
!
!
!
在ORACLE数据库中
表A(ID,FIRSTNAME,LASTNAME)表B(ID,LASTNAME)
表A中原来ID,FIRSTNAME两个字段的数据是完整的表B中原来ID,LASTNAME两个字段的数据是完整的
现在要把表B中的LASTNAME字段的相应的数据填入到A表中LASTNAME相应的位置。
两个表中的ID字段是相互关联的。
先谢谢了!
!
!
!
updateasetA.lastname=(selectB.lastnamefrombwhereA.id=B.id)
掌握SQL四条最基本的数据操作语句:
Insert,Select,Update和Delete。
练掌握SQL是数据库用户的宝贵财富。
在本文中,我们将引导你掌握四条最基本的数据操作语句SQL的核心功能来依次介绍比较操作符、选择断言以及三值逻辑。
当你完成这些学习后,显然你已经开始算是精通SQL了。
在我们开始之前,先使用CREATETABLE语句来创建一个表(如图1所示)。
DDL语句对数据库对象如表、列和视进行定义。
它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。
这些工作由另一类SQL语句数据操作语言(DML)语句进行处理。
SQL中有四种基本的DML操作:
INSERT,SELECT,UPDATE和DELETE。
由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。
在图1中我们给出了一个名为EMPLOYEES的表。
其中的每一行对应一个特定的雇员记录。
请熟悉这张表,我们在后面的例子中将要用到它。
INSERT语句
用户可以用INSERT语句将一行记录插入到指定的一个表中。
例如,要将雇员JohnSmith的记录插入到本例的表中,可以使用如下语句:
INSERTINTOEMPLOYEESVALUES
(“Smith”,”John”,”1980—06—10”,
“LosAngles”,16,45000);
通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。
这些列按照我们创建表时定义的顺序排列。
在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中以此类推。
我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。
如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。
如果SQL拒绝了你所填入的一列值,语句中其他各列的值也不会填入。
这是因为SQL提供对事务的支持。
一次事务将数据库从一种一致性转移到另一种一致性。
如果事务的某一部分失败,则整个事务都会失败,系统将会被恢复(或称之为回退)到此事务之前的状态。
回到原来的INSERT的例子,请注意所有的整形十进制数都不需要用单引号引起来,而字符串和日期类型的值都要用单引号来区别。
为了增加可读性而在数字间插入逗号将会引起错误。
记住,在SQL中逗号是元素的分隔符。
同样要注意输入文字值时要使用单引号。
双引号用来封装限界标识符。
对于日期类型,我们必须使用SQL标准日期格式(yyyy—mm—dd),但是在系统中可以进行定义,以接受其他的格式。
当然,201*年临近,请你最好还是使用四位来表示年份。
既然你已经理解了INSERT语句是怎样工作的了,让我们转到EMPLOYEES表中的其他部分:
INSERTINTOEMPLOYEESVALUES
(“Bunyan”,”Paul”,”1970—07—04”,
“Boston”,12,70000);
INSERTINTOEMPLOYEESVALUES
(“John”,”Adams”,”1992—01—21”,
“Boston”,20,100000);
INSERTINTOEMPLOYEESVALUES
(“Smith”,”Pocahontas”,”1976—04—06”,
“LosAngles”,12,100000);
INSERTINTOEMPLOYEESVALUES
(“Smith”,”Bessie”,”1940—05—02”,
“Boston”,5,201*00);
INSERTINTOEMPLOYEESVALUES
(“Jones”,”Davy”,”1970—10—10”,
“Boston”,8,45000);
INSERTINTOEMPLOYEESVALUES
(“Jones”,”Indiana”,”1992—02—01”,
“Chicago”,NULL,NULL);
在最后一项中,我们不知道Jones先生的工薪级别和年薪,所以我们输入NULL(不要引号)。
NULL是SQL中的一种特殊情况,我们以后将进行详细的讨论。
现在我们只需认为NULL表示一种未知的值。
有时,像我们刚才所讨论的情况,我们可能希望对某一些而不是全部的列进行赋值。
除了对要省略的列输入NULL外,还可以采用另外一种INSERT语句,如下:
INSERTINTOEMPLOYEES(
FIRST_NAME,LAST_NAME,
HIRE_DATE,BRANCH_OFFICE)
VALUE(
“Indiana”,”Jones”,
“1992—02—01”,”Indianapolis”);
这样,我们先在表名之后列出一系列列名。
未列出的列中将自动填入缺省值,如果没有设置缺省值则填入NULL。
请注意我们改变了列的顺序,而值的顺序要对应新的列的顺序。
如果该语句中省略了FIRST_NAME和LAST_NAME项(这两项规定不能为空),SQL操作将失败。
让我们来看一看上述INSERT语句的语法图:
INSERTINTOtable
[(column{,column})]
VALUES
(columnval
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 语言 总结 最新 范文 心得体会 精品 工作 活动 培训 计划