欢迎来到天天文库
浏览记录
ID:51478880
大小:399.00 KB
页数:60页
时间:2020-03-24
《关系数据库语言SQL.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、5.4关系数据库语言SQL5.4.1SQL语言概述5.4.2数据库定义5.4.3数据查询5.4.4数据修改SQL语言将数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能集于一体,可独立完成数据库生命周期中的定义关系模式、插入数据、建立数据库、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求。数据库系统投入运行后可随时地逐步地修改模式,且并不影响数据库的运行,从而使系统具有良好的可扩展性。SQL特点1:综合统一5.4.1SQL语言概述SQL语言两种使用方式:1.是联机交互使用,用户可以在终端键盘上直接键入SQL命令对数据库进行操作;2.是嵌入某种高级程序设计语言
2、(例如C,C++,VisualBasic)中使用。SQL特点2:两种使用方式、统一种语法结构SQL特点3:高度非过程化用SQL语言只需提出“做什么”,而无需指明“怎么做”。存取路径的选择以及SQL语句的操作过程由系统自动完成,大大减轻了用户负担,有利于提高数据独立性。SQL语言功能极强,但语言十分简捷,完成核心功能只用了9个动词(如下表)。SQL语言接近英语句子,因此容易学习,容易使用。SQL功能动词数据查询SELECT数据定义CREATE,DROP,ALTER数据操纵INSERT,UPDATE,DELETE数据控制GRANT,REVOKESQL特点4:语言简捷,易学易用SQL命令视图1
3、视图2基本表1基本表2基本表3基本表4存储文件1存储文件2外模式模式内模式SQL特点5:支持三级模式结构5.4.2数据库定义SQL的数据定义功能包括三部分:定义基本表、定义视图和定义索引。使用的命令是:CREATE/DROP/ALTERTABLECREATE/DROPVIEWCREATE/DROPINDEX关系Courses关系Students关系Reports1.表的建立命令格式为:CREATETABLE<表名>(<列名><数据类型>[NOTNULL][,<列名><数据类型>[NOTNULL]…[其他参数]);说明:方括[]为可选项;任何列可以为空值,除非列的定义中指定了NOTNULL
4、.例1建立学生表Students,要求Sno和Sname不能为空值。练习1建立课程表courses,要求cno不能为空值。练习2建立表reports,要求sno,cno不能为空值。2.表的修改说明:表的修改是修改一个存在的表结构。[MODIFY<列名><数据类型>];命令格式为ALTERTABLE<表名>[ADD(新列名 类型);//在所有列的右边扩充新列][DROP<列名>//删除某一列]altercolumn例要在学生表Students增加学生住址列nation_place,其语句为例要将学生表Students的学生住址列nation_place的长度概为20,其语句为例要将学生表S
5、tudents的学生住址列nation_place删除,其语句为3.表的删除注意:基本表一旦被删除,表中的数据以及建立在该表上的索引和视图都将自动被删除掉。因此执行删除基本表的操作一定要格外小心。例删除Students表。DROPTABLEStudents;命令格式为:DROPTABLE<表名>;4.索引的建立命令格式为:CREATE[UNIQUE]INDEX<索引名>ON<表名>(<列名>[][,<列名>[]]…);说明:<表名>是要为其创建索引的基本表的名字。索引可以建立在该表的一列或多列上,各列名之间用逗号分隔。每个<列名>还可以用<排序
6、方式>来指定索引值按照ASC(升序)或DESC(降序)的方式排序,缺省值为ASC。UNIQUE表明每一个索引值只对应唯一的一个元组,即索引值相同的元组只索引一次。例为学生选课数据库中的Reports建立索引。按Sno(学号)升序和Cno(课程号)号降序建唯一索引。其语句为:5.索引的删除命令格式为:DROPINDEX<索引名>;例删除基本表Reports上的Rep_SCno索引。DROPINDEXRep_SCno;SQL中的格式:dropindextablename.indexname5.4.3数据查询SELECT[ALL
7、DISTINCT]目标列FROM表名或视图名[WHERE条件表达
8、式][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC
9、DESC]];说明:根据WHERE子句的条件,从FROM子句指定的基本表或视图中找出满足条件的元组,再按目标列表达式规定的属性列选出元组中对应的属性值形成结果表。ALL指定在结果集中可以显示重复行,ALL是默认设置。DISTINCT指定在结果集中除去重复的行。如果有GROUP子句,则将结果按<列名1>的值进行分组。如果GROUP子句带H
此文档下载收益归作者所有