.NET中资料库的设计与SQL

ADO.NET设计

先来说说资料库的设计

主要涉及

关联式资料库

资料库系统管理(DBMS)

结构化查询(SQL)

预储程序

一个资料库包含一个以上的资料表,每个资料表有很多记录

以下是一个小的范例

如Salse 资料库有Customers,orders和Pruducts三个表

表与表之间都过主索引键进行关联。

而表之间的关联有:  一对多,多对一和多对多三种关系。

多对多的关系(是要产生中间的表格来对应其他两个,他们之间是不能直接关联的。)

资料库管理系统(DBMS)

主要两个重要的东西

资料

资料库引擎

 

资料库管理系统常见分类有

本机 和伺服器两种

本机DBMS:资料库引擎在用户端,通常是免费的

伺服器 Server:伺服器资料库引擎是另外一个行程,通常是在另外一个主机上。

SQL(Structured Query Language)语法

Order BY排序方式(DESC从大到小,ASC从小到大)

DML(查询格式来撰写语句)

其他非查询式SQL命令(Insert,Update,Delete)

DML的一些语句

 Select Count()as 别名

      Select AVG ( ) as 别名

      Select MAX( ) as 别名

      Form  表名

Joins  增加不同资料表的资料

如 select FristName,LastName

From Customers

Inner Join orders On Customers.CID=Orders.CID

Where Orders.OID=1234;

Outer joins

将不符合条件的记录,使用outer Joins添加到记录中

 

预储程序(即为存储过程)

存储过程是

可以接受参数

可以传回资料

预先编译,速度快

优缺点

执行快速

将复杂的SQL封装起来

提供另外一层的存取控制能力

大部分的资料库提供都支持

缺点

每个资料库提供者的存储过程程序语法都不一样

预存储程序不容易转换成为其他格式的程序

ADO.NET的设计

包含

ADO.NET架构

 

资料读取与写入

 

DataSet

 

工具

ADO.NET的架构是基于资料提供者之上的,资料提供者讲有关资料库存取的细节封装起来。

是用来存取资料库的物件集合。

核心命名空间有

一般: systen.data,

 SQL server: system.data.SQLclient

Oracle: system.data.oracleclient

OLEDB: system.data.Oledb

ODBc

资料的存取方式有四种

DataRead唯读存取

DataSet读写

ExecuteNOtquery修改资料库资料

ExecuteScalar()取得单一资料

DateReader

是透过DataReader 物件可以逐一读取资料

DataReader是一笔笔的去读,根据要求,以串流的方式返回给用户端。

且占用资料连线,使用伺服端游标直接连线开关。

存取步骤

1 开放资料库连线

建立连线物件,用Open方法,设定连线字符串

建立连线字符串,格式要根据不同的资料库而定。

2 进行资料库操作

建立DataReader物件,并逐一读取。

3 开关资料库连线

资料修改

ExecuteNonQuery透过以下三中DML语法来修改资料库

Insert

Update

Delete

透过ExecuteNonQuery()方法回传修改的资料笔数。

DataSet

是一个在记忆中的资料结构

用表格的方式存储。

DateaSEt相当于离线的Recordset

资料是由伺服端复制回来

然后再用户端离线处理资料

他允许你:

减少资料库服务器的负载

开关资料库连线,并且离线处理资料

还可以存储你想要处理的所有资料

可以搜索,排序,修改等。

特别是在分散式应用程序中特别有用。

最新文章

  1. 阿里技术协会好文推荐:Android绘制流程http://click.aliyun.com/m/8719/
  2. spring接收json格式的多个对象参数(变通法)
  3. 合法提交Html标签(2)
  4. 解决Wireshark没有网卡问题
  5. 贪心-poj-2437-Muddy roads
  6. 关于触发器、存储过程和DBlink的综合运用 (转)
  7. [LeetCode]Evaluate Reverse Polish Notation(逆波兰式的计算)
  8. for嵌套for ★
  9. 转载:js 创建对象、属性、方法
  10. ubuntu 下配置Web服务器
  11. Hadoop家族
  12. pyppeteer(python版puppeteer)基本使用
  13. [UE4]Dynamic Entry Box
  14. 记一次用WPScan辅助渗透WordPress站点
  15. Informix存储过程
  16. Android的Button按钮,ACTION_UP事件不触发解决方案
  17. RocketMQ os.sh 系统优化(CentOS)
  18. CentOS开放端口号
  19. Struts2的CRUD操作
  20. Unity3D优化之合并网格

热门文章

  1. HDU 5514 Frogs (容斥原理+因子分解)
  2. md5sum 生成 经md5加密后的字符串
  3. centos7下yum安装mysql
  4. oracle 10g 学习之函数和存储过程(12)
  5. Inno setup 简单打包教程
  6. spring 源代码地址
  7. codevs 2924 数独
  8. SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Que
  9. MapReduce:详解Shuffle过程
  10. WinForm点击按钮,访问百度