一、数据库操作
- 连接数据库:
-查询所有数据库:show batabases;
-查询当前数据库: select database();
-查询当前数据库版本: select version();
-查询当前数据库用户: select user();
-查询当前路径:select @@basedir;
-选择一个数据库: use 数据库名;
-创建一个数据库:create database 数据库名;
-删除一个数据库: drop database 数据库名;
-退出数据库:
EXIT --方法一
quit --方法二
q --方法三
ctrl+c --方法四
二、数据库表的操作
-创建表 create table 数据表名字 (字段 类型 约束[, 字段 类型 约束]);
例如: 在 class 数据库下创建student表(id、name、age、sex、birthday)
-查询所有表名 show tables;
-查询一个表的结构 desc 表名;
-表中添加数据
INSERT INTO 表名(字段名1,字段名2,…)VALUES(值1,值2,…);
INSERT INTO 表名 VALUES(值11,值2,…);
-表中删除数据
DELETE FROM 表名 WHERE 条件表达式;
DELETE FROM 表名; ——删除所有记录
-修改表中数据
UPDATE 表名 SET 字段名1=值1,[ ,字段名2=值2,…] [ WHERE 条件表达式 ];
DELETE FROM 表名;
-查询表中数据
SELECT 字段名1,字段名2,…FROM 表名 WHERE 条件表达式;
SELECT * 字段名1,字段名2,…FROM 表名 WHERE 字段名 [ NOT ] IN (元素1,元素2,…);
SELECT DISTINCT 字段名 FROM 表名;
SELECT * | 字段名1,字段名2,…FROM 表名 WHERE 字段名 [ NOT ] LIKE ‘匹配字符串’;
SELECT * | 字段名1,字段名2,…FROM 表名;
SELECT * | 字段名1,字段名2,…FROM 表名 WHERE 条件表达式1 OR 条件表达式2 [ … OR 条件表达式 n ];
SELECT COUNT(*) FROM 表名;
SELECT SUM(字段名) FROM 表名;
SELECT AVG(字段名) FROM 表名;
SELECT MAX(字段名) FROM 表名;
SELECT MIN(字段名) FROM 表名;
SELECT * FROM student GROUP BY sex;
SELECT COUNT(*) ,age FROM student GROUP BY age;
SELECT sum(age),sex FROM student GROUP BY sex HAVING SUM(age) < 300;
SELECT 字段名2,字段名2,…FROM 表名 LIMIT 记录数 [ OFFSET ] 记录数 LIMIT Y OFFSET X 向后偏移 x位;
SELECT * FROM 表名 [ AS ] 别名;
SELECT 字段名 [ AS ] 别名 [ ,字段名 [AS] 别名,…] FROM 表名 ;
三、注入中常见的sql函数
1、rand()函数 //生成一个0~1之间的随机数
select rand();
2、floor()函数 //向下取整
select floor(rand()*2);
3、concat()函数 //将符合条件的同一列中的不同行数据进行拼接,选择好数据库
concat(0x3a,database(),0x3a);0x3a为:号
4、concat_ws()函数 //第一个参数是其它参数的分隔符。分隔符的位置在连接的两个字符串之间。
select concat_ws('!',database(),'haha');
5、floor()函数 //向下取整
select group_concat('!',database(),'haha');
6、extractvalue()函数 //对xml文档进行查询的函数
extractvalue(目标xml文档,xml路径);
7、sleep()函数 //对数据库进行延时的函数 语法:后面直接跟需要延时的时间即可,默认单位为s
select sleep(5);
8、updatexml() //语法updatexml(目标xml文档,xml路径,更新的内容)
select updatexml('anything',concat('~',(select version())),'xxx');
9、 exp()函数 //此函数返回e(自然对数的底)的X次方的值,当传递一个大于709的值时,函数exp()就会引起一个溢出错误。类似的还有pow(),cot()。
stelect exp(2);
10、length()函数 //返回参数的长度
select length(user());
11、substr()函数 //从字符串 s 的 start 位置截取长度为 length 的子字符串,select substr(user(),1,2);
select substr(user(),1,2);
12、substring()函数,left() ,mid()函数 //同substr
select substring(user(),1,2);
13、ascii()、ord()函数 //返回字符的ascii码
select ascii(mid(user(),1));
14、name_const()函数 //构造一个临时列,列名为xx,值为xx
select name_const('name',15);
15、strcmp()函数 //strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串 并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若 str1<str2,则返回负数;若str1>str2,则返回正数
select strcmp(version(),user());
16、if(a,b,c) //如果a为真,则返回b,否则返回c
17、BENCHMARK(count,expr) //重复计算expr表达式count次
18、geometrycollection(),multipoint(),polygon(),multipolygon(),linestring(),multilinestring() //几何函数