SQL语句
一:基本查询:
(1)插入单行数据
insert into 表名(列名1,列名2,列名3,……)values(值1,值2,值3……)from 表名
(2)将现有表中的数据添加到新表中
insert into 新表名(列名1,列名2,列名3,……)select(值1,值2,值3……)from已存在表的表名
select 表名1.列名1,表名1.列名2……into 表名//不需先创建表
(3)创建标识列
select identity(数据类型,标识种子,标识常量)as 列名into 新表form原始表
(4)使用union关键字插入多行数据
insert 表名(列名1,列名2,列名3,……)
select 列名1,列名2,列名3,……union
select 列名1,列名2,列名3,……
(5)更新某行数据
upadate 表名set列名1=更新值,列名2=更新值……
where 列名1=原始值,列名2=原始值……
(6)删除数据行
delete from表名where条件
注意:不能删除有主键被其他表引用的行!
truncate table 表名
注意:此语句用来删除表中所有行,但是表的结构、列、约束等不变。且不能用于有外键约束的表
(7)限制查询返回行数及按百分比返回
select TOP 行数 列名1,……from 表名 where条件
select TOP PRECENT列名1,……from 表名 where条件
(8)LIKE查询
select *from 表名where列名LIKE'zhang%'
(9)between查询
select *from 表名where列名between 数值范围
(10)In查询
select 列名from列名where列名(not)In('字符值1','字符值2',……)order by 列名
字段字符串去重复(11)使用聚合函数查询
select 聚合函数(列名)from表名where条件
(12)分组查询
select 列名1,聚合函数(列名)from表名group by 列名1
(13)having筛选
select 列名1,列名2,……from表名group by 列名,列名……having count(*)>1
(14)使用distinct去除重复信息
  select distinct 列名 from 表名
(15)NULL值的判断
  空值运算符:is(not)NULL
  注意:不能用<>代替上面的语句
(16)组合查询
    使用AND OR 运算符
(17)关于IN和 NOT IN查询
  在条件中添加语句:where 列名IN(not in)('values1'……)
(18)IN 与OR 可以互换,已达到同样的效果
(19)NOT 运算符
    NOt 即对查询条件取反
    注意:NULL 取反仍为NULL
(20)NOT与BETWEEN组合使用
    列名 NOT BETWEEN 40 AND 60
(21)LIKE 模糊查询
    %"通配符:表示任意的字符匹配,且不计字符的多少
    列名 LIKE '计算机%'表示此列是以"计算机"开头后接任意的字符
    列名 LIKE '%计算机'表示此列是以"计算机"结尾前面接任意多的字符
    列名 LIKE '%计算机%'表示此列是含有"计算机"前后接任意多的字符
    列名 LIKE '基础%计算机'表示此列是以"基础"开头,以"计算机"结尾中间可含有任意多的字符
  "_"通配符表示任意一个字符的匹配,且知道列名含有的字符个数
              列名 LIKE '计算机__'表示此列含有五个字符
    "[]"通配符用于指定一系列字符,只要满足这些字符其中之一,且位置出现在[]通配符的位置的字符串就满足查询条件
        列名 LIKE '[计生]%'表示要查是以"计"字,或是以"生"字开头的列名
        列名 LIKE '[^计生]%'表示要查所有不以"计"字,或是以"生"字开头的列名
        注意:用NOT和用^能达到同样的效果
(22)使用ESCAPE定义转义字符
    LIKE '%M%'ESCAPE ‘M’
  注意:上面第二个%号是实际值,不作为通配符
二:连接符、数值运算和函数
(1)连接符:+,||用于连接表中的两列或者多列数据,使他们作为一列供用户查操作
          Select 列名1+列名2,列名4 from 表名
          注意:相连接的列名的数据类型应当相容,若不相容就要强制转换如下:
            select 列名1+CAST(列名2 AS 数据类型),列名4 from 表名
          另注意:若有一列名为NULL则连接后结果也为空
(2)数值运算:加、减、乘、除、取余%
              Select 列名1*列名2,列名4 from 表名
              注意:相运算的两列必须是数值型,若是数据类型不同但同为数值(比如说:                学号有人为char型,有的人为int型)就要强制转换如下:
            select 列名1+CAST(列名2 AS 数据类型),列名4 from 表名
(3)函数:
字符处理函数:ASCII(字符表达式),返回字符表达式最左端字符的ASCII码值
                  CHAR(INT 型表达式)将ASCII码转换为字符。若没有输入0~255之间          的ASCII码值,函数将会返回NULL值
                    LOWER(字符表达式)和UPPER(字符表达式),分别将字符转换为小写和大写
                    LTRIM(字符表达式)和RTRIM(字符表达式),分别将字符串头和尾部的空格去掉
                    LEFT(字符表达式,int值)返回从字符串最左边起,到第int值个字符的部分
                    RIGHT(字符表达式,int值)返回从字符串右边第int值个自符起,到最后一个字符的部分
                    SUBSTRING(字符表达式,开始位置,长度)返回部分字符串是从左边"开始位置"起到指定"长度"结束
                    REPLICATE(字符表达式,int值),返回一个重复"字符表达式"指定次数的字符串
                    REVERSE(字符表达式)将指定的字符串的字符排列顺序颠倒。
                    REPLACE(字符表达式1,字符表达式2,字符表达式3),用"1"替换在"2"中的子串"3"。
          日期函数:DAY(date_expression),返回date_expression中的日期值
                      MONTH(date_expression),返回date_expression中的月份值
                      YEAR(date_expression), 返回date_expression中的年份值 
                      DATEADD(datepart,number,date),返回指定日期date加上指定的额外日期间隔number产生的新日期
                    DATEDIFF(datepart,date1,date2),返回date2超过date1的差距值,是个整数值
                    DATENAME(datepart,date,),以字符串的形式返回日期的指定部分,此部分由datepart来指定
                      DATEPART(datepart,date),以整数的形式返回日期的指定部分。此部分由datepart来指定
                      GETDATE()返回系统当前时间
            CONVERT()函数转换日期,时间
                    convert(date_type,expression,style)date_type为要转换成的数据类型,expression为DATATIME类型的数据,style为指定的转换形式。
                    常用转换形式日期时间综合类型:0,9,13,20,21
                                  时间类型:8,14
                                  日期类型:1,2,3,4,5,6,7,9,10,11,12
        聚合函数:sum(列名):只能作用于数值类型的列,若该列存在NULL值,求和函数会忽略该值。
                  max(列名):可以是数值、字符串、日期时间类型
                  min(列名):可以是数值、字符串、日期时间类型
                  avg(列名):只能作用于数值类型的列,若该列存在NULL值,求和函数会忽略该值。
                  count(列名):用来计算表中记录的个数或者列中值的个数,可以为*号,若含有NULL值则会忽略。
聚合分析的重值处理:可以使用ALL关键字对所有行数据进行处理,使用DISTINCT关键字指明对所选列中的非重值数据进行行处理。
                    select AVG ALL或DISTINCT 列名 from 表名

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。