首页 > 数据库 >DM7_SQL语言使用手册_第 1 章 结构化查询语言 DM_SQL 简介

DM7_SQL语言使用手册_第 1 章 结构化查询语言 DM_SQL 简介

时间:2024-01-11 09:37:44浏览次数:37  
标签:语句 DM 语言 数据类型 标度 使用手册 SQL

第 1 章 结构化查询语言 DM_SQL 简介

结构化查询语言 SQL(Structured Query Language)是在 1974 年提出的一种关系数据库语言。由于 SQL 语言接近英语的语句结构,方便简洁、使用灵活、功能强大,倍 受用户及计算机工业界的欢迎,被众多计算机公司和数据库厂商所采用,经各公司的不断修改、扩充和完善,SQL 语言最终发展成为关系数据库的标准语言。

SQL 的第一个标准是 1986 年 10 月由美国国家标准化组织(ANSI)公布的 ANSI X3.135-1986 数据库语言 SQL,简称 SQL-86,1987 年国际标准化组织(ISO)也通过了 这一标准。以后通过对 SQL-86 的不断修改和完善,于 1989 年第二次公布了 SQL 标准 ISO/IEC 9075-1989(E),即 SQL-89。1992 年又公布了 SQL 标准 ISO/IEC 9075:

1992,即 SQL-92。最新的 SQL 标准是 SQL-3(也称 SQL-99),1999 年作为 ISO/IEC 9075:1999《信息技术——数据库语言 SQL》发布。我国也相继公布了数据库语言 SQL 的 国家标准。 SQL 成为国际标准以后,其影响远远超出了数据库领域。例如在 CAD、软件工程、人 工智能、分布式等领域,人们不仅把 SQL 作为检索数据的语言规范,而且也把 SQL 作为检 索图形、图象、声音、文字等信息类型的语言规范。目前,世界上大型的著名数据库管理系

统均支持 SQL 语言,如 Oracle、Sybase、SQL Server、DB2 等。在未来相当长的时间 里,SQL 仍将是数据库领域以至信息领域中数据处理的主流语言之一。

由于不同的 DBMS 产品,大都按自己产品的特点对 SQL 语言进行了扩充,很难完全符 合 SQL 标准。目前在 DBMS 市场上已将 SQL 的符合率作为衡量产品质量的重要指标,并研 制成专门的测试软件,如 NIST。目前,DM SQL-92 入门级符合率达到 100%,过渡级符合 率达到 95%,并且部分支持更新的 SQL-99 标准。同时 DM 还兼容 Oracle 11g 和 SQL Server 2008 的部分语言特性。本章主要介绍 DM 系统所支持的 SQL 语言——DM_SQL 语言。


1.1 DM_SQL 语言的特点

DM_SQL 语言符合结构化查询语言 SQL 标准,是标准 SQL 的扩充。它集数据定义、数 据查询、数据操纵和数据控制于一体,是一种统一的、综合的关系数据库语言。它功能强大, 使用简单方便、容易为用户掌握。DM_SQL 语言具有如下特点:

1. 功能一体化

DM_SQL 的功能一体化表现在以下两个方面:

1) DM_SQL 支持多媒体数据类型,用户在建表时可直接使用。DM 系统在处理常规数 据与多媒体数据时达到了四个一体化:一体化定义、一体化存储、一体化检索、一 体化处理,最大限度地提高了数据库管理系统处理多媒体的能力和速度;

2) DM_SQL 语言集数据库的定义、查询、更新、控制、维护、恢复、安全等一系列操 作于一体,每一项操作都只需一种操作符表示,格式规范,风格一致,简单方便, 很容易为用户所掌握。

2. 两种用户接口使用统一语法结构的语言

DM_SQL 语言既是自含式语言,又是嵌入式语言。作为自含式语言,它能独立运行于联 机交互方式。作为嵌入式语言,DM_SQL 语句能够嵌入到 C 和 C++语言程序中,将高级语言 (也称主语言)灵活的表达能力、强大的计算功能与 DM_SQL 语言的数据处理功能相结合完成各种复杂的事务处理。而在这两种不同的使用方式中,DM_SQL 语言的语法结构是一致 的,从而为用户使用提供了极大的方便性和灵活性。

