sql函数

SQL常用函数集锦

和自甴很熟 提交于 2020-01-28 00:14:19
一、字符转换函数 1 、 ASCII () 返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。 2 、 CHAR () 将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值, CHAR () 返回NULL 。 3 、 LOWER ()和UPPER() LOWER ()将字符串全部转为小写; UPPER ()将字符串全部转为大写。 4 、 STR () 把数值型数据转换为字符型数据。 STR ( < float_expression > [ ,length[, <decimal> ] ]) length 指定返回的字符串的长度, decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10, decimal 缺省值为0。 当length 或者decimal 为负值时,返回NULL; 当length 小于小数点左边(包括符号位)的位数时,返回length 个 * ; 先服从length ,再取decimal ; 当返回的字符串位数小于length ,左边补足空格。 二、去空格函数 1 、 LTRIM () 把字符串头部的空格去掉。 2 、 RTRIM () 把字符串尾部的空格去掉。 三、取子串函数 1 、 left () LEFT (

SQL基础教程(第2版)第8章 SQL高级处理:8-1 窗口函数

喜你入骨 提交于 2020-01-27 15:18:26
8-1 窗口函数 ● 窗口函数可以进行排序、生成序列号等一般的聚合函数无法实现的高级操作。 ● 理解 PARTITION BY 和 ORDER BY 这两个关键字的含义十分重要。 ■ 什么是窗口函数 在Oracle和 SQL Server中称为分析函数。 但是 MySQL 的5.7版本还是不支持窗口函数 。 OLAP 是 OnLine Analytical Processing 的简称,意思是对数据库数据进行实时分析处理。 例如,市场分析、创建财务报表、创建计划等日常性商务工作。 窗口函数就是为了实现 OLAP 而添加的标准 SQL 功能。 ■ 窗口函数的语法 窗口函数大体可以分为以下两种。 ① 能够作为窗口函数的聚合函数( SUM 、 AVG 、 COUNT 、 MAX 、 MIN ) ② RANK 、 DENSE _ RANK 、 ROW _ NUMBER 等 专用窗口函数 ■ 语法的基本使用方法——使用 RANK 函数 正如其名称所示, RANK 是用来计算记录排序的函数。 例如,对于之前使用过的 Product 表中的 8 件商品,让我们根据不同的商品种类( product_type ),按照销售单价( sale_price )从低到高的顺序排序,结果如下所示。 PARTITION BY 能够设定排序的对象范围。 ORDER BY 能够指定按照哪一列、何种顺序进行排序。

sql Server函数大全

自闭症网瘾萝莉.ら 提交于 2020-01-27 05:46:12
SQL2008 表达式:是常量、变量、列或函数等与运算符的任意组合。 1. 字符串函数 函数 名称 参数 示例 说明 ascii (字符串表达式) select ascii('abc') 返回 97 返回字符串中最左侧的字符的ASCII 码。 char (整数表达式) select char(100) 返回 d 把ASCII 码转换为字符。 介于0 和 255 之间的整数。如果该整数表达式不在此范围内,将返回NULL 值。 charindex (字符串表达式 1, 字符串表达式 2[,整数表达式]) select charindex('ab','BCabTabD')返回 3 select charindex('ab','BCabTabD',4)返回 6 在字符串2 中查找字符串 1,如果存在返回第一个匹配的位置,如果不存在返回0。如果字符串 1 和字符串 2 中有一个是null 则返回 null。可以指定在字符串 2 中查找的起始位置。 difference (字符串表达式 1,字符串表达式 2) select difference('Green','Greene')返回 4 返回一个0 到 4 的整数值,指示两个字符表达式的之间的相似程度。 0 表示几乎不同或完全不同, 4 表示几乎相同或完全相同。 注意相似并不代表相等 left (字符串表达式,整数表达式) select

sql 语句日期用法及函数

柔情痞子 提交于 2020-01-26 08:57:51
--DAY()、MONTH()、YEAR()——返回指定日期的天数、月数、年数; select day(cl_s_time) as '日' from class --返回天 select '月'=month(cl_s_time) from class --返回月 select '年'=year(cl_s_time) from class --返回年 --DATEADD(datepart,number,date)——在日期上增加给定日期类型的数量; select dateadd(yyyy,4,cl_s_time) as '增加4年后' from class --datepart - 年份 yy、yyyy select dateadd(q,2,cl_s_time) as '增加2季度后' from class --datepart - 季度 qq、q select dateadd(mm,3,cl_s_time) as '增加3月度后' from class --datepart - 月份 mm、m --datepart - 每年的某一日 dy、y --datepart - 日期 dd、d --datepart - 星期 wk、ww --datepart - 小时 hh --datepart - 分钟 mi、n --datepart - 秒 ss、s --datepart - 毫秒 ms

sql中的split函数的实现

自作多情 提交于 2020-01-26 04:43:12
--创建一个函数,函数中有两个参数 Create FUNCTION [dbo].[SplitToTable] ( @SplitString nvarchar(max),--输入的字符串 @Separator nvarchar(10)=' '--分割条件 ) --返回的数据为一个表 RETURNS @SplitStringsTable TABLE ( [id] int identity(1,1), [value] nvarchar(max) ) AS BEGIN DECLARE @CurrentIndex int;--当前索引 DECLARE @NextIndex int;--下一个索引 DECLARE @ReturnText nvarchar(max);--返回内容 SELECT @CurrentIndex=1;--设置当前索引初始值为1 --当当前索引小于字符串长度时,执行循环体 WHILE(@CurrentIndex<=len(@SplitString)) BEGIN --CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX函数调用方法如下: --CHARINDEX ( expression1 , expression2 [ , start_location ] ) -- Expression1是要到expression2中寻找的字符中

函数之sql语句

女生的网名这么多〃 提交于 2020-01-25 01:11:17
1 函数 1.1 函数 函数一般是在数据上执行的,它给数据的转换和处理提供了方便。只是将取出的数据进行处理,不会改变数据库中的值。 函数 根据处理的数据分为单行函数和聚合函数( 组 函数) 组函数又被称作聚合函数,用于对多行数据进行操作,并返回一个单一的结果,组函数仅可用于选择列表或查询的 having 子句 单行函数对单个数值进行操作,并返回一个值。 dual 是 一个系统表。注意 用于 测试。 1.2 字符 相关 -- dual用于测试 select * from dual; -- 1.字符串连接 select concat('aa','12') from dual; select 'aa'||'12' from dual; -- 2.首字母大写 select initcap('abc') from dual; --- 把大写转化小写 select lower('ABc') from dual; select upper('abc') from dual; -- 把所有员工的姓名小写输出 select lower(e.ename),e.empno from emp e -- 3.填充字符lpad/rpad select lpad('sxt',5,'*') from dual; select rpad('sxt',5,'*') from dual; -- 4.去掉空白字符

pikachu漏洞练习之sql注入

假装没事ソ 提交于 2020-01-23 22:27:41
这里因为实验的时候只记录了一部分所以就展示一部分 1.1.1数字型注入 (1)看到界面发现是查询id功能,没有在url里看到有传参所以应该是post方法提交数据。 (2)进行sql注入之前我们最好是先想像一下这个功能提交的参数到了后台之后后台是怎样的操作的,对于当前的页面我猜测后台是这样操作 现接受我的id请求然后带入到查询语句 $id=$_POST['id'] select 字段1,字段2 from 表名 where id = $id 可以用下面的语句添加在等号后面来测试是否真确(post请求通过抓包的方式来进行测试) 1 or 1=1; 可以看到返回的是200 然后查看返回的结果可以看到把所有的结果都查询出来了。所以有漏洞并且是数字型的 1.1.2 字符型注入 查看页面发现是get请求 (1)首先也是猜想后台进行的操作,因为是查询名字,先将我们查询的数值赋给一个变量 $uname=$_GET['username'] select 字段1,字段2 from 表名 where username='$uname ' or 1=1#'; or = 1=1#验证漏洞是否存在,#号注释闭合‘’ 测试结果 1.1.3 搜索型以及xx型注入 (1)搜索型 看到界面是用户名查找我首先还是进行猜测后台的操作,猜测后台可能使用的是mysql的搜索功能,mysql查询语句 Select * from

数字金额转大写SQL函数实现

痴心易碎 提交于 2020-01-23 19:20:01
1 set ANSI_NULLS ON 2 set QUOTED_IDENTIFIER ON 3 go 4 5 ALTER FUNCTION [ dbo ] . [ FN_CONTRACT_MONEY_UPPER ] ( @n_LowerMoney numeric( 15 , 2 ), @v_TransType int ) 6 RETURNS VARCHAR ( 200 ) AS 7 BEGIN 8 Declare @v_LowerStr VARCHAR ( 200 ) -- 小写金额 9 Declare @v_UpperPart VARCHAR ( 200 ) 10 Declare @v_UpperStr VARCHAR ( 200 ) -- 大写金额 11 Declare @i_I int 12 13 set @v_LowerStr = LTRIM ( RTRIM ( ROUND ( @n_LowerMoney , - 2 ))) -- 四舍五入为指定的精度并删除数据左右空格--精确到百位 14 set @i_I = 1 15 set @v_UpperStr = '' 16 17 while ( @i_I <= len ( @v_LowerStr )) 18 begin 19 select @v_UpperPart = case substring ( @v_LowerStr

SQL中类型转换函数

无人久伴 提交于 2020-01-23 11:02:11
1.cast cast(表达式 as 数据类型) select 100.0 +cast('1000' as int) -- 1100.0 默认把字符串转换成浮整形 2.convert 万能转换 convert(数据类型,表达式) select 100.0 + convert(int,'1000')-- 1100.0 默认把字符串转换成整形 3.select * from student order by convert (int,bid) desc --bid列按照降序来排列,bid是varchar类型 4.print convert(varchar(10),getdate(),120) --日期转换varchar(10)表示显示的字符长度,120表示style,可以在SSMS 帮助中查看详情 5.cast不可以转换日期类型,convert可以通用 来源: https://www.cnblogs.com/longxinyv/p/12230278.html

sql 语句大全(转)

我与影子孤独终老i 提交于 2020-01-23 01:01:49
--语 句              功 能 --数据操作 SELECT   --从数据库表中检索数据行和列 INSERT   --向数据库表添加新数据行 DELETE   --从数据库表中删除数据行 UPDATE   --更新数据库表中的数据 --数据定义 CREATE TABLE  --创建一个数据库表 DROP TABLE   --从数据库中删除表 ALTER TABLE   --修改数据库表结构 CREATE VIEW   --创建一个视图 DROP VIEW   --从数据库中删除视图 CREATE INDEX  --为数据库表创建一个索引 DROP INDEX   --从数据库中删除索引 CREATE PROCEDURE  --创建一个存储过程 DROP PROCEDURE  --从数据库中删除存储过程 CREATE TRIGGER  --创建一个触发器 DROP TRIGGER  --从数据库中删除触发器 CREATE SCHEMA  --向数据库添加一个新模式 DROP SCHEMA   --从数据库中删除一个模式 CREATE DOMAIN  --创建一个数据值域 ALTER DOMAIN  --改变域定义 DROP DOMAIN   --从数据库中删除一个域 --数据控制 GRANT   --授予用户访问权限 DENY   --拒绝用户访问 REVOKE   -