数据库技术(SQL语言)课件.ppt

上传人(卖家):晟晟文业 文档编号:4845198 上传时间:2023-01-17 格式:PPT 页数:35 大小:147.50KB
下载 相关 举报
数据库技术(SQL语言)课件.ppt_第1页
第1页 / 共35页
数据库技术(SQL语言)课件.ppt_第2页
第2页 / 共35页
数据库技术(SQL语言)课件.ppt_第3页
第3页 / 共35页
数据库技术(SQL语言)课件.ppt_第4页
第4页 / 共35页
数据库技术(SQL语言)课件.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、数据库技术数据库技术第第 5 讲讲 SQL 语言语言 数据数据DBMSClient请求请求回答回答SQL 语言语言Oracle 8i/9iSQL Server 2000PowerBuilderVBDelphiC+BuilderSQL Server 2000简介简介 2000年年2月月 Microsoft 公司发布了公司发布了Windows 2000 操作系统家族。操作系统家族。Windows 2000 Professional Windows 2000 Server Windows 2000 Advanced Server Windows 2000 Datacenter Server SQL

2、Server 2000 客户端软件客户端软件 SQL Server 2000 个人版个人版 SQL Server 2000 标准版标准版 SQL Server 2000 企业版企业版如何使用如何使用SQL Server 2000?1、利用企业管理器(、利用企业管理器(Enterprise Manager)建立)建立数据库、用户,并且对用户授权;数据库、用户,并且对用户授权;2、利用查询分析器(、利用查询分析器(Query Analyzer)对)对SQLServer进行查询、管理。进行查询、管理。1、SQL语言概述语言概述 SQL(Structured Query language)语言是)语言

3、是1974年由年由Boyce和和Chamberlin提出的。提出的。1975年年1979年年IBM公司公司San Jose Research Laboratory 研制了著名的关系研制了著名的关系数据库管理系统原型数据库管理系统原型System R,并实现了这种语言。,并实现了这种语言。由于它功能丰富、语言简捷,倍受用户及计算机工业由于它功能丰富、语言简捷,倍受用户及计算机工业界欢迎,被众多计算机公司和软件公司所采用。经各界欢迎,被众多计算机公司和软件公司所采用。经各公司的不断修改、扩充和完善,公司的不断修改、扩充和完善,SQL语言最终发展成语言最终发展成为关系数据库的标准语言。为关系数据库的

4、标准语言。1986年年10月美国国家标准局(月美国国家标准局(American National Standard Institute,简称简称ANSI)的数据库委员会)的数据库委员会X3H2批批准了准了SQL作为关系数据库语言的美国标准。同年公作为关系数据库语言的美国标准。同年公布了布了SQL标准文本标准文本(简称简称SQL-86)。1987年国际标准化组织年国际标准化组织(International Organization for standardization,简称,简称ISO)也通过了这一标准。此也通过了这一标准。此后后ANSI不断修改和完善不断修改和完善SQL标准,并于标准,并于1

5、989年公布年公布了了SQL-89标准。标准。1992年又公布了年又公布了SQL-92标准。标准。1999年又公布了年又公布了SQL-99标准。标准。SQL-99是是SQL-92的一个超集。许多数据库系统的一个超集。许多数据库系统支持支持SQL-99的新结构,但目前还没有一个数据库系的新结构,但目前还没有一个数据库系统完全支持统完全支持SQL-99的所有新结构。实际上甚至目前的所有新结构。实际上甚至目前的数据库系统不能完全支持的数据库系统不能完全支持SQL-92。自自SQL成为国际标准语言以后,各个数据库厂成为国际标准语言以后,各个数据库厂家纷纷推出各自的家纷纷推出各自的SQL软件或与软件或与

6、SQL的接口软件。的接口软件。这就使大多数数据库系统均用这就使大多数数据库系统均用SQL作为共同的数据作为共同的数据存取语言和标准接口,使不同数据库系统之间的互存取语言和标准接口,使不同数据库系统之间的互操作有了共同的基础。操作有了共同的基础。这个意义十分重大。因此,有人把确立这个意义十分重大。因此,有人把确立SQL为为关系数据库语言标准及其后的发展称为是一场革命。关系数据库语言标准及其后的发展称为是一场革命。SQL成为国际标准,对数据库以外的领域也产成为国际标准,对数据库以外的领域也产生了很大影响,有不少软件产品将生了很大影响,有不少软件产品将SQL语言的数据语言的数据查询功能与图形功能、软

