五、数据类型与操作符和常用DMSQL语句

1、数据类型与操作符介绍

达梦数据库支持的数据类型有很多,具体如下:

其中:

  1. 常规数据类型
  1. 数值数据类型
  2. 字符数据类型
  3. 多媒体数据类型
  4. 日期时间数据类型
  1. 一般日期时间类型
  2. 时区数据类型
  3. 时间间隔数据类型
  1. BOOL / BOOLEAN数据类型
  1. %TYPE和%RPWTYPE:用来返回行和表的类型
  2. 记录类型
  3. 数组类型
  1. 静态数组类型
  2. 动态数组类型
  3. 复杂数组类型
  1. 集合类型
  1. VARRY
  2. 索引表
  3. 嵌套表
  1. 类类型
  2. 子类型
  3. 操作符

具体可以查看达梦数据库手册-DM8SQL程序设计:

DM8_SQL语言使用手册.pdf
https://www.aliyundrive.com/s/Re17f4JJ4PN
提取码: 9jy7
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

2、常用DMSQL语句介绍

2.1、创建示例用户

如果在安装的时候,安装了默认的两个数据库实例可以忽略(如BOOKSHOP),如果没有安装,则使用xftp打开/dm/dmdbms/samples/instance_script/bookshop/内的sql文件脚本一个一个复制粘贴到DM Manager执行,如果执行1-CREATESCHEMA出错,则把 SCHEMA 改为 USER,即可

2.2、简单查询

语法:select () from ()

-- 简单查询
-- 1.查询用户person所属的address表的所有数据(*表示所有列)
SELECT * FROM PERSON.ADDRESS;

-- 2.查询用户person所属的address表的具体列(加上列名),如查询id和名字
SELECT addressid,address1 FROM PERSON.ADDRESS;

-- 3.起别名,可以使用as也可以不用
SELECT addressid id,address1 AS 城市 FROM PERSON.ADDRESS;

-- 4.limit的使用,如只查询出一条
SELECT addressid id,address1 AS 城市 FROM PERSON.ADDRESS LIMIT 1;

-- 5.管道命令的使用,比如我们为了使得查出的结果不单调,可以使用管道命令拼接
SELECT 'id是: ' || addressid || ' 地址名为:' || address1 AS 地址 FROM PERSON.ADDRESS LIMIT 1;

-- 6.查询结果去重(去除重复数据)
SELECT DISTINCT city 城市名 from PERSON.ADDRESS;

java 读取达梦数据库 blob字段 达梦数据库date类型_数据库

2.3、whrer 过滤查询

WHERE子句常用的查询条件由谓词和逻辑运算符组成。

谓词指明了一个条件,该条件求解后,结果为一个布尔值:真、假或未知。
逻辑算符有:AND,OR,NOT。
谓词包括比较谓词(=、>、<、>=、<=、<>),BETWEEN谓词、IN谓词、LIKE谓词、NULL谓词、EXISTS谓词。

-- where过滤
-- 1.使用and和>= <=查询现在售价在[10,20]间的书籍信息
select * from PRODUCTION.PRODUCT where nowprice >= 10 and nowprice <= 20;

-- 2.使用between and查询现在售价在[10,20]间的书籍信息
select * from PRODUCTION.PRODUCT where nowprice between 10 and 20;

-- 3.使用in查询出版社在括号内的书籍信息(中华书局,人民文学出版社)
select * from PRODUCTION.PRODUCT where publisher in ('中华书局','人民文学出版社');

-- 4.查询email为空的人的信息
select * from PERSON.PERSON where email is null;

-- 5.or和and连用
select * from PRODUCTION.PRODUCT WHERE nowprice >= 10 and nowprice <= 20 OR publisher in ('中华书局','人民文学出版社');
2.4、集函数

集函数可分:

  1. COUNT(*);
  2. 相异集函数AVG()、MAX()、MIN()、SUM()、COUNT(DISTINCT<列名>);
  3. 完全集函数AVG()、MAX()、MIN()、 COUNT()、SUM([ALL]<值表达式>);
  4. 方差集函数VAR_POP()、VAR_SAMP()、VARIANCE()、STDDEV_POP()、STDDEV_SAMP()、STDDEV();
  5. 协方差函数COVAR_POP、COVAR_SAMP()、CORR;
  6. 首行函数FIRST_VALUE()
  7. 求区间范围内最大值集函数AREA_MAX();
  8. FIRST()/LAST()集函数AVG()、MAX()、MIN()、COUNT()、SUM([ALL]<值表达式>)、KEEP(DENSE_RANK FIRST() |LAST() ORDER BY子句);
  9. 字符串集函数LISTAGG() / LISTAGG2()。
-- 集函数
-- 1.统计表内共有多少条数据,无论查哪张表count的时间都是一样的,因为达梦数据库查的是数据库自带的计数器(里面存了每张表对应数据的条数)
select count(*) FROM PERSON.PERSON;

-- 2.查询售价最高的书籍信息
select '最高售价的书籍是: ' || PRODUCT.NAME || ' 它的售价是: '  from PRODUCTION.PRODUCT;
2.5、分析函数

DM分析函数为用户分析数据提供了一种更加简单高效的处理方式。如果不使用分析函数,则必须使用连接查询、子查询或者视图,甚至复杂的存储过程实现。引入分析函数后,只需要简单的SQL语句,并且执行效率方面也有大幅提高。

分析函数分为:

  1. COUNT(*);
  2. 完全分析函数 AVG、MAX、MINI、COUNT、SUM([ALL]<值表达式>),这5个分析函数的参数和作为集函数时的参数一致;
  3. 方差函数VAR_POP、VAR_SAMP、VARIANCE、STDDEV_POP、STDDEV_SAMP、STDDEV;
  4. 协方差函数COVAR_POP、COVAR_SAMP、CORR;
  5. 首尾函数FIRST_VALUE、LAST_VALUE:
  6. 相邻函数LAG和LEAD;
  7. 分组函数NTILE;
  8. 排序函数RANK、DENSE_RANK、ROW_NUMBER;
  9. 百分比函数PERCENT_RANK、CUME_DIST、RATIO_TO_REPORT、PERCENTILE_CONT、NTH_VALUE;
  10. 字符串函数LISTAGG;
  11. 指定行函数 NTH_VALUE;

具体可以查看达梦数据库手册-DM8_SQL语言使用手册:

DM8SQL程序设计.pdf
https://www.aliyundrive.com/s/8yAhJVLKRNN
提取码: 09rv
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

数据库手册-DM8_SQL语言使用手册:**

DM8SQL程序设计.pdf
https://www.aliyundrive.com/s/8yAhJVLKRNN
提取码: 09rv
点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。