sql server 简单的复习语句和查询方法

左左,右右
左左中的第一个左表示,当我使用左连接时
左左中的第二个左表示,会显示左边表所有的数据

--交叉连接,产生笛卡尔积,是一种错误的结果,没有实际意义,漏了where中的关联条件就会产生这种错误
select s.* 
from  students s ,classes c
-- 内连接,标准写法
select s.* 
from  students s
inner join  classes c
on s.class=c.id
等价于下面的写法,下面的写法常用 

select s.* 
from  students s ,classes c
where s.class=c.id

--左连接
select s.* 
from  students s left join  classes c
on s.class=c.id
--上面的左连接造价于下面的右连接
select s.* 
from classes c  right join students s 
on s.class=c.id

---查询每个班级的最高成绩,最低成绩 

select c.id, c.name,max(s.score) as  最高成绩,min(s.score) as  最低成绩
from students s,classes c
where s.class=c.id
group by c.id,c.name -- group by 后跟上select语句中的非聚合函数列 ,c.id, c.name就是非聚合函数列
having c.name='2004'
order by c.id desc
--注意写的顺序
哪组有序
where 
group by
having 
order by


--查询所有未分班的学生
select * from students where class is  null
--查询所有已分班的学生
select * from students where class is not null
null是空值,可以理解为未经任何处理
''经过处理的
' '经过处理的
select null-5  只要是null参与运算的表达式结果都是null

select 1*0.1*10/10 

基本语法
select 列名1,列名2 from  表名

insert into 表名(列名1,列名2) values (值1,值2)

update 表名 set 列名1=值1,列名2=值2 where 列名3=值3

delete from 表名 where 列名3=值3

嵌套子查询
-- 子查询出现在where语句中,注意in 跟=的区别 in表示范围,=表示某一个具体的值
select * from students 
where class = (select id from classes where name='2004')

select * from students 
where class in (select id from classes )

-- 子查询还可以出现在from语句中 ,子查询查询出来的数据作为一个临时表参与查询
-- 子查询还可以出现在select语句中


备份还原数据库
1、备份
a、生成脚本
b、分离数据库
c、复制文件
d、选中要备份的数据库,右键-任务-备份--指定生成的文件名,通常是以.bak为后缀名
e、自动备份
     1、在服务里面启动sqlserver代理服务(agent)
      2、在代理服务里面的作业文件夹,右键--新建作业
      3、在弹出的窗口里面--general--给作业起名
      4、步骤:新建步骤--把代码考进来,注意修改数据库名称、备份文件的路径 
      5、计划:设置执行时间,可以每天、每周、每月
  在作业活动监视器里面可以马上执行这个作业,查看效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值