sql函数

SQL中CONVERT转化函数的用法

匆匆过客 提交于 2020-02-04 18:07:45
格式: CONVERT (data_type,expression [ ,style ] ) 说明: 此样式一般在时间类型( datetime , smalldatetime )与字符串类型( nchar , nvarchar , char , varchar ) 相互转换的时候才用到. 例子: SELECT CONVERT ( varchar ( 30 ), getdate (), 101 ) now 结果为: now -- ------------------------------------- | 09 / 15 / 2001 =================================================================== style数字在转换时间时的含义如下: -- ---------------------------------------------------------------------------------------------------------- Style(2位表示年份) | Style(4位表示年份) | 输入输出格式 -- -----------------------------------------------------------------------------------------

sql 条件判断 if / case when then / ifnull

余生颓废 提交于 2020-02-03 01:22:12
1 if 和 ifnull if 类似三元运算符,if(?=?,a,b) 为true等于a,false等于b,类似三元表达式 ifnull函数用于在MySQL中将NULL值替换为另外一个值 2 case 流程控制 简单case函数 枚举某个字段 或者 某个字段函数的所有值 如: CASE country WHEN '中国' THEN '亚洲' WHEN '美国' THEN '北美洲' WHEN '日本' THEN '亚洲' ELSE '其他' END case搜索函数 类似if,case搜索函数可以写判断,找到第一个符合条件的case即结束 CASE WHEN population > 80 THEN '大' ELSE '小' END 配合count(), sum()实现分段统计 3 not in 和 not exists null值代表未知的数据,比较运算符,比如=、< 或 <>,无法用来测试null值,必须使用 IS NULL 和 IS NOT NULL 操作符 not in 子查询在有null的情况下,则均返回null in 和 exist in 将内表和外表作hash连接。hash连接:一个表作为hash表,去扫描另一个表的每行数据,用得出来的行数据建立新的hash表,hash表存放在内存 exist 对外表作loop循环,分为内外表

【web安全】sql注入之报错注入的基本流程

耗尽温柔 提交于 2020-02-02 06:16:57
报错注入属于盲注的一种,可以是get注入,也可以是post注入 它是在网页没有回显的情况下,可以用报错函数让我们想要的数据报错弹出来 Updataxml() 更新xml文档的函数 使用方法: 路径不存在或非正常路径会报错 Updatexml(目标xml内容,xml文档路径,更新的内容) Updatexml(1,concat(0x7e,(select database()),0x7e),3) 0x7e , ( select database ( ) ) , 0x7e = ~ ( select database ( ) ) ~ 子查询 = ~ maoshe ~ 注入步骤就跟get注入一样了,在子查询里面改变一下语句 注: concat 函数 是连接符 0x是16进制 0x7e 是~ 报错注入有输出限制,尽量不要用group_concat()函数 来源: CSDN 作者: 吃遍全国海底捞 链接: https://blog.csdn.net/NiFeng_ShouHu/article/details/104099425

sql注入总结

那年仲夏 提交于 2020-02-01 22:14:47
sql注入定义 就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行的sql命令的目的。 sql注入分类 联合查询 通过执行等同于将一个表追加到另一个表的操作来组合两个表的查询 首先我们先来了解一下mysql的系统函数 user ( ) : 当前使用者的用户名 database ( ) : 当前数据库名 version ( ) : 数据库的版本 datadir : 读取数据库的绝对路径 @@vasedir : mysql安装路径 @@version_compile_os : 操作系统 concat ( ) : 连接一个或者多个字符串 group_concat ( ) : 连接一个组的所有字符串,并以逗号分隔每一条数据 然后再来了解下union UNION 用于合并两个或多个 SELECT 语句的结果集,并消去表中任何重复行。 UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同.默认地, UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL 。当 ALL 随 UNION 一起使用时(即 UNION ALL ),不消除重复行。 mysql 5.0版本以后提供了information.schema表,表中记录了数据库中所有的库、表

