-----------Windows Phone 7手机开发、.Net培训、.net学习型技术博客、期待与您交流! ------------
SQL Server数据库概念解读
1、什么是数据库?
数据库和数据库管理系统(DBMS)是不一样的概念,数据库是指,存放数据的集合,里面是放数据的,而DBMS是一个管理系统,负责数据的存储和保护的的系统。
2、如何操作数据库?
开发.Net程序使用SQL Server最搭配了。
大部分数据库都需要数据库服务器才能运行,学习和开发时是用本机的数据库,真正上线时,数据库是运行在独立的服务器上面的。
数据库中的基本概念:
Catalog(分类)(又叫数据库Database,表空间tablespace),不同类的数据应该放到不同的数据库里。
Table(表)
列(column),字段(field)
主关键字(primary key)是表中的一个或多个字段,它的值用于惟一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部分。一个表不能有多个主关键字,并且主关键字的列不能包含空值。主关键字是可选的,并且可在 CREATE TABLE 或 ALTER TABLE语句中定义
逻辑主键和业务主键:
逻辑主键:一般是指流水号,业务人员不会看的数据,完全是给计算机看的。
业务主键:如员工工号。
Sqlserver的管理:工具sqlserver 2005或者sqlserver2008等
n 开发人员需要做的是:创建数据库,创建表,列出字段,设置主键。
n 常用的字段类型:bit(可选值为0、1),datetime,int,varchar(不含中文的),nvarchar(可含有中文)。
u Varchar,nvarchar和char(n)的区别,char(n)不足长度n的部分可用空格填充。
u Nvarchar(max)无限大类型,可用于发表文章。
3、常见的SQL语句?
Sql语句中的字符串是用单引号的;
大小写不敏感;
修改数据库的数据可以使用手工修改,也可以使用sql语句修改;
Sql 主要分DDL(数据定义语言)和DML(数据操作语言)两类:
n Create table,Drop table,alter table 等属于DDL;
n Select, insert ,update, delete等属于DML;
主键的选择策略:int(或bogint),uniqueidentifier(又称Guid,uuid);
u 标识列:将字段的“标识列”设置成“是”,一个表只能有一个标识列;
u 业界主流使用Guid;优点:效率高、数据导入导出方便;缺点:占用空间大,不易读;
u 表的数据插入insert(可不写字段名,但不推荐);
u 修改表数据update,注意where条件(单“=”号);
u 主键使用newid()方法,不推荐;
u 删除表数据:delete from表名,注意where条件;
u 删除表:delete表;
u 字段检索:select XX as别名;
n 可以检索与数据库没有关系的数据:select 1+1 as列1,getdate() as日期,newid() as编号;
n Sql常用函数:count();max(),min();getdate();newid();avg();sum();
n 数据排序:select XXX order by字段名 desc/asc;order by语句要放在where后面
n 通配符匹配:like、单通配符“_”代表一个字符,多通配符“%”代表多个字符;
n 数据库中Nullà表示不知道有没有值,null+1=null,无法查询;
n 数据分组 group by列名(聚合函数不应出现在where子句中);
n Having 是出现在group by之后的,having是对分组信息的过滤,能用的列和select中能用的列是一样的,注意:having不能代替where;
n 限制结果:top *;select *·· order by * desc/asc;
n 去掉重复数据:select distinct*··;\
n 联合结果集union, union all;
n 数字函数:
u ABS()求绝对值;
u Ceiling()舍入到最大整数;
u Floor()舍入到最小整数;
u Round(0.2343,3)四舍五入到小数点右三位;
n 字符串函数:
u Len(“abc”) 字符串长度;
u Lower(),upper()转大小写;
u Ltrim(),ratrim()去掉字符串左、右侧空格;
u Substring(string,start_position,lenth)截取字符串,substring(原,开始位,截取长度)
u Dateadd(datepart,number,date),计算增加以后的日期,dateadd(month,-8,date)八个月以前的日期;
u Datediff(datepart,startdate,enddate)计算时间差额;
n 类型转化:
u Cast(espression as data_type );
u Convert(data_type,expression);
n 流控函数:
n 空值处理函数isnull(列名,’代替值’);代替空值;
n Case 单值判断语法:
Case expression
When value1 then return value1
Else defaultreturnvalue
End
n 索引index:只在经常检索的字段上(where)创建索引;
n 表连接join,通过主键外键连接
n 子查询:将一个查询语句作为一个结果集供其他sql语句使用。如:
Select * from (select * from t2 where fage>18)
n Rownumber();行号
n Over();OVER子句用于为行为定义一个窗口(windows),以便进行特定的运算。
-----------Windows Phone 7手机开发、.Net培训、.net学习型技术博客、期待与您交流! ------------