黑马程序员_MSSQLServer知识总结

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


DBMS 数据库管理系统

DataBase Managment System、


数据定义语言(dll)

数据库创建代码:(SQLServer大小写不敏感)

CREATE DATABASE 数据库名称
ON
(NAME = library_data,
 FILENAME = 'D:\mydatabase\library_data.mdf',
 SIZE = 10,   --默认为MB     数据库大小
 MAXSIZE = 10,                    --最大size
 FILEGROWTH = 5)            --增长值
LOG ON
(NAME = library_log,
 FILENAME = 'D:\mydatabase\library_data.ldf',
 SIZE = 5MB,  --显示声明 MB
 MAXSIZE = 50MB,
 FILEGROWTH = 5MB)


数据库表的创建:

CREATE TABLE 表名

(

列名1,列的数据类型,[是否为空],

列名2,列的数据类型,[是否为空],

...

[primary key(列名)]  --设置主键

)


主键:用来标识数据的唯一性

定义主键的数据类型一般用2中(int和Guid算法(产生的数据永远不会重复))

Guid在SQLServer中得生成代码:newid()

Guid在dotnet中得生成代码:Guid.NewGuid()


int自增字段的优点:占用空间小,无需开发人员干预、易读;

缺点:效率低,数据导入导出的时候很痛苦;

Guid的优点:效率高、数据导入导出方便;

缺点:占用空间大,不易读,但是业界主流倾向Guid(一般内存都不是问题)


数据操作语言(dml)

数据插入:

insert into 表名(列名1,列名2,...)values(值1,值2,...)
insert into 表名 values(值1,值2,...)  如果依次插入,可以省略字段名
insert into 表名 (id)  values(newid())  调用Guid函数自动生成代码

数据更新:

更新一个列:update 表名 set 字段名=值;
更新多个列:update 表名 set 字段名=值,字段名='值‘

带过滤语句的条件:update 表名 set 列名=值 where 限制条件


数据删除:

删除表中全部数据:delete from 表名

删除表中一行或多行数据:delete from 表名 where 限制条件
删除表:drop 表名


数据检索:

select * from 表名  检索所有字段

where 限制条件     检索自定义条件下得所有字段

as 取别名

聚合函数:count(*) 检索表中的数据条数  min(列名) 查询最小值  max(列名) 查询最大值 avg(列名) 查询平均值

order by:对数据进行排序 asc 升序排序 desc 降序排序


通配符(模糊查询)like:

单字符(_)  like ’_*'   多字符(%)  like %*%

空值处理:SQLServer里边null 表示不知道,而不是空值

查询空值:is(not)

in和between...and...   查询限定条件范围内的数据


数据分组:

group by 需要分组的列名

having用于对分组后的信息进行过滤


top:查询检索数据的前*行   select top 3 * from 表名


alert:向表中增加新字段

distinct:去除检索出数据的重复值

union:合并查询结果(两个所要查询的字段类型、个数要相同),union会自动去除重复项      如果不想去除重复项,则可以用 union all


SQL函数


数字函数

ABS(被求的值)  求绝对值
ceiling(需要舍入的数) 舍入到最大数
floor(需要舍入的数) 舍入到最小数
round(需要舍入的数) 四舍五入

字符串函数

len(所要计算的字符串) 计算字符串的长度
lower(要转换的数据)、upper(要转换的数据)  转小写、大写
ltrim(字符串) 去除字符串左边的空格
rtrim(字符串) 去除字符串右边的空格
ltrim(rtrim(字符串))  去除字符串两边的空格
substring(被截取的字符串,截取位置,截取长度)  截取字符串

日期函数

getdate() 获取系统当前时间
dateadd(datepart,number,date) 计算增加以后的日期         datepart为计量单位

,number为增量,date为待计算日期
datediff(datepaert,startdate,enddate) 计算两个日期的差额   datepart为计量单位

,startdate为开始日期,enddate为结束日期
datepart(datepart,date) 返回一个日期的特定部分             datepart为计量单位

,date为带计算日期

类型转换函数

cast(被转换的数据 as 数据类型)

case函数用法1(单值判断,相当于switch case)
case 表达式
when value1 then return value1
when value2 then return value2
when value3 then return value3
...
else 返回默认值
end

case函数用法2(用于限定条件)
case
when 范围值 then return value
else 返回默认值
end

convert(数据类型,被转换的数据)  //两个都用作类型转换
isnull(被判断的值,'佚名') 判断空函数  如果被判断的值为空,则为后边的参数,如果不为空,则为被判断的值




row_number()  SQLServer内置函数  行号,是查询更为方便



索引 就相当于书中的目录,方便查找


在查询中经常用的字段上(where)可以为该字段创建一个索引,提高查询速率

为字段建索引方法(表名->修改->字段名右键->索引/键->添加->列,选择索引字段)


join  多表联合查询


join分为inner join,left join right join

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 

right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录

inner join(等值连接) 只返回两个表中联结字段相等的行和join用法相同)



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

详细请查看:http://edu.csdn.net/heima/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值