SQLServer之T-SQL增、删、改、查

增-插入语句:
insert into 表名 (列名,列名,列名)
values (数据,数据,数据)
如-添加3班的张三成绩为90到成绩表中:
insert into 成绩表 (姓名,成绩,班级)
values (张三,90,3)
·列名可以不加,不加列名数据会跟随表的字段顺序写数据
删-删除语句:
1、delete from 表名 [where 条件]
·where子句可以不加,如果不加where意思就是直接删除整个表
如-在成绩表中删除成绩小于60的学生信息:
delete from 成绩表 where 成绩<60
2、truncate table 表名
·意思也是直接删除整个表
3、truancate table 和 delete的区别:
·truncate table后不跟where子句;而delete可以where,按条件删除数据
·truncate table不记录事务日志,所以删除后数据无法恢复;而delete相反
·truncate table删除后会重置标识符列;delete语句不会
·truncate table不能用于有外键约束引用的表。
改-更新语句:
update 表名 set 列名=更新值 [where 条件]
·where子句不加会更新所有数据
如-在成绩表中给张三的成绩加两分:
update 成绩表 set 成绩=成绩+2 where 姓名=’张三’
查select-查询语句:
1、select 列名 from 表名 where 条件
2、select语句参数:
·into:把查询结果保存到一个新的表中
·from:跟要查询的表
·where:查询条件
·group by:分组查询
·having:与group by一起使用,查询条件
·order by:将查询结果排序;desc为降序,asc为升序,不加默认升序br/>3、表达式
⑴条件表达式
SQLServer中的表达式可以包含下列一个或多个参数
·常量:表示单个指定数据值的符号。一个常量由一个或多个字母,数字字符(字母a-z、A-Z、数字0~9)或符号(!、@、#等)组成。字母,日期和时间数据类型的常量需要用单引号括起来,二进制字符串和数字常量则不需要
·列名:表中列的名称,表达式中仅允许使用列的名称
·一元运算符:仅有一个操作数的运算符,其中“+”表示正数,“-”表示负数,“~”补数运算符
·二元运算符:将两个操作数组合执行操作的运算符。二元运算符可以是算术运算符、赋值运算符(=)、位运算符、比较运算符、逻辑运算符、字符串串联(或连接)运算符(+)或一元运算符。下图为比较运算符。

·like语句通配符:‘-’表示任何单个字符;‘%’任意长度的字符;[]表示括号内指定的字符;[^]表示不在括号内的字符
⑵逻辑表达式
not:不是,与其他操作符一起起反义
and:和,两个条件同时满足
or:或者,两个条件满足一个

操作部分
1、查询products表中所有的列:select from products

2、查询products表的特定列(名称,成本):select 名称,成本 from products

3、查询成本在1到5元之间的水果:select
from products where 成本 between 1 and 5

4、查询前5行:select top 5 from products

5、改变查询结果集的列名(查询西瓜的名称和成本信息并显示为name和cost):
select 名称 as name,成本 as cost from products where 名称=’西瓜’

6、查询结果排序(查找所有的水果并按成本的降序排序):select
from products where种类=’水果’ order by 成本 desc

7、分组查询(查询各种类的平均成本并按平均成本成本排序):select 种类,avg(成本) as平均成本 from products group by 种类 having avg (成本)>20 order by avg(成本)

8、将查询结果保存到一个新表中(查询所有的水果并将结果保存到newproducts表中):select into newproducts from products

刷新一下表

可以看到新的newproducts表

9、like子句(查询出所有的经理):select
from [员工信息表-2] where 职位 like ‘%经理%’

10、多表查询内连接(从学生基本信息表和学生成绩表中查找参加考试的学生的姓名和CNT成绩、电话):select S.姓名,S.电话,C.CNT from 学生基本信息表 as S inner join 学生成绩表 as C on S.姓名=C.姓名

11、左/右外连接:select S.姓名,S.电话,C.CNT from 学生基本信息表 as S left/right outer join 学生成绩表 as C on S.姓名=C.姓名(以左外连接为例)

12、自连接(在员工信息表2中查找每个员工的上司姓名):select Y.员工姓名,S.员工姓名 as 上司姓名 from 员工信息表 as Y inner join 员工信息表 as S on Y.上司ID=S.员工ID

13、子查询(在生产表中查找每个季度的生产数量、百分比):select 季度,sum(生产数量) as 每个季度的生产数量,str((sum(生产数量)/(select sum(生产数量) from 生产表))*100)+'%' as 百分比 from 生产表group by 季度 order by 季度

14、子查询(在where子句中使用select 在成绩表和学生表中查找课程ID=1并且成绩〉80的学生):select 学生表.姓名 from 学生表 where 80<(select 分数 from 成绩表 where 学生表.学生ID=成绩表.学生ID AND 成绩表.课程ID=1)

转载于:https://blog.51cto.com/13434336/2094785

你可能感兴趣的:(SQLServer之T-SQL增、删、改、查)