.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
资料是由伺服端复制回来
然后再用户端离线处理资料
他允许你:
减少资料库服务器的负载
开关资料库连线,并且离线处理资料
还可以存储你想要处理的所有资料
可以搜索,排序,修改等。
特别是在分散式应用程序中特别有用。
.NET中资料库的设计与SQL的更多相关文章
- mysql系列十一、mysql优化笔记:表设计、sql优化、配置优化
可以从这些方面进行优化: 数据库(表)设计合理 SQL语句优化 数据库配置优化 系统层.硬件层优化 数据库设计 关系数据库三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非 ...
- 设计 Azure SQL 数据库,并使用 C# 和 ADO.NET 进行连接
标题:设计 Azure SQL 数据库,并使用 C# 和 ADO.NET 进行连接 里面有使用C#使用SqlServer的例子.
- 在一个千万级的数据库查寻中,如何提高查询效率?分别说出在数据库设计、SQL语句、java等层面的解决方案。
在一个千万级的数据库查寻中,如何提高查询效率?分别说出在数据库设计.SQL语句.java等层面的解决方案. 解答: 1)数据库设计方面: a. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 whe ...
- 大数据量查询优化——数据库设计、SQL语句、JAVA编码
数据库设计方面: 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将 ...
- 表设计与SQL优化
1. 说说分区表的主要好处是什么,为什么会有这些好处. 分区功能能够将表.索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区.每个分区有自己的名称,还可以选择自己的存储特性. 从数据库管理员的 ...
- 数据库设计与SQL优化的建议
1. 用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数:通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担:能够分开的操作尽量分开处理,提高每次的响应速度:在数据窗口使用 ...
- 【学习记录】第一章 数据库设计-《SQL Server数据库设计和开发基础篇视频课程》
一.课程笔记 1.1 软件开发周期 (1)需求分析阶段 分析客户的业务和数据处理需求. (2)概要设计阶段 设计数据库的E-R模型图,确认需求信息的正确和完整. /* E-R图:实体-关系图(Ent ...
- 设计高效SQL: 一种视觉的方法
行; 这听起来很直观,但最有效的方法是什么?你可能有如下选择:行,其中有50行你必须剔除行,其中有450行你必须剔除行中剔除50行听起来比从500行中剔除450行更高效,但是请记住:聚簇,或者说,数据 ...
- MySQL学习-数据库设计以及sql的进阶语句
1.数据库设计 关系型数据库建议在E-R模型的基础上,我们需要根据产品经理的设计策划,抽取出来模型与关系,制定出表结构,这是项目开始的第一步 在开发中有很多设计数据库的软件,常用的如power des ...
随机推荐
- hungary
更正:模数1000000007 /* 最大匹配求p=1的情况能得30分 正解:树形DP,f[i][0/1]表示i节点向下连的那条边选或不选时的最大值 */ #include<iostream&g ...
- 大神的游戏(codevs 1353)
题目描述 Description 在那遥远的机房,有一片神奇的格子.为了方便起见,我们编号为1~n.传说只要放入一些卡片,就能实现愿望.卡片一共有m种颜色,但是相邻的格子间不能放入相同颜色的卡片.只要 ...
- linux编译中的常见问题
转linux编译中的常见问题 错误提示:Makefile:2: *** 遗漏分隔符 . 停止. 原因makefile中 gcc语句前 缺少一个 tab分割符 错误提示: bash: ./makefil ...
- Fresco 源码分析(三) Fresco服务端处理(1) ImagePipeline为何物
4.3 服务端的处理 备注: 因为是分析,而不是设计,所以很多知识我们类似于插叙的方式叙述,就是用到了哪个知识点,我们再提及相关的知识点,如果分析到了最后,我想想是不是应该将这个架构按照设计的方式,重 ...
- js之事件冒泡和事件捕获介绍
链接:http://www.jb51.net/article/42492.htm (1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. (2)捕获型事件 ...
- oracle 10g 学习之客户端安装和配置(2)
概述 Oracle 数据库是一种网络上的数据库, 它在网络上支持多用户, 支持服务器/客户机等部署(或配置) 服务器与客户机是软件概念, 它们与计算机硬件不存在一一对应的关系. 即: 同一台计算机既可 ...
- jquery tab
jquery tab <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// ...
- Ubuntu 登录命令和赋值命令
一. Ubuntu 设定root权限 进入 Terminal,输入命令su 如果没有给su赋root权限,则输入 sudo passwd root 赋值输入密码. 截图如下 二.以root身份进入l ...
- C语言标量类型(转)
在C语言中,枚举类型.字符型和各种整数的表示形式统一叫做标量类型. 当在C表达式中使用标量类型的值时,编译器就会自动将这些标识符转换为整数保存. 这种机制的作用是,在这些标量类型上执行的操作与整型上执 ...
- hihoCoder挑战赛14 -1223
描述 给定n个关于X的不等式,问最多有多少个成立. 每个不等式为如下的形式之一: X < C X <= C X = C X > C X >= C 输入 第一行一个整数n. 以下 ...