PostgreSQL学习手册(SQL语言函数)

让人想犯罪 __ 提交于 2020-01-31 02:06:17
一、基本概念: SQL函数可以包含任意数量的查询,但是函数只返回最后一个查询(必须是SELECT)的结果。在简单情况下,返回最后一条查询结果的第一行。如果最后一个查询不返回任何行,那么该函数将返回NULL值。如果需要该函数返回最后一条SELECT语句的所有行,可以将函数的返回值定义为集合,即SETOF sometype。 SQL函数的函数体应该是用分号分隔的SQL语句列表,其中最后一条语句之后的分号是可选的。除非函数声明为返回void,否则最后一条语句必须是SELECT。事实上,在SQL函数中,不仅可以包含SELECT查询语句,也可以包含INSERT、UPDATE和DELETE等其他标准的SQL语句,但是和事物相关的语句不能包含其中,如BEGIN、COMMIT、ROLLBACK和SAVEPOINT等。 CREATE FUNCTION命令的语法要求函数体写成一个字符串文本。通常来说,该文本字符串常量使用美元符($$)围住,如: CREATE FUNCTION clean_emp() RETURNS void AS $$ DELETE FROM emp WHERE salary < 0; $$ LANGUAGE SQL ; 最后需要说明的是SQL函数中的参数,PostgreSQL定义$1表示第一个参数,$2为第二个参数并以此类推。如果参数是复合类型,则可以使用点表示法,即$1

SQL、T-SQL与PL-SQL的区别

萝らか妹 提交于 2020-01-31 01:58:54
本文针对目前最新版9.5.1,若非说明,文中所说文档即指官方文档。本人刚接触PostgreSQL不久,文中不免错漏,请大家指正;随着了解深入,本文[可能]会不定期更新补足。 JSON PostgreSQL支持Json格式数据,有两种类型:json和jsonb。两者在效率上有所区别,而这是因为jsonb存储的是格式化后的二进制数据,所以在写入时,json类型比较快,而在检索时(注意这里说的检索不是简单的读取整个数据,而是比如检索json数据中某个键的值的场景),jsonb效率较高。一般情况下,使用jsonb就可以了。json数据是为了弥补关系型数据在伸缩性扩展性上的不足,但是文档也说了,不能啥都往里放,要考虑数据原子性和数据大小。 json类型可以作包含判断和是否存在的判断(containment or existence),表示符号分别为@>和?(以及其它一些变种)。对于这两种牵涉到多个键和元素的判断场景,json类型比下面要讲的arrays更适合,因为其对查询有内在的优化机制,而array只是单纯的线性查找。 若json列需要经常检索,那么可以在其上建立GIN索引,jsonb支持两种特有的GIN索引jsonb_ops和jsonb_path_ops。创建的语法如下: CREATE INDEX idxgin ON api USING GIN (jdoc); CREATE INDEX

Sql Server函数全解(五)之系统函数

