黑马程序员_SQL Server学习第二季

 

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

 

 

数据分组

 

Group by列名 按列名分组出现在where之后

 

在数据分组的时候不能出现没有在group by后面的列名的聚合函数除外

聚合函数是不能出现在where语句中的如果要使用则需要用having语句

 

Having 语句出现在group by 语句之后,它后面出现的字段必须在select中出现过的

Having是对分组后信息的过滤无法代替where

 

Top 值取出某一段数据

 

子查询(in not in

Select top 3 from Users where age not inselect top 5 from Users order by age DESC)取出年龄排69位的的信息

 

Distinct针对整行的,取出不重复的值的行

 

Union 链表查询上下两个字段个数一样、数据类型必须要相容如果不同要补足其结果  会将重复的数据去掉

Union all不去掉重复数据

Union 执行效率低因为执行的时候要判断数据是否重复因此如果不确定是否去掉重复数据就使用union all

 

ABS()求绝对值 CEILING()舍入到最大整数 FLOOR()舍入到最小整数  ROUND()四舍五入 LEN()取长度 ltrim()去掉左边的空格 rtrim()去掉右边的空格没有trim()。。

Substring()截字符串,Substringstringstart_positionlength string为主字符串,start_position为主字符串中的起始位置,length为子字符串的最大长度

Getdate()获得当前日期

Dateadd()计算增加以后的日期

Datediff()计算两个日期的差额

DatePart()返回一个日期的某个部分

 

类型转换

Cast()

Convert()

Select cast’123’ as int,convert(datetime,’2009-02-09’)

空值处理函数

Select isnull(列名) from表名

Case相当于switch中的case

Case i

When value1 then returnvalue1

When value2 then returnvalue2

。。。。与switch case一样

Select 列名,

case 列名

When value1 then returnvalue1

When value2 then returnvalue2

。。

Else returnvalue

End

 

索引index

 

全盘扫描:对数据进行检索(select)效率最差的是全表扫描,就是一条条的找.

 

创建索引的方式,在表设计器中点击右键,选择索引/→添加→在列表中选择索引包含的列.

使用索引能提高查询效率,但是索引也是占据空间的,而且添加\更新\删除数据的时候也需要同步更新索引,因此会降低insert\update\delete的速度.只在经常检索的字段上创建索引.

即使创建了索引,仍然有可能全表扫描,比如like/函数/类型转换等.

Join 表连接

表与表之间存在某种关系(外键)在链表查询的时候需要用到join

Select 11,22 from 1 join 2 on1=2 (1与表2存在关联的键)

可以用as简化表12

 

子查询:将一个查询语句作为一个结果供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询.所有可以使用表的地方几乎都可以使用子查询代替.

只有返回且返回一行、一列数据的子查询才能当成单值子查询.

 

Row_Number() over (排序规则) as别名   SQLSERVER 2005以后出现的函数相当于top的作用结合子查询用

 

数据库设计的三大范式:

1.         第一范式(1NFNormal Formate

第一范式的目标是确保每列的原子性即不可分性;如果每列(或每个属性值)都是不可再分的最小数据单元(也称为最小的原子弹元)。则满足第一范式(1NF-----不可分性

2.         第二范式(2NF

第二范式在第一范式的基础上,更进一层,其目标是确保表中的关系满足1NF,并且出了主键以外的其他列,都依赖于改主键,则满足第二范式。(2NF----都与主键相关

3.         第三范式

第三范式在第二范式的基础上,更进一层,第三范式的目标是确保每列都和主键列直接相关,而不是间接相关:如果一个关系满足2NF,并且除了主键以外的其他列都不依赖于主键列,则满足第三范式。(3NF---------不存在传递依赖

 

 

 

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

 

详细请查http://net.itheima.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值