3. 高度非过程化

DM_SQL 语言是一种非过程化语言。用户只需指出―做什么‖,而不需指出―怎么做‖,对数据存取路径的选择以及 DM_SQL 语句功能的实现均由系统自动完成,与用户编制的应 用程序与具体的机器及关系 DBMS 的实现细节无关,从而方便了用户,提高了应用程序的开 发效率,也增强了数据独立性和应用系统的可移植性。

4. 面向集合的操作方式

DM_SQL 语言采用了集合操作方式。不仅查询结果可以是元组的集合,而且一次插入、 删除、修改操作的对象也可以是元组的集合,相对于面向记录的数据库语言(一次只能操作 一条记录)来说,DM_SQL 语言的使用简化了用户的处理,提高了应用程序的运行效率。

5. 语言简洁,方便易学

DM_SQL 语言功能强大,格式规范,表达简洁,接近英语的语法结构,容易为用户所掌 握


1.2 保留字与标识符

标识符的语法规则兼容标准 GJB 1382A-9X,标识符分为正规标识符和定界标识符两 大类。

正规标识符以字母、_、$、#或汉字开头,后面可以跟随字母、数字、_、$、#或者汉 字,正规标识符的最大长度是 128 个英文字符或 64 个汉字。正规标识符不能是保留字。

正规标识符的例子:A,test1,_TABLE_B,表 1。

定界标识符的标识符体用双引号括起来时,标识符体可以包含任意字符,特别地,其中 使用连续两个双引号转义为一个双引号。 定界标识符的例子:"table","A","!@#$"。 保留字的清单参见附录


1.3 DM_SQL 语言的功能及语句

DM_SQL 语言是一种介于关系代数与关系演算之间的语言,其功能主要包括数据定义、查询、操纵和控制四个方面,通过各种不同的 SQL 语句来实现。按照所实现的功能,DM_SQL 语句分为以下几种:

1. 用户、模式、基表、视图、索引、序列、全文索引、存储过程和触发器的定义和删 除语句,基表、视图、全文索引的修改语句,对象的更名语句;

2. 查询(含全文检索)、插入、删除、修改语句;

3. 数据库安全语句。包括创建角色语句、删除角色语句,授权语句、回收权限语句, 修改登录口令语句,审计设置语句、取消审计设置语句等。


在嵌入方式中,为了协调 DM_SQL 语言与主语言不同的数据处理方式,DM_SQL 语言引 入了游标的概念。因此在嵌入方式下,除了数据查询语句(一次查询一条记录)外,还有几 种与游标有关的语句:

1. 游标的定义、打开、关闭、拨动语句;

2. 游标定位方式的数据修改与删除语句。

为了有效维护数据库的完整性和一致性,支持 DBMS 的并发控制机制,DM_SQL 语言提供了事务的回滚(ROLLBACK)与提交(COMMIT)语句。同时 DM 允许选择实施事务级读一致 性,它保证同一事务内的可重复读,为此 DM 提供用户多种手动上锁语句,和设置事务隔离 级别语句


1.4 DM_SQL 所支持的数据类型

数据类型是可表示值的集。值的逻辑表示是<字值>。值的物理表示依赖于实现。DM 系 统具有 SQL-92 的绝大部分数据类型,以及部分 SQL-99 和 SQL Server 2000 的数据类 型。

1.4.1 常规数据类型

1. 字符数据类型
CHAR 类型

语法:CHAR[(长度)]

功能:CHAR 数据类型指定定长字符串。在基表中,定义 CHAR 类型的列时,其最大存 储长度由数据库页面大小决定,可以指定一个不超过其最大存储长度的正整数作为字符长 度,例如:CHAR(100)。如果未指定长度,缺省为 1。DM 确保存储在该列的所有值都具有 这一长度。CHAR 数据类型最大存储长度和页面大小的对应关系请见下表 1.4.1。但是,在 表达式计算中,该类型的长度上限不受页面大小限制,为 32767。DM 支持按字节存放字符 串

