黑马程序员SQL SERVER 第二天

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ---------------------- 

删除数据

1:删除表中的全部数据:delete from T_Person

2:delete只是删除数据,表还在,和Drop Table不同

3:delete也可以带where子句来删除一部分:delete from T_perosn where Age>20;

数据检索

1:简单的数据检索:select  * from T_Employee  * 代表所有的字段

2:只检索需要的列:select  Fnumber from T_Employee,select FName,FAge from T_Employee

3: 列别名:select FName As 姓名 from T_Empolyee(用关键字as取别名)

4:使用where 检索符合条件的数据:select FName from  T_Person

where FSalary<5000;

5:还可可以检索不与任何表关联的数据 select 1+1,select newid();

select  getdate(); 

聚合函数

Select count  (*) from T_Employee—检索表里总共有多深条数据

Select max  (FSalary) T_Employee—查询最高工资

Select min(FSalary)  T_Employee

Select  avg(Fsalary) T_Employee—平均工资

Select sum (Fsalary)  T_Employee—总共的工资

Select count(FSalsry) T_Employeewhere FSalary >5000—查询工资大于等于5000的人数

数据排序:

1:order by 子句位于select 语句的末尾,它允许指定按照一个列或者多个列进行排序,还可以指定排序方式升序(从小到大 ASC),还是降序(从大到小DESC)

2:按照年龄升序排序所有的员工信息的列表:select * from T_Employeeorder by FAge ASC

3:按照年龄从大到小排序,如果年龄相同则按照工资从大到小排序:select * from T_Employeeorder by FAge desc ,FSalary desc

4:注意,order by 子句要放到where 子句之后:select * from T_Employee where Fage >23 order by Fage desc,FSalary Desc,越靠前越优先

通配符(模糊匹配)

1:通配符过滤使用like

2:单字符的通配符使用为半角下划线“_”它的匹配单个出现的字符,一任意字符开头,剩余的为Erry:select * from T_Employee where FName like ’_erry’

3:过个字符匹配的通配符为半角百分号“%”,他的匹配任意次数(零或多个)出现的字符“K%”匹配以“K”开头,任意长度的字符串,检索姓名中包含字母“N”的员工信息:select * from T_Employee where FName like ‘N’

select * fromT_Person where Namelike '_ion'

select * from T_Person where Name like '%小%'

空值的处理

1:数据中,一个列如果没有指定值,那么值为NULL 这个NULl和C#中的NULL,数据库表示不知道,而不是表示没有,因此,select null+1,因为不知道加1,结果还是不知道
2:select * from T_Employee where Fname=null;

Select * from T_Employee where Fanme !=null

都没有返回任何结果,因为数据库也不知道 Sql 中表示不知道

3:sql 中使用is null not null来进行判断空值,select * from T_Employee where Fname is null/not null

select * from T_Person where Name is not null

多值匹配

Select Fage,FNumber,FName from T_Employee where FAge in(1,56,34)查询年龄在这个范围类的人

Select * from T_Employee where FAge>=23 and FAge<=27;

Select * from T_Employee where FAge between 23 and 27

select * from T_Person whereAge between 12 and78 order by Agedesc

对数据进行分组

1:按照年龄进行分组统计各个年段的人数

Select FAge,Count(*) from T_Employee grou by Fage;

2:group by 子句必须放到where语句的之后,

3:没有出现在group by你子句中的列是不 能放到select语句后的列名中(聚合函数中除外)

错误:select FAge,FSalary from T_Employee Group by FAge

正确:select FAge,Avg(FSalary) from T_Employee group byFAge

聚合函数不能出现在where子句中 应用havingcount(*)>1

Having 是对分组后信息过滤,能用的列和select中的列是一样

select Code,count(*) as 总数from T_mobile

group by Code

having count(*)>100

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ---------------------- 详细请查看:http://net.itheima.com/  

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值