.NET中资料库的设计与SQL
.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
资料是由伺服端复制回来
然后再用户端离线处理资料
他允许你:
减少资料库服务器的负载
开关资料库连线,并且离线处理资料
还可以存储你想要处理的所有资料
可以搜索,排序,修改等。
特别是在分散式应用程序中特别有用。
最新文章
- 阿里技术协会好文推荐:Android绘制流程http://click.aliyun.com/m/8719/
- spring接收json格式的多个对象参数(变通法)
- 合法提交Html标签(2)
- 解决Wireshark没有网卡问题
- 贪心-poj-2437-Muddy roads
- 关于触发器、存储过程和DBlink的综合运用 (转)
- [LeetCode]Evaluate Reverse Polish Notation(逆波兰式的计算)
- for嵌套for ★
- 转载:js 创建对象、属性、方法
- ubuntu 下配置Web服务器
- Hadoop家族
- pyppeteer(python版puppeteer)基本使用
- [UE4]Dynamic Entry Box
- 记一次用WPScan辅助渗透WordPress站点
- Informix存储过程
- Android的Button按钮,ACTION_UP事件不触发解决方案
- RocketMQ os.sh 系统优化(CentOS)
- CentOS开放端口号
- Struts2的CRUD操作
- Unity3D优化之合并网格
热门文章
- HDU 5514 Frogs (容斥原理+因子分解)
- md5sum 生成 经md5加密后的字符串
- centos7下yum安装mysql
- oracle 10g 学习之函数和存储过程(12)
- Inno setup 简单打包教程
- spring 源代码地址
- codevs 2924 数独
- SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Que
- MapReduce:详解Shuffle过程
- WinForm点击按钮,访问百度