|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。打击|教程由于今朝SQL注进长短常抢手并且手艺门坎较低的打击手腕,而且十分有用,轻则能够拿到网站的一些帐号,好比拿到某个影戏网站的黄金会员的帐号;重则使用其网站楼多进侵全部服务器等等。
这里盘算作为一个专题解说SQL及其注进。个中关于SQL不太分明的中央但愿人人本人查材料。这个帖子将临时更新。。。
一,SQL纵览
SQL(StructuredQueryLanguage)言语是一种布局化查询言语。SQL言语中完成中心功效的共有9个关头词:SELECT(数据查询)、CREAT、DROP、ALTER(数据界说)、INSERT、UPDATA、DELETE(数据利用)、GRANT、REVOKE(数据把持)。
1,数据界说部分
(1)创立基础表
creattableEmployee(
Enochar(6)notnullunique,
Enamechar(20)unique
Esexchar(2)
Eageint
Edeptchar(10)
Espechar(20)
)
该语句创立了一个名为Employee的数据表,共有六列,分离为字符型(长度为6,非空,独一)的雇员号Eno,字符型(长度为20,独一)的雇员号姓名Ename,字符型(长度为2)的雇员性别,整型的雇员岁数,字符型(长度为10)的雇员部门,字符型(长度为20)的雇员专长.
(2)删除基础表
DROPTABLEEmployee
(3)变动基础表
ALTERTABLEEmployeeADDEsalaryCHAR(5)
在雇员表中到场一列,字符型(长度为5)的雇员薪水.
ALTERTABLEWmployeeDROPUNIQUE(Ename);
往失落雇员表中雇员姓名的独一属性.
ALTERTABLEEmployeeMODIFYEsexCHAR(1);
把雇员表中的性别列改成一名字符型.
2,数据查询部分
这是SQL语句中最天真,功效最强的部分.
(1)基础查询语句
SELECTEno,Ename,EsexFROMEmployee
查询Employee表中的Eno,Ename,Esex三列
SELECT*FROMEmployee
查询Employee表中的一切列.
SELECTDISTINCTEnoFROMEmployee;
查询Employee表中的Eno列,并往除反复行.
(2)前提(WHERE)查询语句
插叙前提的毗连词以下:NOT,=,>,<,>=,<=,!=,,!>,!<,BETWEENAND,NOTBETWEENAND(断定局限),LIKE,NOTLIKE(字符婚配),ISNULL,ISNOTNULL(空值),AND,OR(多前提毗连).
对照
SELECTEnoFROMEmployeeWHEREEage<=25
列出表中岁数小于25的雇员号
断定局限
SELECTEno,EnameFROMEmployee
WHEREEage[NOT]BETWEEN20AND30
列出表中岁数(不)在20到30的雇员号和姓名
断定汇合
SELECTEno,EnameFROMEmployee
WHEREEdept[NOT]IN(‘SD,’HD’)
列出表中(不)是软硬件开辟部的雇员号和姓名
字符婚配
LIKE的用法以下
[NOT]LIKE‘<婚配形式>’[ESCAPE‘<换码符>’]
通配标记有%和_两种。
%:婚配恣意长度的字符串(长度能够为0)。A%b可与ab,adfb等婚配。
_:婚配单个恣意字符。a_b可与a#b,a@b等婚配。
假如有ESCAPE,则跟在换码标记后的%大概_不再是通配标记,只是一般的%或_。
比方:
SELECT*FROMEmployeeWHEREEnameLIKE‘刘%’
查找表中姓刘雇员的信息
SELECT*FROMEmployeeWhereEnameLIKE‘刘__’
查找表中姓名为刘某(两个字)的雇员的信息。
SELECT*FROMEmployeeWHEREEspeLIKE‘DB\%t_‘ESCAPE’’
查找表中专长项为DB_入手下手,倒数第二个字符为t的雇员的信息。
Ⅴ空值SELECT*FROMEmployeeWHEREEEspeIS[NOT]NULL
查找表中专长项(不)为空的雇员信息。
Ⅵ多前提毗连
SELECTEnameFROMEmployeeWHEREEdept=SDANDEage<=30;
列出表中软件开辟部门30及30岁以下雇员姓名。
(3)了局排序
对查询了局举行排序用ORDERBY,ASC(默许)为升序,DESC为降序
SELECT*FROMEmployeeORDERBYEdept,EageDESC
(4)了局分组
对查询了局的分组一样平常要用到SQL的集函数,因而先先容集函数。
SQL言语的集函数次要有COUNT(统计总数),SUM(乞降),AVG(求均值),MAX(最年夜值),MIN(最小值)。
SELECTMAX(Eage)FROMEmployeeWHEREEdept=SD
列出软件开辟部年事最年夜雇员的姓名。
SELECTEdeptFROMEmployeeGROUPBYEdeptHAVINGCount(*)>10
统计各部门的雇员数,只显现雇员数年夜于10的部门。
SELECTEdept,COUNT(Eno)FROMEmployeeGROUPBYEdept
统计各部门雇员数,按部门分组列出各部门的雇员数。
(5)毗连查询
毗连查询是查询触及多个数据表,FROM后毗连多个表的情形。
假设我们要统计各个项目列入人的雇员号和姓名,触及的表Eproject布局以下:
Eproject(EnoCHAR(6),PnoCHAR(6),TimeBgnTIME,
TimeEndTIME,RemarkCHAR(50))
响应的查询语句为:
SELECTEproject.Pno,Employee.Eno,Ename
FROMEmployee,Eproject
WHEREEmployee.Eno=Eproject.Eno
ORDERBYEproject.Pno;
列出列入各项目标雇员号和姓名,并依照项目号升序分列。
(6)汇合查询
汇合查询指的是多个SELECT查询了局间举行的汇合操纵。次要有UNION(并操纵),INTERSECT(交操纵),MINUS(差操纵),个中尺度SQL中没有供应交操纵和差操纵,但他们可使用团结查询完成。
假设我们要查询硬件开辟部岁数不年夜于25岁的雇员,能够分离查询完成以下:
SELECT*FROMEmployeeWHEREEdept=HDUNIONSELECT*FROMEmployeeWHEREEage<=25
3,数据更新部分
SQL中的数据更新语句有INSERT,UPDATE和DELETE三种,用法以下:
(1)拔出数据
INSERTINTOEmployee
valueS(13253,王二,男,23,SD,DB_Project)
向雇员表中拔出一条完全的数据
INSERTINTOEmployee(Eno,Ename)
valueS(13253,王二);
向表中拔出一条数据,只包括雇员号和姓名,其他列为空值。
注重:以下情况,属性为非空的列必定不克不及为空值。
(2)修正数据
UPDATEEmployeeSETEage=24WHEREEno=13253
将表中13253号雇员岁数改成24岁
(3)删除数据
DELETEFROMEmployeeWHEREEno=13253
4,数据把持部分
(1)用户受权
SQL用户受权利用GRANT关头词,它的用法以下:
GRANTSELECTONTABLEEmployeeTOusr1;
同意用户usr1查询表Employee
GRANTALLPRIVILEGESONTABLEEmployeeTOusr2;
同意用户usr2对表Employee的任何操纵
(2)发出权限
SQL中发出用户权限利用REVOKE关头词
REVOKEUPDATE(Eno)ONTABLEEmployeeFROMusr3;]
发出usr3更新表Employee中Eno列的权力
REVOKEONTABLEEmployeeFROMPUBLIC
不同意一切用户在表Employee中增加数据。
</p>因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。 |
|