6.SQL Server Sql语句

1.Select  查询

select  *  from  users                                                                                      查询用户表所有信息

select name,age as 年龄 from users  Where name='zhangsan' and age=10          增加查询条件

select  12 * 13 as 计算结果 into userInfo                                                            执行结果插入到一张新表 

select  name from  users  order by age desc, Num desc                                      排序   desc 降序 Asc升序

 

group by 分组查询   AVG(列名) 平均值  Coung() 合计行

//根据不同的员工类别   来分组查询有多少人  是属于不同的员工类别的  

select COUNT(*) as 合计 ,员工类别   from users group by员工类别        

 

 Group by 有两个关键字 cube 和 rollup 

 

2.Select 函数

AVG(column) 返回某列的平均值

FORMAT()

 FORMAT 函数用于对字段的显示进行格式化。
 NOW() 
 NOW 函数返回当前的日期和时间。
合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。  GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
COUNT(column) 返回某列的行数(不包括NULL值)
COUNT(*) 返回被选行数
COUNT(DISTINCT column) 返回相异结果的数目
FIRST(column) 返回在指定的域中第一个记录的值(SQLServer2000 不支持)
LAST(column) 返回在指定的域中最后一个记录的值(SQLServer2000 不支持)
MAX(column) 返回某列的最高值
MIN(column) 返回某列的最低值
STDEV(column)  
STDEVP(column)  
SUM(column) 返回某列的总和
HAVING   在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
   

 查询  分组   排序   去读取数据~~~

 

 

3. Insert插入数据 

INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

/*这里是向表中所有的列插入数据  省略 values*/ 

3.1    insert into student values('1','jack',20);

 

数据表备份~ 

SELECT INTO 语句   new table 必须是是不存在的

SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。

SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。

SELECT * INTO new_table_name [IN externaldatabase]  FROM old_tablename

3.2

select * into #temp1 from table1   //这里先将数据保存在临时表中

 

3.3

从其他数据表读取数据插入到列中

Insert Table  (列名称)   Select  (列名称)  from 表名称  where...

如: 只插入一列

insert  test(AreaName)   select Name from OT_User

如:插入表中所有行  前提是表中的结构是相同的

insert ceshi1 select * from ceshi

 

 

4.Update 更新数据

UPDATE top  表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

如:update top (10)   CountTable   set AreaName='China'     where ......      //更新前10行 

     

  4.1 Update 使用from  子句   更新的数据 来自于不同的表中

    使用多表链接的方式将 其他表的数据更新到我们的表中~    

  如:

update 学生信息  set  性别=b.sex , 家庭住址=b.address    
 from  学生信息 a   join  学生入学登记 b on  a.姓名=b.name 
where b.sex='男'

--学生信息表中 性别和家庭住址  初始为空 
--通过多表关联  学生登记表   只要条件符合的 数据就可以更新到 学生信息表中~

  

5.delete 语句  DELETE 语句用于删除表中的行。

DELETE FROM 表名称 WHERE 列名称 = 值   不加where  删除表中所有行~

 

6. Top 关键字  及表达式

select  top 10 * from users            --查找10行显示
 
select top 10 percent from users       --查找10%的行显示

另一种使用变量的方法

declare  @i int    --声明变量i
set @i=20         --变量i赋值20
select top (@i) * from OT_User   --查询前20行数据
top 使用变量 查询

查询10行数据 如果第10行 和下面行的   数据相同  一起并列显示  

with ties一般是和Top , order by相结合使用的    如果top的排序列 最后一行 和 下一行相同    会显示排序列的多行值  

select  top 3  with  ties * from ceshi order by AreaDesc  desc    --查找3行数据 根据 AreaDesc 进行排序 如果第4行的 AreaDesc 数据    和第3行AreaDesc  数据相同  就会并列显示 4行数据

 

 

7.COMPUTE 子句  对已经查询后的结果集  进行合计  比如 求平均值  最大值  求和 等等

  compute by 子句  COMPUTE 子句在结果集内生成控制中断和分类汇总。   必须和 order by 一起使用

 compute by 子句   根据查询的结果 根据order by 列名    再次进行汇总~~~

 

查询用户表 后的结果集 进行 操作    最大值(职级),最小值(职级),count(职级)  合计当前职级的行数    根据  职级来进行汇总  前提  order by 职级列

select * from OT_User  order  by  EmployeeRank  compute Max(EmployeeRank),Min(EmployeeRank),count(EmployeeRank)   by EmployeeRank 

 

 

 

 

8.where   

IN 操作符   相反还有  not  in 

IN 操作符允许我们在 WHERE 子句中规定多个值。

SQL IN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

 

posted on 2017-03-27 17:57  逆方向  阅读(231)  评论(0编辑  收藏  举报

导航