您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 0数据库应用第5章-1_结构化查询语言SQL_V08_2
2008-10-7哈工大计算机学院张建国Slide5-1第5章结构化查询语言SQL数据库系统应用数据库系统应用DataBaseSystemApplicationDataBaseSystemApplication张建国哈工大计算机科学与技术学院2008-10-72第第55章章结构化查询语言结构化查询语言SQLSQL2008-10-7哈工大计算机学院张建国Slide5-3第5章结构化查询语言SQL本章主要内容本章主要内容SQL概述基本表的定义、修改与删除SQL的数据更新数据记录的插入数据记录的修改数据记录的删除SQL的数据查询索引的建立与删除T-SQL语言2008-10-7哈工大计算机学院张建国Slide5-4第5章结构化查询语言SQL5.1SQL5.1SQL概述概述1.SQL的发展SQL(StructuredQueryLanguage)意为结构化查询语言.1974年由Boyce和Chamberlin提出来.最初在SystemR关系数据库中实现.该语言功能丰富、语言简捷、使用灵活方便、深受各界欢迎.1986年成为美国国家标准.1987年成为国际标准SQL86.1989年,ISO颁布了增强完整性特征的SQL89标准.1993年,ISO对SQL89标准进行了大量的修改和扩充,推出SQL2(SQL92).2008-10-7哈工大计算机学院张建国Slide5-5第5章结构化查询语言SQL5.1SQL5.1SQL概述概述((Cont.)Cont.)SQL是一种通用的、功能极强的关系数据库语言.各数据库厂家纷纷推出各自支持SQL的软件或与SQL接口软件,使自己的数据库可以运行SQL.许多其他软件(例如图形处理、人工智能、软件工程工具、软件开发工具等)也利用SQL语言的数据查询功能,作为自身的一部分,使其数据查询功能更强大.许多程序设计语言中也都引入了SQL.2008-10-7哈工大计算机学院张建国Slide5-6第5章结构化查询语言SQL2.SQL的特点非关系模型的数据语言模式数据定义语言:SchemaDDL外模式(子模式)数据定义语言:SubSchemaDDL存储模式数据定义语言:DSDL(DataStorageDefinitionLanguage)数据操纵语言:DMLSQL语言SQL将数据定义语言DDL、数据操纵语言DML和数据控制语言DCL集成在一起,各种语言风格统一.(1)一体化5.1SQL5.1SQL概述概述(Cont.)(Cont.)2008-10-7哈工大计算机学院张建国Slide5-7第5章结构化查询语言SQL5.1SQL5.1SQL概述概述((Cont.)Cont.)(2)高度非过程化非关系语言通过存取路径存取数据.SQL语言SQL是一种面向问题的语言,只需提出“做什么”,不必指出“怎么做”.存取路径的选择和SQL的操作过程是由系统自动完成的.(3)面向集合的操作方式非关系语言一次一个记录SQL采用集合操作,操作对象和操作结果都是元组的集合.2008-10-7哈工大计算机学院张建国Slide5-8第5章结构化查询语言SQL5.1SQL5.1SQL概述概述((Cont.)Cont.)(4)两种使用方式、统一的语法结构SQL既是自含式语言,又是嵌入式语言.自含式语言能独立地在联机方式下使用(命令方式),用户可以在终端键盘上直接输入SQL命令对DB进行操作.嵌入式语言嵌入到高级语言(VB、PB、Java等)程序中,利用主语言(高级语言)进行计算处理、利用DB语言进行数据管理.同一条命令在两种操作方式中的语法结构基本一致.2008-10-7哈工大计算机学院张建国Slide5-9第5章结构化查询语言SQL5.1SQL5.1SQL概述概述((Cont.)Cont.)(5)语言简捷、易学易用SQL具有很强的功能,但由于其设计巧妙,使得语言十分简捷.完成其核心功能只用9个动词:数据查询:SELECT(查询)数据定义:CREATE(创建表、索引、视图)DROP(删除表、索引、视图)ALTER(修改表)数据操纵:INSERT(插入)DELETE(删除)UPDATE(修改)数据控制:GRANT(授权)REVOKE(收回授权)2008-10-7哈工大计算机学院张建国Slide5-10第5章结构化查询语言SQL3.SQL支持三级模式结构外模式外模式对应于视图View和部分基本表BaseTable用户可以用SQL语言对基本表和视图进行操作从用户的观点看基本表和视图是一样的模式模式对应于基本表基本表是独立存在的表每个基本表对应一个关系5.1SQL5.1SQL概述概述((Cont.)Cont.)2008-10-7哈工大计算机学院张建国Slide5-11第5章结构化查询语言SQL5.1SQL5.1SQL概述概述((Cont.)Cont.)内模式内模式对应于存储文件存储文件是在计算机存储介质中存放的文件形式一个或若干个基本表对应一个存储文件视图视图是从一个或几个基本表或其他视图导出的表视图并不存放实际的数据,仅保存视图的定义使用视图时,根据视图定义,从基本表中取数据因此,视图实际上是一个虚表2008-10-7哈工大计算机学院张建国Slide5-12第5章结构化查询语言SQL5.1SQL5.1SQL概述概述((Cont.)Cont.)SQL用户2视图3视图2视图1基本表3基本表2基本表1存储文件3存储文件2存储文件1基本表4外模式模式内模式SQL用户1SQL用户32008-10-7哈工大计算机学院张建国Slide5-13第5章结构化查询语言SQL5.25.2基本表的定义、修改与删除基本表的定义、修改与删除格式:CREATETABLE表名(列名1数据类型1[列级完整性约束条件1][,列名2数据类型2[列级完整性约束条件2]]…[,列名n数据类型n[列级完整性约束条件n]]);表名:基本表的表名列名:属性名数据类型:属性的数据类型,可参考具体数据库系统的数据类型1.基本表的定义2008-10-7哈工大计算机学院张建国Slide5-14第5章结构化查询语言SQL5.25.2基本表的定义、修改与删除基本表的定义、修改与删除列级完整性约束条件:相应属性的完整性约束条件NULL/NOTNULL:该项是否可以取空值UNIQUE:该项是否具有唯一性CHECK:该项的取值范围PRIMARYKEY:设置主码FOREIGNKEY:设置外码2008-10-7哈工大计算机学院张建国Slide5-15第5章结构化查询语言SQL5.25.2基本表的定义、修改与删除基本表的定义、修改与删除((Cont.)Cont.)例:建立一个”学生”表Student和一个”系”表.Student(Sno,Sname,Birthday,Score,Dno)Dpet(Dno,Dname,Dtel)设:学号Sno:CHAR(10),主码姓名Sname:CHAR(8)性别Sex:CHAR(2),取值范围:”男”或”女”出生日期Birthday:SMALLDATETIME考分Score:SMALLINT,取值范围:500~750系号Dno:CHAR(2),系的主码,学生的外码系名Dname:CHAR(30)系电话Dtel:CHAR(13)2008-10-7哈工大计算机学院张建国Slide5-16第5章结构化查询语言SQL5.25.2基本表的定义、修改与删除基本表的定义、修改与删除((Cont.)Cont.)CREATETABLEDept(DnoCHAR(2)primarykey,DnameCHAR(30),DtelCHAR(13));CREATETABLEStudent(SnoCHAR(10),SnameCHAR(8),SexCHAR(2)CHECK(Sex=‘男’orSex=‘女’),BirthdaySMALLDATETIME,ScoreSMALLINTCHECK(Score=500andScore=750,DnoCHAR(2),PRIMARYKEY(Sno),FOREIGNKEY(Dno)REFERENCESDept(Dno));2008-10-7哈工大计算机学院张建国Slide5-17第5章结构化查询语言SQL2.修改基本表格式:ALTERTABLE表名[ADD列名数据类型[完整性约束条件]]|[DROPCOLUMN列名]|[ALTERCOLUMN列名数据类型];其中:ADD子句:增加新列及其完整性约束DROP子句:删除指定的列ALTER子句:修改列的定义,包括列名和数据类型5.25.2基本表的定义、修改与删除基本表的定义、修改与删除((Cont.)Cont.)2008-10-7哈工大计算机学院张建国Slide5-18第5章结构化查询语言SQL例:在Student表中加入一列性别”民族”,6位字符.ALTERTABLEStudentADDNationCHAR(6);例:将”民族”的数据类型改为bit.ALTERTABLEStudentALTERCOLUMNNationCHAR(8);例:删除”民族”.ALTERTABLEStudentDROPCOLUMNNation;5.25.2基本表的定义、修改与删除基本表的定义、修改与删除((Cont.)Cont.)2008-10-7哈工大计算机学院张建国Slide5-19第5章结构化查询语言SQL3.删除基本表格式:DROPTABLE表名删除基本表时,该表的数据以及在此表上建立的视图及索引全部删除,因此执行删除操作时应特别小心.例:删除基本表Student.DROPTABLEStudent;5.25.2基本表的定义、修改与删除基本表的定义、修改与删除((Cont.)Cont.)2008-10-7哈工大计算机学院张建国Slide5-20第5章结构化查询语言SQL数据库实例数据库实例设学生-课程数据库中包含三个表:Student(Sno,Sname,Sex,Birthday,Score,Dname)SC(Sno,Cno,Grade)Course(Cno,Cname,CPno,Credit)其中:Sno:CHAR(10);Sname:CHAR(8);Sex:CHAR(2);Birthday:SMALLDATETIME;Score:INT;Dname:CHAR(30)Grade:SMALLINTCno:CHAR(6);Cname:CHAR(30);CPno:CHAR(6);credit:TINYINT学生课程选课分数mn2008-10-7哈工大计算机学院张建国Slide5-21第5章结构化查询语言SQL5.3SQL5.3SQL的数据更新的数据更新插入数据插入单个元组插入子查询的结果数据修改修改一个元组的数据修改多个元组的数据根据查询结果修改删除数据删除一个元组删除多个元组删除子查询的结果2008-10-7哈工大计算机学院张建国Slide5-22第5章结构化查询语言SQL1.插入数据(1)插入单个元组格式:INSERTINTO表名[(列名1[,列名2,…)]VALUES(常量1[,常量2],…);例:将一个新学生元组的全部属性插入到Student中.•INSERTINTOStudent•VALUES('6053610301','李兰','女','1989-3-5',658,'实验学院');5.3SQL5.3SQL的数据更新的数据更新(Cont.)(Cont.)2008-10-7哈工大计算机学院张建国Slide5-23第5章结构化查询语言SQL例:将一个新学生元组的部分属性插入到Student中.INSERTINTOStudent(Sno,Sname,Dname)VALUES('1030310105','王芳','计算机系');未列出的属性列取空值.(2)插入子查询结果INSERTINTO表名([列名1[,列名2,……)]子查询;5.3SQL5.3SQL的数据更新的数据更新(Cont.)(Cont.)2008-10-7哈工大计算机学院张建国Slide5-24第5章结构化查询语言SQL例:建立一个学生平均成绩表SG,包括学号Sno和平均成绩GavgCREATET
本文标题:0数据库应用第5章-1_结构化查询语言SQL_V08_2
链接地址:https://www.777doc.com/doc-5587682 .html