7、件工程工具、软件开发工查询功能与图形功能、软件工程工具、软件开发工具、人工智能程序结合起来。具、人工智能程序结合起来。SQL已成为数据库领已成为数据库领域中一个主流语言。域中一个主流语言。2、SQL语言的特点语言的特点 集集DDL、DML、DCL于一体;于一体;高度非过程化;高度非过程化;面向集合的操作方式;面向集合的操作方式;一种语法提供两种操作方式(交互式、嵌入式)。一种语法提供两种操作方式(交互式、嵌入式)。嵌入式嵌入式SQL SQL是一种强有力的声明性查询语言,它在许是一种强有力的声明性查询语言,它在许多情况下比通用编程语言的编码简单许多。多情况下比通用编程语言的编码简单许多。但是使用

8、通用编程语言(至少具有过程化语言但是使用通用编程语言(至少具有过程化语言的特性)访问数据库还是很必要的,原因有二:的特性)访问数据库还是很必要的,原因有二:1、SQL不能表达所有查询要求。不能表达所有查询要求。2、非声明性的动作(例如,打印一份报告或把、非声明性的动作(例如,打印一份报告或把一次查询结果送到一个图形用户界面中)都不能用一次查询结果送到一个图形用户界面中)都不能用SQL实现。实现。动态动态SQL SQL的动态的动态SQL组件允许程序在运行时构造、组件允许程序在运行时构造、提交提交SQL查询。使用动态查询。使用动态SQL,程序可以在运行时,程序可以在运行时以字符串的形式生成以字符串

9、的形式生成SQL查询。查询。l数据类型(数据类型(SQL-92)char(n):固定长度的字符串。):固定长度的字符串。varchar(n):可变长字符串。):可变长字符串。int:整数。:整数。smallint:小整数类型。:小整数类型。numeric(p,d):定点数,精度):定点数,精度p位,小数点右边位,小数点右边d位。位。real:浮点数。:浮点数。double precision:双精度浮点数。:双精度浮点数。date:日期(年、月、日)。:日期(年、月、日)。time:时间(小时、分、秒)。:时间(小时、分、秒)。interval:两个:两个date或或time类型数据之间的差。

10、类型数据之间的差。注意:目前各公司都在自己的注意:目前各公司都在自己的DBMS上实现了对上实现了对SQL语言的支持,但在语言的功能上都根据实际需要进行语言的支持,但在语言的功能上都根据实际需要进行了扩充或简化。特别是,都增加了对过程化语句的支了扩充或简化。特别是,都增加了对过程化语句的支持功能。持功能。例如,例如,Oracle所支持的是所支持的是 PL/SQL SQL Server 2000支持的是支持的是 Transact-SQL3、SQL语言的三级模式语言的三级模式SQLViewTableTableTableDatafile4、SQL语言语言数据定义数据定义(DDL)Create tabl

