如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
3数据库语言SQL本章目标3.1概述数据定义(DDL)定义、删除、修改关系模式(基本表)定义、删除视图(View)定义、删除索引(Index)数据操纵(DML)数据查询数据增、删、改数据控制(DCL)用户访问权限的授予、收回交互式SQL一般DBMS都提供联机交互工具用户可直接键入SQL命令对数据库进行操作由DBMS来进行解释嵌入式SQL能将SQL语句嵌入到高级语言(宿主语言)使应用程序充分利用SQL访问数据库的能力、宿主语言的过程处理能力一般需要预编译,将嵌入的SQL语句转化为宿主语言编译器能处理的语句数据定义Create、Drop、Alter数据操纵数据查询:Select数据修改:Insert、Update、Delete数据控制Grant、Revoke数据查询是数据库应用的核心功能。基本结构:SelectA1,A2,...,AnFromr1,r2,...,rmWhereP3.2.1Select语句的含义重复元组SQL具有包的特性Select子句的缺省情况是保留重复元组(ALL),可用Distinct去除重复元组SelectDistinctsdeptFromStudentSelectAllsdeptFromStudent去除重复元组:费时需要临时表的支持*与属性列表星号*表示所有属性星号*:按关系模式中属性的顺序排列,并具有一定的逻辑数据独立性显式列出属性名:按用户顺序排列Select*FromStudentSelectStudent.*,cno,gradeFromStudent,SCWhereStudent.sno=SC.sno更名为结果集中的某个属性改名使结果集更具可读性Selectsnoasstu_no,cnoascourse_no,gradeFromSCSelectsno,sname,2001-sageasbirthdayFromStudent3.2.3where子句运算符比较:<、<=、>、>=、=、<>、not+~确定范围:BetweenAandB、NotBetweenAandB确定集合:IN、NOTIN字符匹配:LIKE,NOTLIKE空值:ISNULL、ISNOTNULL多重条件:AND、OR、NOTlike字符匹配:Like、NotLike通配符:%——匹配任意字符串_——匹配任意一个字符大小写敏感列出姓张的学生的学号、姓名。Selectsno,snameFromStudentWheresnameLIKE‘张%’列出张姓且单名的学生的学号、姓名。Selectsno,snameFromStudentWheresnameLIKE‘张__’转义符escape例:列出课程名称中带有‘_’的课号及课名。Selectcno,cnameFromCourseWherecnameLIKE‘%\_%’escape‘\’3.2.4from子句元组变量为From子句中的关系定义元组变量方便关系名的引用在同一关系的笛卡儿积中进行辨别例:列出与95001同岁的同学的学号,姓名,年龄。SelectT.sno,T.sname,T.sageFromStudentasT,StudentasSWhereS.sno=‘95001’ANDT.sage=S.sage3.2.5OrderBy子句3.3数据定义语言3.3.1SQL中的域类型3.3.2SQL中的域定义3.3.3SQL中的模式定义CreateDomainstu_namevarchar(20)CreateTableStudent(snochar(10)primarykey(sno),snamestu_name,sagesmallint,ssexchar(1),sdeptchar(2))CreateTableCourse(cnochar(10)primarykey(cno),cnamevarchar(20),creditsmallint)CreateTableSC(snochar(10)notnull,cnochar(10)notnull,gradesmallint,primarykey(sno,cno))3.3.4删除表结构3.3.5修改表结构3.3.6DefaultValue3.3.7索引Index聚簇索引(ClusteredIndex)表中的元组按聚簇索引的顺序物理地存放根级页面---中间层页面---叶级页面(数据页面)一个表中只能有一个聚簇索引更新的复杂性,需要大量的临时空间非聚簇索引(Non-