数据库开发及ado

上传人:ji****n 文档编号:57272318 上传时间:2018-10-20 格式:PPT 页数:74 大小:818KB
返回 下载 相关 举报
数据库开发及ado_第1页
第1页 / 共74页
数据库开发及ado_第2页
第2页 / 共74页
数据库开发及ado_第3页
第3页 / 共74页
数据库开发及ado_第4页
第4页 / 共74页
数据库开发及ado_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《数据库开发及ado》由会员分享,可在线阅读,更多相关《数据库开发及ado(74页珍藏版)》请在金锄头文库上搜索。

1、北京传智播客教育 ,数据库开发及ADO.Net,讲师:赵晓虎,什么是数据库,数据库Database:数据的仓库 仓库里有排货架(表),货物会分类存放。比如牙膏、牙刷会放到一个排货架上,面包会单独放在一个排货架上。 仓库又分很多种粮仓、武器仓库。 仓库中还会有仓库管理员(DBA)对货物进行管理 从仓库中拿货物需要凭证,取货和进货的人(程序员),我们怎么存储数据,学校的档案室 计算机文件, 文件操作,开发人员需要熟悉操作磁盘文件的函数、必须编写复杂的搜寻算法才能高效的把数据从文件中检索出来、当数据格式发生变化时,需要编写复杂的文件格式升级程序、很难控制并发修改。 数据库(其实也是文件),DBMS(

2、数据库管理系统)RDBMS 对于数据不仅仅是需要存储,更重要的是将数据进行存储以后怎么才能方便快捷的查询、修改。 数据库特点:海量存储、查找速度快、并发性问题控制、安全性、数据完整性(保存在数据库中的数据是正确的,真是的)。,数据库概述,DBMS(DataBase Management System,数据库管理系统)和数据库。平时谈到“数据库”可能有两种含义:MSSQLServer、Oracle等某种DBMS;存放一堆数据表的一个分类( Catalog )。 不同品牌的DBMS有自己的不同的特点:MYSQL(速度很快,适合对数据要求并不是十分严谨的地方,去掉了很多中小型企业中不常用的功能)、M

3、SSQLServer(与.net结合很好,只能运行在windows平台下,大数据量、大交易量表现并不十分好)、DB2(大型)、Oracle(大型)、Access(文件)、 SQLite(极其轻量级数据库) 、Sybase等。对于开发人员来讲,大同小异 SQL(语言)SQLServerMSSQLServer。最常见的错误。 除了Access、SQLServerCE、SQLite等文件型数据库之外,大部分数据库都需要数据库服务器才能运行。学习、开发时是连接本机的数据库,上线运行时是数据库运行在单独的服务器。,数据库中的概念,数据库DataBase,不同类的数据应该放到不同的数据库中 便于对各个数据

4、类别的进行个性化管理 避免命名冲突 安全性更高 Table(表):关系数据库中的关系指的就是表。不同的货物要放到各自的货物架,将这种区域叫做“表”(Table)。不同的表根据放的数据不同进行空间的优化,找起来也方便。 列(Column)、字段(Field)、行(Row) 用表格格式化数据:即便是引入了自动识别设备也很容易识别。,2003年5月入职,是产品开发部的,姓名马小虎,王二小,技术支持部,入职是2005年7月,主键(PrimaryKey),主键就是数据行的唯一标识。不会重复的列才能当主键。一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键 主键有两种选用策略:业务主键

5、和逻辑主键。业务主键是使用有业务意义的字段做主键,比如身份证号、银行账号等;逻辑主键是使用没有任何业务意义的字段做主键,完全给程序看的,业务人员不会看的数据。因为很难保证业务主键不会重复(身份证号重复)、不会变化(帐号升位),因此推荐用逻辑主键。,表间关联、外键(ForeignKey),SQLServer的管理,需要安装SQLServer2005或者SQLServer2008,若要使用SQLServer管理工具进行开发还要安装SQL Server Management Studio,还可以使用VisualStudio进行管理 使用免费的SQLServerExpress版本,Express版本的

6、服务器名称. SQLEXPRESS,对于开发人员来讲和其他版本没有区别。 SQLServer的两种验证方式:用户名验证和Windows验证,开发时用Windows验证就行。 开发人员关注点在开发上,而不是配置、备份等之上,那是DBA做的事情。,创建数据库,创建数据库,创建表,设置主键 数据库的分离和附加 MS SQLServer的每个数据库包含: 1个主数据文件(.mdf)必须。 1个事务日志文件(.ldf)必须。 可以包含: 任意多个次要数据文件(.ndf) 多个事务日志文件 文件组:可将多个数据文件逻辑的分到一组,方便日后管理维护(备份、将表建在指定的文件组上等等。) 创建 :部门Id,部

7、门名称 :员工Id,身份证号,姓名,性别,入职日期,年龄,地址,电话,所属部门、Email,练习,创建一个School数据库。 创建一个班级表: TblClass:tClassId (班级编号,自动编号,主键)、tClassName(班级名称)、tClassDesc(班级简介)。 创建一个学生信息表: TblStudent:tSId(学生编号,自动编号,主键)、tSName(学生姓名)、tSGender(性别)、tSAddress(家庭地址)、tSPhone(电话)、tSAge(年龄)、tSBirthday(出生日期)、tSCardId(身份证号)、tClassId(班级Id) 分离数据库 在