acc800654950ee23fec8e24005d35c3

这个限制长度只针对建表的情况,在定义变量的时候,可以不受这个限制长度的限制。 另外,实际插入表中的列长度要受到记录长度的约束,每条记录总长度不能大于页面大小的 一半。

CHARACTER 类型
语法:CHARACTER[(长度)]

功能:与 CHAR 相同。

VARCHAR 类型/VARCHAR2 类型
语法:VARCHAR[(长度)]

功能:VARCHAR 数据类型指定变长字符串,用法类似 CHAR 数据类型,可以指定一个 不超过 8188 的正整数作为字符长度,例如:VARCHAR (100)。如果未指定长度,缺省为 8188。

在基表中,当没有指定 USING LONG ROW 存储选项时,插入 VARCHAR 数据类型的实 际最大存储长度由数据库页面大小决定,具体最大长度算法如表 1.4.1;如果指定了 USING LONG ROW 存储选项,则插入 VARCHAR 数据类型的长度不受数据库页面大小限制。VARCHAR 类型在表达式计算中的长度上限不受页面大小限制,为 32767;CHAR 同 VARCHAR 的区别在于前者长度不足时,系统自动填充空格,而后者只占用实际的字节空间。另外,实际插入表中的列长度要受到记录长度的约束,每条记录总长度不能 大于页面大小的一半。 VARCHAR2 类型和 VARCHAR 类型用法相同.



2. 数值数据类型

1. 精确数值数据类型

NUMERIC 类型

语法:NUMERIC[(精度 [, 标度])]

功能:NUMERIC数据类型用于存储零、正负定点数。其中:精度是一个无符号整数, 定义了总的数字数,精度范围是1至38。标度定义了小数点右边的数字位数。一个数的标度 不应大于其精度,如果实际标度大于指定标度,那么超出标度的位数将会四舍五入省去。例 如:NUMERIC(4,1)定义了小数点前面3位和小数点后面1位,共4位的数字,范围在-999.9 到999.9。所有NUMERIC数据类型,如果其值超过精度,DM会返回一个出错信息,如果超 过标度,则多余的位会被截断。 如果不指定精度和标度,缺省精度为38,标度无限定。

DECIMAL类型

语法:DECIMAL[(精度 [, 标度])]

功能:与 NUMERIC 相似。

DEC 类型

语法:DEC[(精度[, 标度])]

功能:与 DECIMAL 相同。

NUMBER 类型

语法:NUMBER[(精度[, 标度])]

功能:与 NUMERIC 相同。

INTEGER 类型

语法:INTEGER

功能:用于存储有符号整数,精度为 10,标度为 0。取值范围为:-2147483648

(-2 31)~ +2147483647(231-1)。

INT 类型

语法:INT

功能:与 INTEGER 相同。

BIGINT 类型

语法:BIGINT

功 能 : 用 于 存 储 有 符 号 整 数 , 精 度 为 19 ,标度为 0 。 取 值 范 围 为 :

-9223372036854775808(-2 63)~9223372036854775807(263-1)。

TINYINT 类型

语法:TINYINT

功能:用于存储有符号整数,精度为 3,标度为 0。取值范围为:-128 ~ +127。

BYTE 类型

语法:BYTE

功能:与 TINYINT 相似,精度为 3,标度为 0。

SMALLINT 类型

语法:SMALLINT

功能:用于存储有符号整数,精度为 5,标度为 0。取值范围为:-32768(-2 15) ~

+32767(215-1)。

4</DI< div>










标签:语句,DM,语言,数据类型,标度,使用手册,SQL
From: https://www.cnblogs.com/ios9/p/17957818