11、e Drop table Create View Drop View Create Index Drop Index 数据操纵数据操纵(DML)Select Update Insert Delete数据控制数据控制(DCL)Grant RevokeSQL语言举例语言举例create table Teacher(Tno integer Primary Key,Tname char(6)not null,Title char(6),Dept char(10);insert into Teachervalues(101,李华李华,讲师讲师,计算机计算机);insert into Teacher(Tn

12、o,Tname,Dept)values(104,李春生李春生,计算机计算机);select*from teacherwhere dept=通信通信;select Tname,Dept from teacherwhere dept=通信通信;select*from teacherwhere dept=通信通信 and Title=讲师讲师;update teacherset dept=通信工程通信工程where dept=通信通信;delete from teacher where dept=计算机计算机;create table Teacher(Tno integer Primary Key,

13、Tname char(6)not null,Title char(6),Dept char(10);create Table Course(Cno integer not null,Tno integer not null,Cname char(10)not null,credit numeric(3,1)not null,Primary key(cno,tno);insert into Coursevalues(1,101,数据库数据库,3.5);insert into Coursevalues(1,103,数据库数据库,3.5);insert into Coursevalues(2,102

14、,网络网络,3);insert into Coursevalues(2,101,网络网络,3);insert into Coursevalues(3,103,操作系统操作系统,3);select distinct cname from course;select*from course where credit 3;select*from course where credit between 2 and 3;create Table Course(Cno integer not null,Tno integer not null,Cname char(10)not null,credit n

15、umeric(3,1)not null,Primary key(cno,tno);select*from teacher where dept in(计算机计算机,自动化自动化);select*from teacher where dept not in(计算机计算机);select*from teacher where tname like 李李%;select*from teacher where title is null;select*from teacher order by tno desc;select*from teacher order by title;select cou

16、nt(*)from teacher;select count(distinct cname)from course;数据库技术数据库技术第第 6 讲讲 SQL 语言(二)语言(二)数据数据DBMSClient请求请求回答回答SQL 语言语言Oracle 8i/9iSQL Server 2000PowerBuilderVBDelphiC+Buildercreate Table Course(Cno integer not null,Tno integer not null,Cname char(10)not null,credit numeric(3,1)not null,Primary key

17、(cno,tno);create table Teacher(Tno integer Primary Key,Tname char(6)not null,Title char(6),Dept char(10);select*from teacher,course;select*from teacher,coursewhere teacher.tno=course.tno;select cname,credit from course where Tno in(select Tno from Teacher where Tname=李华李华);select cname,credit from t

18、eacher,course where(teacher.tno=course.tno)and Tname=李华李华;查询李华所授课程的名称,学分查询李华所授课程的名称,学分select cname,credit from course where Tno in(select Tno from Teacher where Title=讲师讲师);select cname,credit from teacher,course where(teacher.tno=course.tno)and Title=讲师讲师;视图(视图(View)create view v_t_c as select Teac

19、her.Tno,Tname,Title,Dept,Cno,Cname from Teacher,course where Teacher.Tno=course.Tno;Select*from v_t_c;Select*from v_t_c where Tno=101;索引索引create Table Course(Cno integer not null,Tno integer not null,Cname char(10)not null,credit numeric(3,1)not null);create unique index course_ind on course(Tno,Cno

20、);create Table Course(Cno integer not null,Tno integer not null,Cname char(10)not null,credit numeric(3,1)not null,Primary key(cno,tno);Group by 和和 Having 子句子句create table Teacher(Tno integer Primary Key,Tname char(6)not null,Title char(6),Dept char(10);select*from teacher;select title,count(*)from

21、teacher group by title;select title,count(*)from teacher group by title having count(*)1;认识认识 nullinsert into Teachervalues(903,刘力伟刘力伟,助教助教,计算机计算机);insert into Teachervalues(904,赵莺赵莺,null,计算机计算机);insert into Teachervalues(905,张大军张大军,null,null);create table Teacher(Tno integer Primary Key,Tname char(

22、6)not null,Title char(6),Dept char(10);外键外键create table father_t(Cno integer primary key,Cname char(10)not null,Credit numeric(3,1);create table son_t(st_no integer primary key,fk_cno integer,grade integer,foreign key(fk_cno)references father_t(Cno);insert into father_tvalues(1,数据库数据库,2);insert into

23、 father_tvalues(2,网络网络,3);insert into son_tvalues(101,2,86);insert into son_tvalues(102,5,78);授权授权 Grant select on Teacher to st2;Revoke select on Teacher from st2;开发人员开发人员用户用户数据库系统的权限数据库系统的权限DBA管理员管理员游标游标 将将SQL语言嵌入到宿主语言中出现的一个问题是语言嵌入到宿主语言中出现的一个问题是失失配配,因为,因为SQL是对记录的集合进行操作,而宿主语言不是对记录的集合进行操作,而宿主语言不完全支持

24、记录集合的操作。解决的办法就是从本质上提完全支持记录集合的操作。解决的办法就是从本质上提供一种机制支持从关系(表)中一次检索一行。供一种机制支持从关系(表)中一次检索一行。这种机制称为这种机制称为游标游标,任何,任何SQL查询都可以声明一个查询都可以声明一个游标。声明游标后,就可以打开它,取出下一行,然后游标。声明游标后,就可以打开它,取出下一行,然后移动游标。移动游标。这样可以通过把游标定位在特殊的行,并读取它的这样可以通过把游标定位在特殊的行,并读取它的内容来检索表中的行。内容来检索表中的行。ODBC 和和 JDBC 嵌入式嵌入式SQL使得使得SQL与通用编程语言结合起来。与通用编程语言结

25、合起来。ODBC(open database connectivity)和和JDBC(Java database connectivity)促进了促进了SQL与通用编程语言的集与通用编程语言的集成。成。应用应用ODBC/JDBCDBMSSQLJava数据库技术数据库技术其他关系语言其他关系语言 数据DBMSClient请求请求回答回答QBEDatalog QBE(Query by Example)是一种图形化的语)是一种图形化的语言,它的查询语句看上去就像是表格,是用言,它的查询语句看上去就像是表格,是用“例子例子”表达的。表达的。QBE和它的变体广泛应用在个人计算机的和它的变体广泛应用在个人计算机的数据库系统里(例如,数据库系统里(例如,Access和和Excel)。)。Datalog的文法以的文法以Prolog语言为模型,虽然目前语言为模型,虽然目前没有被商业应用,但它已经应用在许多研究性的数没有被商业应用,但它已经应用在许多研究性的数据库系统里(据库系统里(特别是在知识库系统特别是在知识库系统)。)。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(数据库技术(SQL语言)课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|