因为目前SQL注入是非常热门而且技术门槛较低的攻击手段,并且非常实用,轻则可以拿到网站的一些帐号,比如拿到某个电影网站的黄金会员的帐号;重则利用其网站楼多入侵整个服务器等等。 这里打算作为一个专题讲解SQL及其注入。其中对于SQL不太明白的地方希望大家自己查资料。这个帖子将长期更新。。。 一,SQL纵览 SQL(Structured Query Language)语言是一种结构化查询语言。SQL语言中完成核心功能的共有9个关键词:SELECT(数据查询)、CREAT、DROP、ALTER(数据定义)、INSERT、UPDATA、DELETE(数据操纵)、GRANT、REVOKE(数据控制)。 1,数据定义部分 (1)创建基本表 creat table Employee ( Eno char(6) not null unique, Ename char(20) unique Esex char(2) Eage int Edept char(10) Espe char(20) ) 该语句创建了一个名为Employee的数据表,共有六列,分别为字符型(长度为6,非空,唯一)的雇员号Eno,字符型(长度为20,唯一)的雇员号姓名Ename,字符型(长度为2)的雇员性别,整型的雇员年龄,字符型(长度为10)的雇员部门,字符型(长度为20)的雇员特长. (2)删除基本表 DROP TABLE Employee (3)更改基本表 ALTER TABLE Employee ADD Esalary CHAR(5) 在雇员表中加入一列,字符型(长度为5)的雇员薪水. ALTER TABLE Wmployee DROP UNIQUE(Ename); 去掉雇员表中雇员姓名的唯一属性. ALTER TABLE Employee MODIFY Esex CHAR(1); 把雇员表中的性别列改为一位字符型. 2,数据查询部分 这是SQL语句中最灵活,功能最强的部分. (1)基本查询语句 SELECT Eno,Ename,Esex FROM Employee 查询Employee表中的Eno,Ename,Esex三列 SELECT * FROM Employee 查询Employee表中的所有列. SELECT DISTINCT Eno FROM Employee; 查询Employee表中的Eno列,并去除重复行. (2)条件(WHERE)查询语句 插叙条件的连接词如下:NOT,=,>,<,>=,<=,!=,<>,!>,!<,BETWEEN AND,NOT BETWEEN AND(确定范围),LIKE,NOT LIKE(字符匹配),IS NULL,IS NOT NULL(空值),AND,OR(多条件连接). ? 比较 SELECT Eno FROM Employee WHERE Eage <=25 列出表中年龄小于25的雇员号 ? 确定范围 SELECT Eno,Ename FROM Employee WHERE Eage [NOT] BETWEEN 20 AND 30 |