• 常用语法


    AS(别名):
    表中的列和字段可以用as给他们在结果集中设置一个别名。
    select后面也可跟常量,索引这个常量结果中显示没有列名,但是用as可以为这个常量设置一个列名。
    例如:select '香烟' as 烟.....但注意这里是列只是在结果集里面的而已不是一个真正的表列
    也可以给表设置别名(联合查询时候需要):
    如:select * from 厂家信息 as c....这样就给表厂家信息设置一个别名为c
    注意:索引出来的信息是放在一个虚拟的结果集里面的,不是真正的原始表
    ......................................................................
    获取系统当前时间:select getdate()
    获取一个GUID编码(全球唯一之别编码):select newid()
    可以查询一个常量:select '常量',常量查询和表、列查询可以通过逗号一同进行,有时候能起到在结果集中给行“命名的效果”
    比如:select '常量',* from 厂家信息,这样就在厂家信息的结果集合前面加上列值为'常量'的无名列
    获取指定字符的ASCII编码:SELECT ASCII('a')
    ......................................................
    聚合汇总(聚合函数):MAX最大,MIN最小,AVG平均,SUM求和,COUNT数量
    例如:
    某列最大值:select MAX(编号) from 厂家信息
    某列最小值:select MIN(编号) from 厂家信息
    某列平均值:select AVG(编号) from 厂家信息
    某列合计值:select SUM(编号) from 厂家信息
    某列数量(有几行):select COUNT(编号) from 厂家信息.....注意哦,如果某列中的某个值为null这样的话就不算一行,所以不能用这个查询表的行数
    表中行数:select COUNT(*) from 厂家信息
    某列最大和最小值:select MAX(编号),MIN(编号) from 厂家信息
    某列最大和最小值(设置别名):select MAX(编号) as 最大,MIN(编号) as 最小 from 厂家信息
    .....................................................................................
    分组:group by 条件
    如:select COUNT(*) from dbo.厂家列表 group by 厂家编号
    select 厂家编号,COUNT(*) from dbo.厂家列表 group by 厂家编号..........根据条件(厂家编号)来进行分组(编号一样的是同组),查询每个分组的行数,
    在COUNT(*)前面带上厂家编号是在结果集中显示厂家编号的信息。如果是多个条件则用逗号分开
    .....................................................................................
    union合并结果集(这个查询会把重复的去掉)
    联通查询就是两张表的查询结果集合并到一起显示,所以前提就是两张表的列数和数值类型(相容就行)要一样,一样的表才能合并在一起称为一张结果集表
    列联合查询例如:select 价格 from dbo.厂家列表 union select 编号 from dbo.厂家信息
    表联合查询例如:select * from dbo.厂家列表 union select * from dbo.厂家信息
    union all联合查询(这个不会去除重复)
    例如:select 价格 from dbo.厂家列表 union all select 编号 from dbo.厂家信息
    ...............................................................................
    数字函数
    abs()求绝对值,如:select ABS(-4).......返回一个4
    ceiling()舍入到最大整数数,“天花板函数”。如:select CEILING(3.1).......返回一个4
    floor()舍入到最小整数,“地板函数”,如:select FLOOR(3.9)..........返回一个3
    round()四舍五入,如(第是四舍五入参数,需要精确度参数):select ROUND(3.411,2).....得到3.41,因为精度到小数点位数位2
    ................................................................................................................
    字符串函数
    len(),计算字符串长度(个数)....text保存是字节,不能用len()
    datalength(),计算字节长度(处理了英文和数字,其他字符都是两个字节(UN...编码))
    转小写:select LOWER('A').....得到a
    转大写:select UPPER('a').....得到A
    去掉左侧空格:select LTRIM(' a a ')......trim()编程中去空格的函数
    去掉右侧空格:select RTRIM(' a a a ')
    去掉字符串左右两边的空格:select LTRIM(RTRIM(' a '))
    select SUBSTRING('早上好啊各位',1,2).....取得字符串('早上好啊各位')按指定位置'1'开始后取'2'位数,返回一个新字符串,这方法起始位置1开始算
    select right('abcdfed',2)....获取后2位
    select left('abcde',2).....获取前2位
    ...................................................................................................................................
    日期函数
    getdate(),获取当前时间
    dateadd(计算单位(年月日等),增量(正数为加负数为减),时间计算基数),计算增加后的日期,
    如:select DATEADD(D,2,GETDATE()),YEAR是年,MONTH是月,DAY是日,HOUR小时,N是分,
    datediff(计算单位,时间,时间(‘20xx-xx-xx’标准年的写法)),获取时间差,
    如:select DATEDIFF(YEAR,GETDATE(),'2010-10-10')
    datepart(计算单位,时间),获取日期的指定部分
    如:select DATEPART(DAY,GETDATE())
    用加减号计算:数据库时间一般是以天为基本计算单位
    select GETDATE()+1,加一天
    select GETDATE()-1,减一天
    select year('2010-11-11')....获取时间的年,mout,day都可以简单暴力
    .......................................................................
    case(相当于与switch case)
    当case指定的列中的某个值等于when指定的值,则会输出then指定的值
    select .............不要括号也可以,但严谨最好加括号,阅读性
    (
    case 价格
    when 20 then '正好'
    when 33 then '贵了'
    when 13 then '便宜'
    else '不买'
    end
    ) from dbo.厂家列表
    .................................
    当case不指定列由when指定列的时候when相当于(if()else())
    select
    case
    when 价格<20 then '正好'.........如果价格小于20则输出正好,否则下一个判断,知道else和end
    when 价格>33 then '贵了'
    when 价格=13 then '便宜'
    else '不买'
    end
    from dbo.厂家列表
    ......................................................
    类型转换函数
    cast(待转换 as 类型),select CAST(1111 as CHAR)....数字转换字符类型,select CAST('11' as integer)....字符转换数字类型
    convert(类型,待转类型), select CONVERT(datetime,'2012-11-10')
    ...................................................................
    空值处理:isnull(列,'处理显示明'),会把出现null地方替换称为指定字符显示
    如:select ISNULL(null,'未知')
    如:select ISNULL(价格,'未知')
    ......................
    where条件(where后面可以使用逻辑运算符)
    或者:or
    并且:and
    小于和大于:<,>
    大于等于:>=
    小于等于:<=
    不等于:!=
    not in():不包含,如果 a not in(c)...表示a中不包含c的部分
    ............................
    top限制结果集行数
    例如:select top 2 * from dbo.厂家信息....这样就限制显示的结果集行数为2行
    .....................................
    having条件
    在group by分组之后的结果集里面再次进行条件查询
    如:select a,count(*) from MYabc where group by a having count(*)<=1
    意思是根据a列的内来进行分组,查询a中每组的行数,并查询出a列的名称。然后在结果集中根据行数(having筛选的是结果集里的表不是原始表)进行条件筛选行数小于等于1的结果集。
    ............................................
    排序(语句最后面):
    升序用ORDER BY ASC:select * from 厂家信息 order by 编号 ASC..............根据编号这一列进行排序
    降序用ORDER BY DESC:select * from 厂家信息 order by 编号 desc
    多次排序排序(放前面的先排,后面在前面排序的结果里面再进行排序):select * from 厂家信息 order by 编号 desc,代码 ASC
    ............................................
    distinct去掉重复
    例如:select distinct 厂家编号 from dbo.厂家列表.....这样就在结果集中去掉厂家编号重复的部分了
    select distinct 厂家编号,价格 from dbo.厂家列表.....这里是组合(厂家编号,价格)看成一个元素是否重复
    ............................................
    通配符,
    过滤关键字like(像的意思)
    *,表示所有,但一般*不和like一起用,下面的才和like一起用
    %,表示任意长度的任意字符.包括0个,如:select * from 厂家信息 where 厂家名称 like '%华%'....索引厂家名称这个列中包含'华'子符的信息
    -(单个下划线),表示一个字符长度,如:select * from 厂家信息 where 厂家名称 like '_华%'....索引厂家名称这个列中包含第二个字符为'华'的信息
    [^a],表示非什么什么的,如:select * from 厂家信息 where 厂家名称 like '[^华]%'....表示非'华'开头的
    [a-b],表示包含,从a到b之间的所有,例如:select * from 厂家信息 where 厂家名称 like '[a-b]'....多用于数字和字母,因为电脑就识别这些

  • 相关阅读:
    Search in Rotated Sorted Array
    排序
    Find Peak Element
    Search a 2D Matrix II
    Search a 2D Matrix
    Search for a Range
    nodejs编译sass模块包 node-compass,与gulp包gulp-sass使用方法
    canvas基础学习
    决定整理一下canvas的基础学习
    网页宽高clientWidth clientHeight获得数值不对的问题
  • 原文地址:https://www.cnblogs.com/it-xcn/p/5709314.html
Copyright © 2020-2023  润新知