数据库SQL语法函数介绍.ppt
《数据库SQL语法函数介绍.ppt》由会员分享,可在线阅读,更多相关《数据库SQL语法函数介绍.ppt(121页珍藏版)》请在三一办公上搜索。
1、,数据库 SQL 函数使用基础,内容提要,关系数据库基本知识SQL语言概述SQL语句(Select)使用SQL函数使用SQL语句与数据库可用性和性能的关系,目标,了解数据库的一些基本概念(表、列、索引、事务、锁)了解SQL语言的历史、特点和语句分类掌握Select语句的基本语法结构和使用掌握Select语句中的复杂条件、排序、分组、聚集计算的使用了解多表关联查询(左连接和等值连接)的使用和注意事项掌握主要函数的用法和使用注意事项结合一些例子,说明编写SQL时的注意事项;记住常见的易导致IQ数据库可用性(节点宕机、资源消耗大)问题和性能问题的一些SQL操作/函数,内容提要,关系数据库基本知识SQ
2、L语言概述SQL语句(Select)使用SQL函数使用SQL语句与数据库可用性和性能的关系,关系数据库基本知识,数据库基本知识数据库的概念和基本特征数据库管理系统数据模型关系数据库基础关系数据库的定义表的特征完整性问题表与表之间的关系视图,关系数据库基本知识,关系数据库基础索引锁事务,数据库和的概念基本特征,数据的概念数据(Data)是数据库中存储的基本对象 数据的定义 描述事物的符号记录数据的分类文字、图形、图像、声音 数据库的概念和特征数据库是按照某种数据模型组织起来长期存储在计算机内的有组织、可共享的数据集合,数据库的概念和基本特征,数据库的概念和特征这种数据集合具有如下特点:数据按一定
3、的数据模型组织、描述和储存可为各种用户共享冗余度较小数据独立性较高易扩展具有一致性和可维护性,能够确保数据的可靠性和安全性,数据库管理系统,定义位于用户和操作系统之间的一种软件(数据库管理软件)用途科学地组织和存储数据、高效地获取、管理和维护数据组成数据描述语言(DDL)及其翻译程序数据操纵语言(DML)及其翻译程序数据库运行管理程序,数据模型,定义表示实体类型及实体类型间联系的模型称为“数据模型”种类概念数据模型结构数据模型,实体定义:客观存在并可相互区别的事物。如:客户,产品等,数据模型,概念数据模型它是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的
4、信息结构。结构数据模型它是直接面向数据库的逻辑结构,是现实世界的第二层抽象,主要包括:层次模型用树型结构表示实体间联系的数据模型。网状模型有向图结构表示实体类型及实体间联系的 数据模型。关系模型用二维表格结构表达实体集,用外键表示 实体间联系。,关系数据库的定义,关系数据库是关系(二维表)的集合关系数据库使用关系(二维表)存储数据由行和列组成的二维结构 存放学生信息的关系表,列(字段/属性),行(一条记录),表的特征,二维表是由行和列组成的二维结构每一行称为元组(记录行),每一列具有唯一名称(字段/属性名)行和列的交叉点,表示单个数据值(数据项)每张表必须具有主键,用来标识唯一的元组每一列的所
5、有值必须符合相同的数据格式每一列具有特定的范围的值,称为属性域行与列的次序并不主要,表的特征,字段字段用于保存数据中某一类型的属性,需要为字段定义相应的类型常见类型数值、字符串、日期/时间主键能够唯一标识表中的每条记录的字段或者字段的组合一张表中只能有一个主键,数据完整性,数据完整性是指数据的正确性、相容性和有效性完整性包括:,输入的类型是否正确?年龄必须是数字输入的格式是否正确?身份证号码必须是18位是否在允许的范围内?性别只能是”男”或者”女”是否存在重复输入?学员信息输入了两次是否符合其他特定要求?信誉值大于5的用户才能够加入会员列表,数据完整性,关系模型的完整性规则是对关系的某种约束条
6、件完整性约束包括:实体完整性域完整性参照完整性用户定义完整性,实体完整性,实体完整性要求表中的所有行都有唯一的标识实现方法有主键约束(PRIMARY KEY)惟一性约束(UNIQUE),域完整性,域完整性指列的值域的完整性如数据类型、格式、值域范围、是否允许空值等域完整性限制了某些属性中出现的值,把属性限制在一个有限的集合中例如,如果属性类型是整数,那么它就不能是101.5或任何非整数,参照完整性,参照完整性是对不同表之间属性或字段的引用关系比如外键约束,职工表(R2),部门表(R1),主键,外键,参照完整性,注意实体完整性是对应元组或者行而言的。域完整性是对应属性或者列而言的。引用完整性是对
7、不同表之间属性或列的引用关系而言的。,用户定义完整性,关系数据库系统根据应用环境不同,往往需要一些特殊约束条件,用户定义的完整性是针对某一具体应用领域,对关系数据库提出的约束条件。反应了某一具体应用涉及的数据必须满足的语义要求例如:学生的年龄限制为14-35之间关系数据库提供了定义和检验这些完整性约束的机制,以便用统一的系统的方法处理它们,而不用应用程序处理,表与表之间的关系,表与表之间的关系分为三种一对一关系例如,班级与班长之间的联系:一个班级只有一个正班长一对多关系班级与学生之间的联系:一个班级中有若干名学生,每个学生只在一个班级中学习多对多关系课程与学生之间的联系:一门课程同时有若干个学
8、生选修一个学生可以同时选修多门课程,视图,视图是一个虚拟表,其内容由查询定义同真实的表一样,视图包含一系列字段和行数据。但是视图并不在数据库中真正的存储数据。视图中的数据来自于定义视图的查询所引用的表,并且在使用视图时动态生成。为什么要使用视图简单性看到的就是需要的安全性通过视图用户只能查询和修改他们所能见到的数据逻辑数据独立性视图可以帮助用户屏蔽真实表结构变化带来的影响,索引,在关系数据库中,可以使用索引加快访问表中数据的速度在理解索引时,可以想象一本书,其中书的内容就相当于表里的数据,而书前面的目录就相当于该表的索引通过在要执行搜索的表中选择一列或多列来创建索引索引是针对表中某个字段或某几
9、个字段创建的关系数据库会在某些约束上自动创建相应的索引(比如:主键、唯一约束),IQ数据库支持九种索引,事务,数据库事务是指作为单个逻辑工作单元执行的一组操作事务具有ACID属性原子性是指对工作单元中修改数据的操作要么全都执行,要么都不执行一致性是指事务在完成时,必须使所有数据都保持一致状态隔离性是指由并发事务所做的修改必须与任何其它并发事务所做的修改相隔离持久性是指事务完成后,事务对数据所做的修改时持久的。,锁,不同的关系数据库产品在实现事务隔离性时可能会采用不同的方法,目前主要有两类方法:一种是采用悲观方法,这种方法主要采用锁定技术(locking)来实现不同的隔离级别(例如:SAP AS
10、E);另一类方法主要采用MVCC(即多版本并发控制,是一种乐观方法)技术再辅之以少量的锁实现(例如:SAP IQ),锁,不同的关系数据库产品在实现事务隔离性时可能会采用不同的方法,目前主要有两类方法:一种是采用悲观方法,这种方法主要采用锁定技术(locking)来实现不同的隔离级别(例如:SAP ASE);另一类方法主要采用MVCC(即多版本并发控制,是一种乐观方法)技术再辅之以少量的锁实现(例如:SAP IQ),IQ数据库事务和锁的特点,IQ使用ANSI隔离级别3保持事务中数据的一致性,这一隔离级别也叫做“Snapshot Versioning”。在一个事务进行的过程中,IQ呈现给每一个连接
11、到数据库的用户最近一次已提交的表数据的快照,直到用户重新连接到IQ或发出“commit”命令,IQ数据库事物和锁的特点,IQ执中行Insert、Update、Delete、Load Table等语句时会加排它锁;而查询(Select)语句不会向ASE那样加上共享锁,而是通过“版本快照技术”实现事物的隔离性IQ数据库中能够有多个“写用户”,写用户不会阻塞读用户,读用户不会阻塞写用户,但是对于同一个表只允许一个写用户IQ在实现Snapshot Versioning机制时,需要使用IQ Main Store中的空间存放版本数据。当有大量用户连接时,并且用户执行大量的数据修改,会占用大量Main St
12、ore空间。,内容提要,关系型数据库基本知识SQL语言概述SQL语句(Select)使用SQL函数使用SQL语句与数据库可用性和性能的关系,SQL简史,上世纪70年代,SQL 诞生于IBM 公司在加利福尼亚San Jose 的试验室SQL全称是结构化查询语言Structured Query Language 并常常简称为sequelSQL为RDBMS(关系型数据库管理系统)开发是一种非过程语言非过程性语言的意思就是指与具体过程无关举例来说SQL 描述了如何对数据进行检索插入删除但它并不说明如何进行这样的操作,SQL语言介绍,SQL全称是“结构化查询语言(Structured Query Lan
13、guage)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。,SQL语言介绍,美国国家标准协会(ANSI)和国际标准化组织(ISO)已将其批准为正式关系查询语言标准。ANSI SQL-86AN
14、SI SQL-89ANSI SQL-92ANSI SQL-99ANSI SQL-2003ANSI SQL标准实际上定义了三个级别的兼容性:入门级、中级与完整级。大多数产品完全符合入门级标准,但只部分符合更高的标准。,SQL语言特点,统一的语言 SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。SQL为许多任务提供了命令,包括:查询数据在表中插入、修改和删除记录建立、修改和删除数据对象控制对数据和数据对象的存取保证数据库一致性和完整性以前的数据库管理系统为上
15、述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。,SQL语言特点,非过程化语言 SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表
16、是否有索引,表有什么类型的索引。,SQL语言特点,面向集合的操作方式SQL语言采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合非关系数据模型采用的是面向记录的操作方式,任何一个操作其对象都是一条记录。例如查询所有平均成绩在80分以上的学生姓名,用户必须说明完成该请求的具体处理过程,即如何用循环结构按照某条路径一条一条地把满足条件的学生记录读出来。,SQL语言特点,是所有关系数据库的公共语言由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移
17、植的。,SQL语言特点,以同一种语法结构提供两种使用方式SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接键入SQL命令对数据库进行操作。作为嵌入式语言,SQL语句能够嵌入到高级语言(例如C、COBOL、FORTRAN、PL/1)程序中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。这种以统一的语法结构提供两种不同的使用方式的作法,为用户提供了极大的灵活性与方便性。,SQL语言特点,语言简洁,易学易用SQL语言功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心
18、功能只用了9个动词:CREATE、DROP、SELECT、INSERT、UPDATE、DELETE、GRANT、REVOKE。而且SQL语言语法简单,接近英语口语,因此容易学习,容易使用。,SQL语言分类,DDL,数据定义语言DML,数据操纵语言DCL,数据控制语言,SQL语言分类DDL,用户创建或重新构建数据库的语言CREATE TABLEALTER TABLEDROP TABLECREATE INDEXALTER INDEXDROP INDEX,SQL语言分类DML,用于在关系数据库对象中操纵数据INSERTUPDATEDELETESELECT(也被单独称为DQL),SQL语言分类DCL,
19、用于创建与用户访问相关的对象,也控制着用户的权限分配ALTER USER 改变数据库用户信息GRANT 为用户授予特权REVOKE 从用户处收回特权,事务控制命令,用户管理数据库的事务命令COMMIT 用于保护数据库的事务ROLLBACK 用于撤消数据库的事务SAVEPOINT 创建一组事务中的撤消点,内容提要,关系数据库基本知识SQL语言概述SQL语句(Select)使用SQL函数使用SQL语句与数据库可用性和性能的关系,SQL语句的一般语法规则,Select语句的简单例子SELECT NAME,STARTTERM,ENDTERMFROM PRESIDENTSWHERE NAME=LINCO
20、LN关键字(大小写不敏感)SelectFromWhere使用空格分开不同部分,Select、From、Distinct,语法:select 例1:select colname 例2:select*例3:select 10*10语法:from 第一个查询例1:select*from employees;语法:DISTINCT(返回的没有重复的数据)例1:select distinct dept_id from employee,练习,下列语句所返回的结果是否相同SELECT*FROM CHECKSselect*from checks下列查询能否工作a.Select b.Select*b.Sele
21、ct*from employeec.Select emp_id,salary FROM employee,SQL语言元素,关键字每个 SQL 语句都包含一个或多个关键字。SQL 的关键字不区分大小。例如,在下面的语句中,SELECT 和 FROM 是关键字:SELECT*FROM employee,SQL语言元素,保留字SQL 中的一些关键字也是保留字。要在 SQL 语句中使用保留字作为标识符,必须用双引号将它引起来。SQL 语句中出现的很多关键字都是保留字,但并非全部都是。例如,必须使用以下语法检索名为 SELECT 的表的内容。SELECT*FROM SELECT”Sybase IQ的保留
22、字详细列表,参见,SQL语言元素,标识符标识符是数据库中对象(如用户 ID、表和列)的名称。标识符的最大长度是 128 个字节。当以下任一条件成立时,标识符需要用双引号引起来或用中括号括起来:标识符包含空格。标识符的首字符不是字母字符标识符包含保留字。标识符包含字母和数字以外的其它字符。字母字符包括字母表中的字母,以及下划线(_)、at 符号()、井号(#)和美元符号($)。数据库归类序列指出了哪些字符被视为字母字符或数字字符。,表达式,表达式的定义非常简单:表达式可以返回一个值,表达式的类型非常广泛,它以包括各种类型的数据如数字、字符、逻辑类型等SELECT amount FROM chec
23、ksAmount是表达式SELECT NAME,ADDRESS,PHONE FROM ADDRESSBOOKNAME、ADDRESS、PHONE、ADDRESSBOOK是表达式,SQL运算符,算术运算符加、减、乘、除、取模赋值运算符=位运算符&、|、比较运算符True、False、unknown;、)字符型like(%、_)、|逻辑型NOT、AND、ORselect*from department where 1=1 or 1=1 and 1=2select*from department where not 1=2 and 1=1,SQL运算符,集合运算union、union all、int
24、ersect、minus从属运算in、between,搜索条件,比较条件=等于 大于=大于或等于 不等于!不大于!不小于,搜索条件,BetweenBETWEEN 条件的语法如下:expr NOT BETWEEN start-expr AND end-exprBETWEEN 条件的值可以是 TRUE、FALSE 或 UNKNOWN。在没有关键字 NOT 的情况下,如果 expr 介于 start-expr 和 end-expr 之间,则条件的值为 TRUE。NOT 关键字使条件的含义相反,但保留 UNKNOWN 不变。BETWEEN 条件相当于两个不等式的组合:expr=start-expr A
25、ND expr=end-expr,搜索条件,LIKELIKE 条件的语法如下:expression NOT LIKE pattern ESCAPE escape-expr LIKE 条件的值可以是 TRUE、FALSE 或 UNKNOWN只能对字符串数据使用like通配符匹配项_(下划线)任意一个字符%(百分号)包含零个或多个字符的任意字符串 指定范围或集合中的任意单个字符 不在指定范围或集合中的任意单个字符,搜索条件,ExistsEXISTS 条件的语法如下:EXISTS(subquery)如果子查询结果至少包含一行,则 EXISTS 条件为 TRUE;如果子查询结果不包含任何行,则条件为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 SQL 语法 函数 介绍
链接地址:https://www.31ppt.com/p-6296347.html