T-Sql查询小计总结

来源:互联网 发布:python主函数 编辑:程序博客网 时间:2024/05/18 10:29

查询总结
基本查询
  
 1、select * from department
 2、distinct 去除重复行
    top 5
    top 10 percent
 3、聚合函数
  --avg() 平均值
  --sum 求和
  --count 求行数
  --min 求最小值
  --max 求最大值
 4、带条件查询
  select 列 from 表 where 条件
  between...and...
  in (1,3,5)  lie = 1 or lie =3
  模糊查询 like  %代表任意多字符  _代表任意单个字符   [0-9][a-Z]不区分大小写 [acd]  匹配范围内的单个字符
 5、查找null值 is null   is not null=================
  
 6、对查询排序 order by 列名 asc升序(可省略)
        desc 降序
 7、难点====分组查询group by...having
  在分组查询中,查询的列名
  必须出现在group by后或者在聚合函数中
  --查询平均工资大于两千块钱的部门
  select department_id,avg(wages)
  from employee
  where department_id  is not null
  group by department_id
  having avg(wages)>2000
 以上都是要掌握的,下面是要了解的
 8、同时插入多条语句
  把查询到的结果插入到现有表中
   insert into 现有表
   select 字段
   from 表
  把现有表的数据插入到一个新表 
   select 字段
   into 新表
   from 表
  --把现有表的数据插入到新表(表不能存在)
  --select * into newStudent from student
  --把现有表的数据复制到一个已存在的表
  --insert into backupStudent select * from students
  
 9、合并查询union 去除重复项
  union all 不去除重复项 所以效率高
     一次插入多条数据
  insert into Score(studentId,english,math)
  select 1,80,100 union
  select 2,60,80

函数
 1、ISNULL(expression,value)     如果expression不为null返回expression表达式的值,否则返回value的值
 2、字符串函数
  LEN() :计算字符串长度
  LOWER() 、UPPER () :转小写、大写
  LTRIM():字符串左侧的空格去掉
  RTRIM () :字符串右侧的空格去掉
  LTRIM(RTRIM('         bb        '))
  LEFT()、RIGHT()  截取取字符串
  SUBSTRING(string,start_position,length)
  参数string为主字符串,start_position为子字符串在主字符串中的起始位置(从1开始),length为子字符串的最大长度。SELECT  SUBSTRING('abcdef111',2,3)
  REPLACE(string,oldstr,newstr)
 3、日期函数
  GETDATE() :取得当前日期时间
  DATEADD (datepart , number, date ),计算增加以后的日期。参数date为待计算的日期;参数number为增量;参数datepart为计量单位,可选值见备注。DATEADD(DAY, 3,date)为计算日期date的3天后的日期,而DATEADD(MONTH ,-8,date)为计算日期date的8个月之前的日期
  DATEDIFF ( datepart , startdate , enddate ) :计算两个日期之间的差额。 datepart 为计量单位,可取值参考DateAdd。
   
  DATEPART (datepart,date):返回一个日期的特定部分 整数
  DATENAME(datepart,date):返回日期中指定部分 字符串
  YEAR() MONTH() DAY()
 4、类型转换函数
  CAST ( expression AS data_type)
   case(score as varchar(10))
  CONVERT ( data_type, expression[,style])
  取日期部分
   2012-12-21
   1、CONVERT(varchar(100),getdate(),23)
   2、CONVERT(varchar(10),getdate(),21)


嵌套查询(子查询)
 子查询返回的值不止一个。
 --当子查询跟随在 =、!=、<、<=、>、>= 之后,或 子查询用作表达式时,这种情况是不允许的。

 在子查询中,一搬我们会使用in 代替 =使用
 select employee_id,employee_name
 from employee
 where department_id in
 (select department_id
 from department where department_name='销售部')
连接查询
 内连接  inner join...on...
  查询满足on后面条件的数据
 外连接 
 

原创粉丝点击