相关文章

  • mysql实现数据文件存储到指定分区
    通过rpm安装的mysql默认程序文件放在/usr/bin,数据文件放在/var/lib/mysql,需要将数据文件放在不同分区,保证数据量时将根目录撑爆一、关闭数据库[root@node1bin]#systemctlstopmysqld[root@node1bin]#systemctlstatusmysqld●mysqld.service-MySQLServerLoaded:lo......
  • MySQL InnoDB ReplicaSet安装文档
    MySQL副本集介绍MySQLInnoDBReplicaSet(也叫MySQL副本集,有些地方也翻译成MySQL复制集)是在MySQL8.0.19版本(2020-01-13Released)之后开始支持的,MySQL副本集中拥有一个primary节点,一个或多个secondary节点,它不像MySQLInnoDBCluster一样提供故障自愈和多主模式,但是它提供手......
  • SQL Server报错The datediff function resulted in an overflow
    建模提醒功能异常,获取查询语句到数据库执行报错:Msg535,Level16,State0,Line62Thedatedifffunctionresultedinanoverflow.Thenumberofdatepartsseparatingtwodate/timeinstancesistoolarge.Trytousedatediffwithalessprecisedatepart.消息535,级......
  • ADMA2
    ADMA21简介在SDHostControllerStandardSpecification2.00,定义了新的DMA传输算法ADMA(AdvancedDMA)。在1.0协议中定义的DMA叫做SDMA(SingleDMA),SDMA的缺点是在每个页面边界会产生DMA中断,从而打断CPU重新编程新的系统地址,由于每个页面边界的中断,SDMA算法产生了性能瓶颈。ADM......
  • SOLIDWORKS 2024新功能之SOLIDWORKS PDM篇
    SOLIDWORKS2024新功能PDM篇目录概述•装配体直观•在Web2中下载文件的特定版本•文件类型图标•“更改状态”命令中的签出选项•复制树对话框•查看检出事件详细信息•系统变量•查看许可证使用•数据安全增强功能•SOLIDWORKSPDM性能改进1、装配体直观可以在SOL......
  • MySQL Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoin
    错误信息:2023-12-12T09:32:31.383149Z0[ERROR]InnoDB:IgnoringtheredologduetomissingMLOG_CHECKPOINTbetweenthecheckpoint5777611209andtheend5777612857.2023-12-12T09:32:31.384149Z0[ERROR]InnoDB:PlugininitializationabortedwitherrorGeneri......
  • SQL统计案例
    SELECTdr_id,dr_nameas'区域名称',#早餐SUM(IF(is_muslim=1ANDmeal_type=1,order_number,0))as'早餐清真餐总数',SUM(IF(is_muslim=0ANDmeal_type=1,order_number,0))as'早餐非清真餐总数',SUM(IF(is_muslim=1ANDorder_status=3ANDmeal_type=1,order......
  • agx orin 使用 sdm 刷机后,vscode 使用 C++ 版本的 opencv, 出现红色的波浪线,但是程序
    原因:vscode没有链接好opencv的头文件先找到opencv头文件的位置:sudofind/-iname"opencv"/usr/include/opencv4/usr/include/opencv4/opencv2解决:ctril+sheft+p:打开:c_cpp_properties.json,写入:"includePath":["${workspaceFo......
  • 揭秘MySQL中的"黑洞":为什么你应避免默认使用NULL值?
    摘要:在MySQL中,NULL值是一种特殊的标记,表示数据缺失或未知。然而,默认使用NULL值可能会引发一系列问题。本文将深入探讨为什么不建议默认使用NULL值,并通过具体示例揭示其潜在风险。一、什么是NULL值?在MySQL中,NULL表示一个字段没有值或数据未知。不同于空字符串("")或0,NULL表示缺失或......
  • Linux安装MySQL5.7并设置systemd方式管理
    1、安装前检查1)检查linux系统是否安装过mysql#检查系统中有无安装过mysql,如果有就卸载rpm-qa|grepmysqlrpm-e--nodepsmysql-xxxx#检查所有mysql对应的文件夹,全部删除whereismysqlfind/-namemysqlrm-rf......#删除mysql的配置文件rm-rf/etc/my.cnf#删......