8、需要分离的数据库上点右键-任务-分离 附加数据库(在其他计算机上,亲自测试!) 在数据库节点上点右键-附加 打开数据之前,要打开数据库服务,SQL语句入门(脚本、命令),SQL 全名是结构化查询语言(Structured Query Language),是关系数据库管理系统的标准语言 SQL语句是和DBMS“交谈”专用的语句,不同DBMS都认SQL语法。 = SQL语句中字符串用单引号、单等号。 select *、SeLeCT *: SQL语句是大小写不敏感的,不敏感指的是SQL关键字,字符串值还是 大小写敏感的 /= 建库、删除数据库、创建表、删除表不仅可以手工完成,还可以执行SQL语句完成

9、,在自动化部署、数据导入中用的很多 简单的Insert语句。 (*) SQL主要分DDL(数据定义语言,建表、建库等语句。)、DML(数据操作语言)和DCL (数据库控制语言) 。Create Table、Drop Table、Alter Table等属于DDL,Select、Insert、Update、Delete等属于DML, GRANT 授权、REVOKE 取消授权属于DCL,使用sql语句创建数据库和表,使用SQL语句创建School数据库、TblClass表、TblStudent表。 Go: 将T-SQL语句分批发送到数据库实例执行。 tSId tSNametSGendertSAdd

10、ress tSPhone tSAge tSBirthday tSCardId tSClassId,创建表练习,创建数据库TestSchool -tSId - tSName - tSGender - tSAddress - tSPhone - tSAge - tSBirthday - tSCardId - tSClassId -创建一个学生表TblStudent 创建学生成绩表TblScore tScoreId(成绩id,主键,自动编号)、tSId(学生编号)、tEnglish(英语成绩)、tMath(数学成绩) 创建老师表TblTeacher tTId、tTName、tTGender、tTAg

11、e、tTSalary、tTBirthday,介绍生成脚本工具,数据库右键任务生成脚本 可选择生成什么样的脚本 选择生成的数据库版本 是否包含某些脚本等。 是否生成带数据的脚本(2005、2008都有该功能express没有。),数据插入,向表中插入一行(该行的每一列都有数据) insert into 表(列名,列名) values(值1,值2) insert语句可以省略表名后的列名,但是不推荐。 Insert into 表 values(值1,值2) 插入数据时,只向某些列插入数据:如果插入的行中有些字段的值不确定,那么Insert的时候不指定那些列即可。 Insert into 表(列1)

12、values(值1) 自动编号列不需要手动插入。【SET IDENTITY_INSERT 表名 ON 】 注意:主键不能有重复值。 插入数据时的单引号问题。 Insert into 表(列) select 列1,列2 union Insert into 表(列) select 列1,列2 from 表 Select 列 into 新表名 from 旧表 N前缀:N字符串,在服务器上执行的代码中(例如在存储过程和触发器中)显示的 Unicode 字符串常量必须以大写字母 N 为前缀。即使所引用的列已定义为 Unicode 类型,也应如此。如果不使用 N 前缀,字符串将转换为数据库的默认代码页。这

13、可能导致不识别某些字符。在Northwind数据库下测试print 中文中文,数据更新(数据修改),更新一个列:update Student set sSex = 男 更新多个列: update Student set sSex =女,sAge = 18,sBirthday=1989-8-8 更新一部分数据: update Student set sClassId= 4 where sClassId = 1,用where语句表示只更新Name是tom的行,注意SQL中等于判断用单个=,而不是=。 Where中还可以使用复杂的逻辑判断update Student set sAge=30 wher

14、e sName=华佗 or sAge20 and sAge、=、(或!=)等,数据删除,删除表中全部数据:DELETE FROM Student。 Delete只是删除数据,表还在,和Drop Table不同。 Delete 也可以带where子句来删除一部分数据:DELETE FROM Student WHERE sAge 20 = truncate table student 的作用与delete from student一样,都是删除student表中的全部数据,区别在于: 1.truncate语句非常高效。由于truncate操作采用按最小方式来记录日志,所以效率非常高。对于数百万条数

15、据使用truncate删除只要几秒钟,而使用delete则可能耗费几小时。 2.truncate语句会把表中的自动编号重置为默认值。 3.truncate语句不触发delete触发器。,练习:,插入 几条老师信息 和成绩、用SQL插入几条员工信息(注意:bit类型,在写代码中用1或0来表示,不要用false,会进行类型转换的。) 练习1:给studentId是1的英语成绩加10分 练习2:考试题偏难,所有人的成绩加5分 练习3:所有女学生的年龄减1岁删除工资大于2000的老师=将老师表清空= 删除所有老师 删除数据时候 把自增长列的值还原成种子,约束-保证数据完整性,先用设计器创建约束、再用代

16、码创建约束。 数据库约束是为了保证数据的完整性(正确性)而实现的一套机制 见文件Employee.sql 非空约束 主键约束(PK) primary key constraint 唯一且不为空 唯一约束 (UQ)unique constraint 唯一,允许为空,但只能出现一次 默认约束 (DF)default constraint 默认值 检查约束 (CK)check constraint 范围以及格式限制 外键约束 (FK)foreign key constraint 表关系 增加外键约束时,设置级联更新、级联删除: ON DELETE NO ACTION | CASCADE | SET NULL | SET DEFAULT ON UPDATE NO ACTION | CASCADE | SET NULL | SET DEFAULT ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号