欢迎来到天天文库
浏览记录
ID:40151479
大小:68.50 KB
页数:21页
时间:2019-07-23
《【数据库技术】关系数据库标准语言sql》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章关系数据库标准语言SQLSQL的主要特点:1.一体化的特点非关系模型的数据语言一般分为DDL,外(子)模式DDL,与数据存储有关的描述语言,如DBTG的DSDL以及数据操纵语言DML,它们各自完成模式、外模式、内模式定义和数据存取、处置功能。当数据库投入运行后,如果需要修改模式,必须停止现有数据库的运行,转储数据,修改模式并编译后再重装数据库,十分麻烦。而SQL能完成定义关系模式、录入数据以建立数据库、查询、更新、维护、数据库重构、数据库安全控制等一系列操作要求。具有集DDL,DML,DCL为一体化的特点。另外,由于关系模型中实体以及实体间的联系均用关系来表示,这种数据结构的单一性带来了
2、数据操纵符的统一性。因为信息仅仅以一种方式表示,所以想完成的每种操作(如插入,删除等)都只需一种操作符,从而克服了非关系系统由于信息表示方式的多样性带来的操作复杂性。而在非关系系统中,如DBTG,则需要两种插入操作符,STORE用来把数据存入数据库中,CONNECT用来把记录插入系值以建立数据之间的逻辑联系。2.两种使用方式,同一的语法结构SQL有两种使用方式。一种是联机交互使用的方式,另一种嵌入某种高级程序设计语言的程序中,以实现数据库操作。前一种方式下,SQL语言为自含式语言,可独立使用。在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。因此,具有极大的灵活性和方便性。3.高度非
3、过程化非关系的数据操纵语言是面向过程的语言,用其完成某项请求,必须指定存取路径。而在SQL语言中,只要求用户提出“干什么”,而无需指出“怎么干”,因此用户不必了解存取路径的选择,存取路径的选择和SQL语句操作的过程由系统自动完成。有利于提高数据的独立性。4、面向集合的操作方式5、语言简洁,易学易用SQL语言的基本概念SQL支持关系数据库三级模式结构。其中;外模式------视图和部分基本表模式------基本表内模式------存储文件视图是从一个或几个基本表导出的表。是一个虚表。基本表的定义和修改一.定义基本表的格式为:CREATETABLE<表名>(<列名><类型>[列约束条件][,<列名
4、><类型>[列约束条件]]…[,<表约束条件>]);二.修改基本表定义的语句格式为:ALTERTABLE<表名>[ADD<新列名><类型>[约束条件]][DROP<完整性约束名>][MODIFY<列名><类型>];三.删除基本表的语句为:DROPTABLE<表名>;把一个基本表的定义连同表上的所有记录、索引以及由此基本表导出的所有视图全部都删除,并释放相应的存储空间。四、建立索引的语句格式为:CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,列名[<次序>]]…);五、删除索引的语句格式为:DROPINDEX<索引名>;六、查询语句一般格式
5、:SELECT[ALL
6、DISTINCT]<目标列表达式>[,<目标列表达式>]...FROM<表名或视图名>[,<表名或视图名>]...[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC
7、DESC]];整个语句的含义是:根据WHERE子句中的条件表达式,从FROM子句指定的基本表或视图中找出满足条件的元组,再按SELECT子句中的目标列表达式,选出元组中的属性值形成结果表。如果有GROUP子句,则将结果按<列名1>的值分组,该属性列值相等的元组为一个组。通常会在每组中作用集函数。如果GROUP子句带HAVING短语,则只有
8、满足指定条件的组才予输出。如果有ORDER字句,则结果表还要按<列名2>的值的升序或降序排序。查询举例例1查询全体学生的姓名、出生年份和所有系,要求用小写字母表示所有系名SELECTSname,‘YearofBirth:’,1996-Sage,ISLOWER(Sdept)FROMStudent;例2查询考试成绩有不及格的学生学号SELECTDISTINCTSnoFROMStudentWHEREGrade<60;例3查询以“DB_”开头,且倒数第三个字符为i的课程的详细情况SELEST*FROMCourseWHERECnameLIKE‘DB_%I__’ESCAPE’’;例4查询所有有成绩的学
9、生学号和课程号SELECTSno,CnoFROMSCWHEREGradeISNOTNULL;例5查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列SELECTSno,GradeFROMSCWHERECno=‘3’ORDERBYGradeDESC;例6查询选修了3门以上课程的学生学号SELECTSnoFROMSCGROUPBYSnoHAVINGCOUNT(*)>3;例7查询每一门课的间
此文档下载收益归作者所有