一、软件介绍
达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统的最新版本是8.0版本,简称DM8。DM8采用全新的体系架构,在保证大型通用的基础上,针对可靠性、高性能、海量数据处理和安全性做了大量的研发和改进工作,极大提升了达梦数据库产品的性能、可靠性、可扩展性,能同时兼顾OLTP和OLAP请求,从根本上提升了DM8产品的品质。
特点:高性能,高可用性,高安全性,兼容性,通用性,
二、基本操作:
A.创建表空间
表空间是一个比较重要的逻辑概念,表空间是由物理数据文件组成。在创建表空间时,通常只需要指定表空间名称,数据文件路径、数据文件大小等。
1.如何创建表空间-例子。
要求:使用“DM 管理工具”创建表空间 EXAMPLE,具体要求如下:
- 表空间名 EXAMPLE;
- 文件路径及名称:/opt/dmdbms/dmsp.dbf;
- 打开自动扩充属性;
- 文件大小 128MB
在右侧界面点击鼠标右键,依次点击【应用程序】-【达梦数据库】-【DM管理工具】即可。如下图所示。
步骤1
打开 DM 管理工具,左键连续点击两次【LOCALHOST(SYSDBA)】即可打开登陆界面,如下图所示。使用 SYSDBA 用户,在 【口令】 输入密码 SYSDBA,如图3所示。点击确定即可成功创建表空间。
步骤2
点击鼠标左键选中 【表空间】 ,点击鼠标右键选中新建表空间。如下图所示。
步骤3
进入新建表空间界面后,【表空间名】输入 EXAMPLE ,鼠标左键点击 【添加】 输入相应的路径,相应的文件大小,打开自动扩充属性。其他参数不变,鼠标左键点击 【确定】。
DM 管理工具创建表空间参数说明:
| 参 数 | 说 明 |
|---|---|
| 表空间名 | 表空间的名称 |
| 文件路径 | 数据文件的路径。可以单击浏览按钮浏览本地数据文件路径,也可以手动 |
| 扩充尺寸 | 数据文件每次扩展的大小,单位为MB |
| 扩充上限 | 数据文件可以扩充到的最大值,单位为MB |
| 镜像文件 | 表空间镜像的路径。用以指定用户表空间镜像路径 |
B.创建模式
创建模式时要指定归属的用户名,可以在创建模式的同时创建模式中的对象,但通常是分开进行的。
2.模式管理-例子
要求:在右侧桌面使用“DM 管理工具”,创建一个属于 SYSDBA 用户的模式 sc。
步骤1
启动 DM 管理工具,使用 SYSDBA 用户登录数据库,右键点击对象导航窗体中“模式”节点,弹出如下图所示操作界面。
打开 DM 管理工具,使用 SYSDBA 用户登陆数据库,鼠标左键选中 【模式】,鼠标右键点击新建模式。
步骤2
在弹出的新建模式窗口 【模式名】 行输入相应的模式名,如图2。鼠标左键点击【选择用户】,弹出选择用户窗口,勾选相应的用户,点击确定保存。如图3。
C.表管理
表是数据库中数据存储的基本单元,是对用户数据进行读和操纵的逻辑实体。表由列和行组成,每一行代表一个单独的记录。表中包含一组固定的列,表中的列描述该表所跟踪的实体的属性,每个列都有一个名称及特性。列的特性由两部分组成:数据类型和长度。对于 NUMERIC、DECIMAL 以及那些包含秒的时间间隔类型来说,可以指定列的小数位及精度特性。在DM数据库中,CHAR、CHARACTER、VARCHAR 数据类型的最大长度由数据库页面的大小决定,数据库页面大小在初始化数据库时指定。
为了确保数据库中数据的一致性和完整性,在创建表时可以定义表的实体完整性、域完整性和参照完整性。实体完整性定义表中的所有行能唯一地标识,一般用主键、唯一索引、UNIQUE 关键字及 IDENTITY 属性来定义;域完整性通常指数据的有效性,限制数据类型、默认值、规则、约束、是否可以为空等条件,域完整性可以确保不会输入无效的值;参考完整性维护表间数据的有效性、完整性,通常通过建立外键对应另一表的主键来实现。
如果用户在创建表时没有定义表的完整性和一致性约束条件,那么用户可以利用 DM 数据库所提供的表修改语句或工具来进行补充或修改。DM数据库提供的表修改语句或工具,可对表的结构进行全面的修改,包括修改表名、列名、增加字段、删除字段、修改字段类型、增加表级约束、删除表级约束、设置字段默认值、设置触发器状态等一系列修改功能。
在达梦数据库中,表可以分为两类,即数据库表和外部表,数据库表由数据库管理系统自行组织管理,而外部表在数据库的外部组织,是操作系统文件。这里只介绍数据库表的创建、修改和删除。
D.创建表
DM 数据库中,数据库表用于存储数据对象,分为一般数据库表(简称数据库表)和高性能数据库表。
3.表管理-例子
要求:使用“DM 管理工具”,创建一个属于 SYSDBA 用户的模式 SC。并在该模式下创建表 STUDENT,表字段信息如下。
| 字段名 | 数据类型 | 说明 |
| ID | INT | 主键 |
| NAME | VARCHAR(50) | 姓名 |
| SEX | VARCHAR(10) | 性别 |
| ADDR | VARCHAR(100) | 出生地 |
| SCORE | INT | 成绩 |
步骤1
打开 DM 管理工具,使用 SYSDBA 用户连接数据库。登陆数据库成功后,根据上一关所学知识创建相应模式,鼠标左键依次点击【模式】-【SC】(相应的模式名)-【表】,鼠标右键点击【表】,鼠标左键选中【新建表】。如图1所示。
步骤2
在弹出的新建表窗口中,输入相应的【表名】。鼠标左键点击绿色的【+】。输入相应的参数。如图3所示。字段设置完之后,点击【确定】按钮。
三、操作
A.数据查询
a.简单查询
简单查询语法如下:
SELECT * | { [ DISTINCT ] column | expression [ alias ] , ... } FROM table ;| 参数 | 说明 |
| SELECT | 一个保留关键字,用于启动一个查询操作,表明接下来要从数据库中选择数据。 |
| * | 一个通配符,表示选择表中的所有列。当你使用SELECT * FROM table;时,会返回指定表中每一行的所有列的数据 |
column | 表示要选择的具体列名。可以指定一个或多个列,列名之间用逗号分隔。 |
DISTINCT | 这是一个可选关键字,用于去除结果集中的重复行。当指定DISTINCT后,只会返回不同值的行 |
expression | 一个 SQL 表达式,例如对列进行数学运算、函数调用等。 |
alias | 一个可选的别名,用于为列或表达式指定一个临时名称。使用AS关键字来指定别名,也可以省略AS。 |
| SQL 中的保留关键字,用于指定要从哪个表中检索数据。 |
| 表示要查询数据的表名。它指定了SELECT语句要操作的数据源。 |
例子。选择查询全列所有数据,代码如下:
select * from test.person;B.条件查询
条件查询是指在指定表中查询出满足条件的数据。该功能是在查询语句中使用WHERE子句实现的。其基本语法如下:
SELECT <选择列表> FROM [<模式名>.]<基表名> | <视图名> [<相关名>] WHERE子句WHERE 子句常用的查询条件形如:列名 运算符 值。运算符由逻辑运算符和谓词组成。谓词指明了一个条件,该条件求解后,结果为一个布尔值:真、假或未知。逻辑算符有AND,OR,NOT。谓词包括比较谓词(=、>、<、>=、<=、<>),BETWEEN 谓词、IN 谓词、LIKE 谓词、NULL 谓词等。
在 WHERE 子句中可使用的运算符如下表所示:
| 条件类型 | 运算符 | 描述 |
| 比较 | = | 等于 |
| <> | 不等于 | |
| > | 大于 | |
| < | 小于 | |
| >= | 大于等于 | |
| <= | 小于等于 | |
| 确定范围 | BETWEEN AND | 在某个范围内 |
| NOT BETWEEN AND | 不在某个范围内 | |
| 确定集合 | IN | 在某个集合内 |
| NOT IN | 不在某个集合内 | |
| 字符匹配 | LIKE | 与某字符匹配 |
| LIKE | 不与某字符匹配 | |
| 空值 | NULL | 是空值 |
| NOT NULL | 不是空值 | |
| 逻辑算符 | AND | 两个条件都成立 |
| OR | 只要一个条件成立 | |
| NOT | 条件不成立 |
使用比较谓词的查询
比较谓词包括:=(等于)、<>(不等于)、!=(不等于)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。当使用比较谓词时,数值数据根据它们代数值的大小进行比较,字符串的比较则按序对同一顺序位置的字符逐一进行比较。若两字符串长度不同,短的一方应在其后增加空格,使两串长度相同后再作比较。
使用BETWEEN谓词的查询
谓词 BETWEEN 用来确定范围的查询,BETWEEN...AND和NOT BETWEEN...AND可以用来查找属性值在(或不在)指定范围内的记录,其中 BETWEEN 后是范围的下限(即低值),AND 后是范围的上限(即高值)。查询结果包含满足低值和高值条件的记录。
使用IN谓词的查询
谓词 IN 用来确定集合的查询,查找属性值属于指定集合的记录,与 IN 相对的谓词是 NOT IN,用于查找属性值不属于指定集合的记录。
使用LIKE谓词的查询
谓词 LIKE 可用来进行字符串匹配的查询。其一般语法格式为:
列名称 [ NOT ] LIKE 匹配字符串其含义是查找指定的属性列值与匹配字符串相匹配的记录。
匹配字符串可以是一个完整的字符串,也可含有通配符%和_,其中:
- ①%(百分号)代表任意长度(可以为零)的字符串。如a%b表示以a开头,以b结尾的任意长度的字符串。如acb,addgb,ab等都满足该匹配串。
- ②_(下横线)代表任意单个字符。如a_b表示以a开头,以b结尾的长度为3的任意字符串。如acb,afb等都满足该匹配串。
如果用户要查询的字符串本身就含有%或_,需要用到换码字符对通配符进行转义,这时需要用到escape关键字。其一般语法格式为:
列名称[NOT] LIKE 字符串表达式 ESCAPE 换码字符
使用NULL谓词的查询
对于涉及空值的查询用运算符NULL来判断。其一般语法格式为:
列名称 IS [NOT] NULL注意:这里的 is 不能用等号(=)代替。
使用逻辑运算符的查询
在条件查询时,可用逻辑运算符 NOT 查询不满足条件时的结果。若要在条件子语句中把两个或多个条件结合起来时,需要用到逻辑运算符 AND 和 OR。
如果第一个条件和第二个条件都成立,则用 and 运算符连接。
如果第一个条件和第二个条件中只要有一个成立,则用OR运算符连接。