达梦(DM) SQL基础操作

简介: 讲述达梦 DM数据库 SQL基础查询语句

在进行DM数据库SQL开发之前,首先需要了解一下DM数据库用户与模式的关系,因为这将直接影响到你后续对DM数据库的操作。那么DM数据库用户与模式的关系怎么理解呢?

用户与模式

每个用户有一个默认的同名的模式,访问自己模式下的表、视图等,不需要加模式名,访问其他模式下的对象需要加上模式名。而同一个用户可能管理多个模式,这样在操作其他模式下的表、视图等时就需要注意了。比如SYSDBA的用户就可以管理下面多个模式

image.png

当用户SYSDBA查询自己模式下得表时,可以直接进行查询,无需加模式名

image.png查询其他模式,比如TEST2023下的表EMPLOYEE2时,如果不加模式名(对象名),则查询会报出无效的表名或者视图名

image.png

这个时候需要加上模式名(对象名)就可以正常查询了,添加模式名的查询有两种方式,都是可以的

select*from"TEST2023"."EMPLOYEE2";select*from TEST2023.EMPLOYEE2;

查询效果如图

image.png

为了防止忘记加模式名(对象名)导致报错的情况,建议在使用DM数据库时,数据库的配置操作具体用户名模式下的表,这样对表的操作就不会担心因为忘记加模式名而报错的情况了,比如

image.png

SQL基础操作

查看表结构

查询表结构

SELECT DBMS_METADATA.GET_DDL('TABLE','SYS_USER','SYSDBA')FROM dual;

执行成功后可以看到表结构

image.png

第二种方法查看表结构

SP_TABLEDEF('SYSDBA','SYS_USER');

执行成功可以看到表结构

image.png

基础查询语句

查询所有员工信息,可使用 SQL 语句 select *,返回表中所有的列

select*from SYS_USER;

查询结果集如图

image.png

指定条件查询

select*from SYS_USER where login_date >'2021-10-19';

查询结果如图

image.png

查询为null字段

select*from SYS_USER where avatar ISNULL;

查询结果如图

image.png

NULL 不支持加、减、乘、除、大小、相等比较,所有查询结果都为空,比如

image.png

查询语句

select*from PY_PERIOD_CLAZZ_TRAIN WHERE EVALUATE_ID <0;

查询返回结果

image.png

转换函数 (nvl),只能转换 null 值为同类型或者可以隐式转换成同类型的值,比如

select*,NVL(EVALUATE_ID,0) EVALUATE_ID from PY_PERIOD_CLAZZ_TRAIN;

查询结果如图

image.png

函数对空值的处理方式各不一样,有些会返回空值

SELECT GREATEST(10,NULL)FROM dual;

查询结果如图

image.png

有些会返回预期的值

SELECT REPLACE('123456',3,NULL)FROM dual;SELECT REPLACE('123456',3,'')FROM dual;

查询结果如图

image.png

多条件查询以及使用列别名的方式与Mysql一致

SELECT CLAZZ__ID AS CLAZZID,TRAIN_NAME TRAINNAME FROM PY_PERIOD_CLAZZ_TRAIN WHERE CLAZZ__ID >2;

查询结果如图,列别名正确展示

image.png

使用 || 可以把字符串拼接起来

SELECT CLAZZ__ID||' name is '||TRAIN_NAME col FROM PY_PERIOD_CLAZZ_TRAIN;

查询结果如图

image.png

也可以将需要批量执行的 SQL 语句拼接起来

SELECT'TRUNCATE TABLE '|| schema_name ||'.'|| table_name FROM ALL_TABLES_DIS_INFO WHERE schema_name ='SYSDBA';

执行结果如图

image.png

字符串连接符 || 也可以改成 concat 函数。

select 语句中使用条件逻辑,比如

SELECT id,CLASS_NAME,       CASE
         WHEN class_type =1  THEN '一级'         WHEN class_type =2 THEN '二级'         ELSE 'ok'       END AS typeName 
FROM PY_PERIOD_CLAZZ ;

执行结果如图

image.png

指定返回行数的数据

SELECT*FROM PY_PERIOD_CLAZZ LIMIT2;SELECT*FROM PY_PERIOD_CLAZZ where ROWNUM <3;

执行结果如图

image.png

到这里,关于DM数据库的基础查询操作就结束了,下面继续进行DM数据库的其他查询操作。

相关文章
|
SQL BI 数据库
达梦(DM) SQL日期操作及分析函数
讲述DM 数据库中如何实现各种日期相关的运算以及如何利用分析函数 lead() over() 进行范围问题的处理
|
SQL 机器学习/深度学习 自然语言处理
达梦(DM) SQL函数相关
讲述 DM 数据库函数
|
2月前
|
SQL
开发指南057-执行SQL返回结果集
业务实践中除了返回实体类外,经常需要通过SQL语句返回结果集
|
2月前
|
SQL 安全
开发指南038-防SQL注入
这个是检查某个字符串是否含注入的SQL,为基本函数
|
6月前
|
SQL Java 数据库连接
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
91 2
|
6月前
|
SQL Java 数据库连接
JavaWeb基础第三章(MyBatis的应用,基础操作与动态SQL)
JavaWeb基础第三章(MyBatis的应用,基础操作与动态SQL)
|
7月前
|
SQL NoSQL 数据库
sql常用的10种基础操作
sql常用的10种基础操作
|
7月前
|
SQL 存储 数据库
达梦(DM) SQL调优
【1月更文挑战第2天】达梦(DM) SQL调优
|
3月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
5月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
135 13