SQL Server基础操作(此随笔仅作为本人学习进度记录二)

 批量化更改字段中的数值(对教师进行涨工资)

use LtsDatabase试验 
update 教师表 set 教师编号=120,教师薪资=教师薪资+1000,教师姓名='于老师',教师职称='高级教师'


                     
            为数据库中的字段插入对应的值

insert into 教师表(教师编号,教师工资,教师姓名,教师职称) values(1,3000,'高老师','高级教师')



            
             从数据库中删除一条记录
delete from 教师资料 where 教师编号=1      \从教师表中删除教师编号为1的记录
delete from 教师资料 where 教师薪资<4000   \从教师表中删除教师薪资小于4000的记录
 
                  

             创建表案例(网站职员表)
use LtsDatabase
create table 网站职员表
(
职员编号 int,
姓名     varchar(50),
年龄     int,
毕业院校 varchar(50),
家庭住址 varchar(50),
工资     money
)



insert into 网站职员表(员工编号,姓名,年龄,毕业院校,家庭住址,工资) values (1,张三,25,哈尔滨工程大学,8000,) \向网站职员表中插入该条记录
select * from 网站职员表 where 工资>=6000      \在网站志愿表中查询条件为工资大于等于2700元的相对应的记录
                        (where是条件)

select * from 网站职员表 where 工资>5600 or 工资=10000 \查询语句的另一种查询方式,满足其中任意条件即可查询
                                        (or是或的意思)
select * from 网站职员表 where 年龄=25 or 工资=10000 (毕业院校='哈工大'毕业院校!='哈工大'=等于 !=不等于)   \语句比较灵活,举一反三


                                         
                            

                                运算符
                              
                               逻辑与运算符(andselect * from 网站职员表 where 年龄=25 and 毕业院校='哈工大'  \这两个条件中有一个不满足都不能执行


                               
                            not运算符

select * from 网站职员表 where not 工资>2700           \查找工资不大于2700元的字段

select * from 网站职员表 where 工资!<2700              \查找工资不大于2700元的字段




                            运算符的优先级
1.括号     2.Not(非)、正号、负号   3.乘、除   4.加、减   5.比较运算符  6.And  7.Or 

\and要求左右两边的条件必须都满足


select * from 网站职员表 where (毕业院校='哈工大' or 毕业院校='浙江大学') and 年龄=25
                                \括号里面单独运算,满足任意条件与and在一起执行



select * from 网站职员表 where 毕业院校='哈工大' or 毕业院校='浙江大学' or 毕业院校='东北大学' \满足其中任意一个都可以


                                  
                         in()运算符\在括号里面,满足任意条件都可执行

select * from 网站职员表 where 毕业院校 in'哈工大','东北大学','沈阳工程学院')    \in符合此条件

select * from 网站职员表 where 毕业院校 not in'哈工大','东北大学','沈阳工程学院') \not in 不符合此条件

select * from 网站职员表 where 家庭住址 is Null                                       \家庭住址为空值的

select * from 网站职员表 where 工资>=2000 and 工资<=2800                               \工资大于等于2000元并且工资<=2800元

select distinct 毕业院校 from 网站职员表                                                \消除重复的记录,只显示不同毕业院校的

select * from 网站职员表 where 工资 in(select 工资 from 网站职员表 where 姓名='小江')    \首先执行括号里面小江的工资,小江的工资等于2800元,
                                   (=)\这里既可以用in也可以用=号                         然后执行wher 后面工资in包括2800元所有员工的字段



                    

                              多表嵌套查询+统计函数


use LtsDatabase
create table 网站经营项目
(
项目编号 int identity(1,1) primary key, \设置标识种子和标识自增量分别为1,将其定义为主键,
项目名称 varchar(50),
负责人   varchar(50),
合作单位 varchar(50)
)


select * from 网站职员表 where 姓名 in(select distinct 负责人 from 网站经营项目)       \从网站职员表中查询到符合条件的记录,从网站经营项目表中查询到负责人这个字段的值
                                              distinct\去掉多余的,重复的


select * from 网站职员表 where 姓名 in(select distinct 负责人 from 网站经营项目) order by 年龄 asc \通过年龄进行排序,年龄从小到大排序,默认为正序进行排序




!!!\ORDER BY 子句 按照递增或递减顺序在指定字段中对查询的结果记录进行排序。(默认情况下从小到大进行排序)

!!!\SQL 语句中, asc是指定列按升序排列,desc则是指定列按降序排列。排序子句语法:order by 列名 asc/desc,(递增/递减)


                                              SUM函数

select COUNT(*) as 记录行数 from 网站职员表 \COUNT统计函数,统计查询出来的符合条件的记录有多少条,(*)表示所有字段,as后面是列的名称
             (作为)  

select SUM(工资) as 员工工资总额 from 网站职员表 \SUM(工资)!*为计算所有人员的工资总额,as员工工资总额!*为自定义的列名称,from员工职员表!*为从员工职员表中计算。

 
                                              AVG求平均值
select AVG(工资) as 平均工资 from 网站职员表

                                              MAX求最高值
aelect max(教师薪资) as 最高工资 from 教师资料 
                                              min最低值
                                              
aelect min(教师年龄) as 最小年龄 from 教师资料 
原文地址:https://www.cnblogs.com/LNCC-ZhangXiang/p/10825147.html