江苏大学通信工程系第九章操控数据库操控数据库9.1数据库基础知识9.2SQL基础9.3获取数据库中的数据9.4修改数据库中的数据数据库基础知识关系数据库:数据库是数据的集合,它由一个或多个表组成。数据表中的某个字段可以被称为关键字,若它能惟一地确定表中的一个记录。若一个数据库只有一个表,则称之为简单数据库。若数据库由多个相关的表(通过表的字段相关联)组成,则称其为关系数据库。DBMS(数据库管理系统)是一套程序,用来定义、管理和处理数据库与应用程序之间的联系。数据库基础知识1)Oracle如果实现的是高端企业应用,需要处理的并发数据量很大(Oracle数据库的存储能力扩展到了8EB,1EB=1024PB,1PB=1024TB),同时对数据库的可靠性、安全性和可扩展性又很高的要求,那么oracle是很好的选择。数据库基础知识Orlacle具有如下特点:支持大数据库、多用户的高性能的事务处理;ORACLE遵守数据存取语言、操作系统、用户接口和通讯协议的工业标准;实施安全性控制和完整性控制;支持分布式数据库和分布处理。分布式系统像集中式数据库具有一样的透明性和数据一致性;具有可移植性、可兼容性和连接性;Oracle10g支持网格计算。数据库基础知识2)SQLServer微软公司开发的中型关系数据库管理系统,它在简化了企业数据与分析应用创建、部署和管理的同时,还为它们赋予伸缩性、可用性和安全性。SQLServer2005具有如下特点:SQLServer2005和VisualStudio2008有统一的开发环境;支持XML数据;引进了数据挖掘工具,更具智能化;数据库基础知识SQLServer2005具有如下特点:SQLServer2005包括了一些在安全性能上的改进,例如数据库加密、设置安全默认值、增强密码政策、缜密的许可控制、以及一个增强型的安全模式。提供了诸如表分区、快照隔离、64位支持等方面的高级可伸缩性功能;更为简单地部署、管理和优化企业数据和分析应用程序;具有额外的备份和恢复功能,以及复制增强上的特性,使企业能够构建和部署高可用的应用系统。数据库基础知识3)AccessAccess是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。Access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器IIS假死,或者消耗掉服务器的内存导致服务器崩溃。对数据库初学者及小型企业建议使用Access。SQLServer2005基础2)SQL语句的格式SQL语句由一个命令动词和若干个子句组成。命令动词包括SELECT、UPDATE、INSERT等描述要产生动作,子句用来指明该动作对数据的作用条件、范围及方式等。最典型的有:–FROM指定从那些数据表中检索数据。–ORDERBY按特定的顺序对记录排序。–WHERE后加一个LIKE运算符来找出符合条件的字段值。SELECT*FROMPaintingWHERECountry=‘意大利’SQLServer2005基础3)SQL常用命令①SELECT格式:Select[Distinct][Topn]字段名表[As列标题]FROM表名[别名][WHERE条件表达式][GROUPBY字段名][ORDERBY字段名][ASC/DESC]SQLServer2005基础查询指定字段SELECTcity,namexFROMcity含义:从city表中将city和namex字段提取出来,得到一个数据集。查询所有字段SELECT*FROMtbsq含义:从Books数据表中读取所有记录。SQLServer2005基础条件查询这是最重要的一类查询语句,查询满足指定条件的数据,其中用的最多的是WHERE子句,它使用多种运算符来进行筛选满足条件的数据记录。SELECT*FROMtbsqWHEREcity='天津'含义:从tbsq表中查找city等于”天津”的记录SELECTtop5*FROMtbsqWHEREcity='天津'含义:从tbsq表中查找city等于”天津”的记录的前五条记录SQLServer2005基础字符串和日期的查询对于字符串和日期数据的查询,还需要加定界符,字符串前后加引号(可以是单引号),日期型数据前后加“#”或单引号(与数据库类型有关)。SELECT*FROMcityWHEREqq=729873457SELECT*FROMtbsqWHEREcity='天津‘SELECT*FROMtbsqWHEREaddtime’2010-8-5’LIKE运算符LIKE运算符查找符合指定样式的字段值,可实现模糊查询,LIKE语句中可以出现通配符。SELECT*FROMtbsqWHEREcityLike‘%天%'SQLServer2005基础查询排序SELECT*FROMtbsqWHEREaddtime’2010-8-5’ORDERBYaddtimeasc[/desc]含义:从tbsq表中选取时间大于2010-8-5的数据,然后按照addtime进行升序排列asc/降序desc,得到一个数据集。SQLServer2005基础②UPDATE格式:UPDATE表名SET字段1=表达式1[,字段2=表达式2]…[WHERE条件表达式]UPDATEcitySETqq=123456WHERENamex='高阳‘含义:更新city表中Namex字段为高阳的记录使其qq字段为123456。SQLServer2005基础③INSERT格式:INSERTINTO表名[(列名1,…)]VALUES(值1,值2,…,值n)INSERTINTOcity(city,namex)values('镇江','高阳')含义:在city表中插入一条记录,记录的各字段的值分别是:city为镇江,namex为高阳。SQLServer2005基础④DELETEDELETEFROM表名[WHERE条件]删除满足条件的记录。若省略后面的条件子句,则删除所有的记录,但表还存在。deletefromcitywherecity='镇江'andnamex='高阳'含义:将city表中city为镇江和namex为高阳的记录。SQLServer2005基础⑤DROP格式:DROPTABLE表名从数据库中删除指定的表及其记录,表不再存在。DROPTABLEPainting含义:将表Painting的记录全部删除,Painting也从数据库中删除。SQLServer2005基础⑥CREATE格式:CREATETABLE表名(字段名1数据类型(长度){Identity|NULL|NOTNULL}[,字段名2数据类型(长度)]{Identity|NULL|NOTNULL}]…)创建指定的表,NULL或NOTNULL表示字段是否能为空,Identity表示该字段为一个自动类型的数值字段,其值会随着记录数的添加而自动产生,该字段不能为空,每个表只能有一个这样的字段。CREATETABLEPersons(Id_PintIdentityNOTNULL,LastNamevarchar(255),FirstNamevarchar(255),Cityvarchar(255))SQLServer2005基础4)聚合函数①Count函数语法格式:Count(*)功能:计算表中的记录个数SELECTCount(*)As'高阳'FROMcityWherenamex='高阳‘含义:计算city表中的高阳负责的城市,其中As短语为计算结果命名一个标题SQLServer2005基础②Sum函数格式:Sum(字段名)功能:计算数据表中指定字段(数值型字段)值的总和。SELECTsum(addtime)FROMtbsq③AVG函数格式:AVG(字段名)功能:计算数据表中指定字段(数值型字段)的平均值。SELECTavg(addtime)FROMtbsqSQLServer2005基础④MAX函数语法格式:MAX(字段)功能:找出数据表中指定字段(数值型字段)的最大值。⑤MIN函数语法格式:MIN(字段)功能:找出数据表中指定字段(数值型字段)的最小值SQLServer2005基础⑥VAR函数语法格式:VAR(字段)功能:计算数据表中指定字段(数值型字段)的统计方差