折月煮酒 提交于 2020-01-29 05:53:43
阅读目录 1.返回表中指定字段的长度 2.返回表中指定字段的名称   3.返回数据表达式的数据的实际长度函数 4.返回数据库的编号   5.返回数据库的名称   6.返回数据库当前默认的null值 7.返回服务器端计算机的标识号 8.返回服务器端计算机名称 9.返回数据库对象的编号   10.返回用户的SID(安全标识号) 11.返回用户的登录名 12.返回数据库对象的名称 13.返回数据库用户的标识号 14.返回数据库用户名  系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容。使用SQL SERVER中的系统函数可以在需要的时候获取这些信息。下面介绍系统函数的作用和使用方法。 回到顶部 1.返回表中指定字段的长度   COL_LENGTH(table,column)函数返回表中指定字段的长度值。其返回值为int类型,table为要确定其列长度信息的表的名称,是nvarchar类型的表达式。column为要确定其长度的列的名称,是nvarchar类型的表达式. 【例】先创建一个学生表student。  create table student (   i_sid int primary key identity(1,1),    str_stuName varchar(10)   );  SELECT COL_LENGTH('student','str

SQL 常用函数-笔记

北战南征 提交于 2020-01-29 05:49:49
SQL常用函数: 1. ASCII():返回字符串最左端字符的ASCII码。 2. CHAR():将ASCII转换成字符。(0~255) 3. LOWER()和UPPER()。 4. STR():把数值型数据转换为字符型数据 SRT(<float_expression>[,length[,<decimal>]]) LTRIM()把字符串头部空格去掉,RTRIM()把字符串尾空格去掉。 取子串函数: 1. LEFT(<chars>, length):返回char左起length个字符。 2. RIGHT(<chars>, length):返回char右起length个字符。 3. SUBSTRING(<chars>, <position>, length):返回chars左边第position个字符起length个字符部分。 字符串比较: 1. QUOTENAME(<chars>[,quote_char]):返回被特定字符括起来的字符串。quote_char缺省为"[]" 2. REPLICATE(<chars>, integer):返回一个重复integer次数的chars。 3. REVERSE(<chars>):将chars字符串的字符排列顺序颠倒。 4. REPLACE(str1, str2, str3):用str3替换在str1中的子串str2. 5. SPACE

《SQL必知必会》| 第7-8课 创建计算字段、使用函数处理数据 学习笔记

时光总嘲笑我的痴心妄想 提交于 2020-01-28 13:03:33
第7课 创建计算字段 这一课介绍什么是 计算字段 ,如何创建 计算字段 ,以及如何从应用程序中使用 别名 引用它们。 7.1 计算字段 我们需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户端应用程序中重新格式化。 提示:客户端与服务端的格式 在 SQL 语句内可完成的许多转换和格式化工作都可以直接在客户端应用程序内完成。 但在数据库服务器上完成这些操作比在客户端中完成要快得多。 计算字段 并不实际存在于数据库表中。 计算字段 是运行时在 SELECT 语句内创建的。 只有数据库知道 SELECT 语句中哪些列是实际的表列,哪些列是 计算字段 。 7.2 拼接字段 拼接concatenate 将值联结到一起 (将一个值附加到另一个值) 构成单个值。 根据你所使用的 DBMS ,此操作符可用加号 + 或两个竖杠 || 表示。 在 MySQL 和 MariaDB 中,必须使用特殊的函数。 说明:是 + 还是 || ? Access 和 SQL Server 使用 + 号。 DB2 、 Oracle 、 PostgreSQL 、 SQLite 和 Open Office Base 使用 || 。 SELECT vend_name + ' (' + vend_country + ')' FROM Vendors ORDER BY vend_name;

Sql Server函数全解<五>之系统函数

穿精又带淫゛_ 提交于 2020-01-28 12:12:08
原文: Sql Server函数全解<五>之系统函数  系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容。使用SQL SERVER中的系统函数可以在需要的时候获取这些信息。下面介绍系统函数的作用和使用方法。 1.返回表中指定字段的长度   COL_LENGTH(table,column)函数返回表中指定字段的长度值。其返回值为int类型,table为要确定其列长度信息的表的名称,是nvarchar类型的表达式。column为要确定其长度的列的名称,是nvarchar类型的表达式. 【例】先创建一个学生表student。  create table student (   i_sid int primary key identity(1,1),    str_stuName varchar(10)   );  SELECT COL_LENGTH('student','str_stuName'); 2.返回表中指定字段的名称     COL_NAME(table_id,column_id)函数返回表中指定字段的名称。table_id是表的标识号,column_id是列的标识号,类型为int. 【例】SELECT COL_NAME(OBJECT_ID('student'),1); 3.返回数据表达式的数据的实际长度函数    DATALENGTH