DMSQL

DMSQL 基于sql92 ,部分基于sql99

SQL:结构化的查询语言。

DDL:定义 create drop alter truncate

DML:管理 select update delete insert

DCL:控制 grant revoke

TCL:事务控制:commit rollback

Select

简单查询

语法:select () from ()

第一个括号:*,column_name,alias,expr || distinct

第二个括号:table_name

Select * from city;

Select city_name,city_id from city;

Select city_name cn from dmhr.city

SQL> select employee_name||'的工资是:'||salary as desc1 from dmhr.employee limit 10;

SQL> select distinct department_id from dmhr.employee;

过滤查询

Where 子句常用的查询条件由谓词和逻辑运算符组成,谓词指一个条件,结果为一个布尔值,真,假或是未知。

逻辑运算符:and or not

谓词 包括比较谓词(= > < ,>=,<=,<>),between ,in,like null exists

Like %,_

SQL> select employee_name,salary from dmhr.employee where employee_name like '马%';

SQL> select employee_name,salary from dmhr.employee where salary between 20000 and 30000;

SQL> select employee_name,salary from dmhr.employee where salary>=20000 and salary<=30000;

集函数:

  1. count(*);
  2. 相异集函数:AVG|MAX|MIN|SUM|COUNT(DISTINCT<列名>);
  3. 完全集函数:AVG|MAX|MIN|COUNT|SUM([ALL]<值表达式>)
  4. 方差集函数:VAR_POP,VAR_SAMP,VARIANCE,STDDEV_POP.....
  5. 协方差集函数:COVAR_POP,COVAR_SAMP,CORR;
  6. 首行函数 :first_value
  7. 求区间范围内最大值:area_max.
  8. 字符串集函数:LISTAGG/LISTAGG2

分析函数

引入分析函数后,只需要简单的sql语句,就能实现功能,并且在执行效率方面也有大幅提高。

分析函数

  1. count(*)
  2. 方差函数:

var_pop,var_samp,variance,stddev_pop,stddev_samp,stddev

  1. 协方差函数
  2. 首尾函数:first_value,last_value
  3. 分组函数:ntile
  4. 相邻函数:lag ,lead
  5. 百分比函数:

percent_rank,cume_dist,rtio_to_report,percentile_cont,

  1. 字符串函数:listagg

排序

Desc 降序,asc升序

SQL> select employee_name,salary from dmhr.employee order by salary desc;

多表联接查询

语法:select()from () join() on()

第三个括号:表名

第四个括号:关联字段

  1. 内连接:根据连接条件,结果集仅包含满足全部连接条件的记录。

SQL> select e.employee_name,d.department_name from dmhr.employee e join dmhr.department d using(department_id) limit 10;

SQL>select e.employee_name,d.department_name from

dmhr.employee e join dmhr.department d on

e.department_id=d.department_id limit 10;

外连接:

左外连接:

把写在left join左边的全部显示,右边的只显示满足条件的,不满足条件的用null代替。

SQL> select e.employee_name,d.department_name from test2.emp e left join test2.dep d on e.department_id=d.department_id limit 10;

右外连接:

把写在right join右边的全部显示出来,左边的只显示满足条件,不满条件的,用null代替。

SQL> select e.employee_name,d.department_name from test2.emp e right join test2.dep d on e.department_id=d.department_id limit 10;

全外连接:返回所有的记录,包括不满足条件的。

SQL> select e.employee_name,d.department_name from test2.emp e full join test2.dep d on e.department_id=d.department_id limit 10;

全外连接=左外连接 union 右外连接

  1. 查询两个表的关联列相等的数据用内连接
  2. COL_l 是col_R的子集的时候用右外连接
  3. Col_R 是col_L的子集的时候用左外连接
  4. Col_R 和col_L 彼此有交集,但是彼此不互为子集的时候用全外连接。

分组查询:

语法:select 聚合函数() from () group by () having()

Sum avg max min count

算出各个部门的平均工资?并且将部门平均工资大于10000的找出来。

SQL> select avg(salary) from dmhr.employee group by department_id having avg(salary)>10000;

子查询

子查询的结果是主查询的条件,子查询先于主查询运行。

返回值是唯一的:

Select () from () where () =(子查询结果)

SQL> select employee_name,department_id from dmhr.employee where department_id=(select department_id from dmhr.employee where employee_name='马学铭');

返回值是多行的:

语法:select () from () where ()>|any|all (子查询结果)

ALL: >ALL(MAX)  <ALL(MIN)

ANY: >ANY(MIN)  <ANY(MAX)

找出比1005部门工资都高的人。

SQL> select employee_name,department_id,salary from dmhr.employee where salary >all(select salary from dmhr.employee where department_id=1005);

找出比1005部门任意一人工资高的人。

SQL> select employee_name,department_id,salary from dmhr.employee where salary >any(select salary from dmhr.employee where department_id=1005);

SQL> select employee_name, salary from dmhr.employee where employee_name in ('戴明','沈连连','常玲');

IN:把子查询运行完,再运行主查询。

Exsits: 先运行子查询,如果有满足条件的,再运行主查询。

达梦数据库SQL语法相关推荐

  1. 达梦数据库SQL学习

    数据来源于达梦数据库安装实例时的示例库DMHR 一 分组函数 分组函数做用于一组数据.并对于一组数据返回一个值 常见的分组函数:(聚合函数) AYG.COUNT.MAX.MIN.SUM... sele ...

  2. 达梦数据库SQL日志分析工具Dmlog的使用

    1.使用条件 运行环境预先安装Java环境:支持liunx和windows系统运行. 说明:推荐使用java1.8版本,linux最小化安装最少要安装打印服务组件,windows下不支持java1.6 ...

  3. 达梦数据库SQL调优,查看执行计划、ET

    一.调优目标 SQL 调优的整体目标是使用最优的执行计划,使IO以及CPU代价最小.调优主要关注下列方面: ·表扫描 如果计划中对某大表使用了全索引扫描,那么需要关注该表是否存在某个查询条件使得过滤后 ...

  4. 达梦数据库-SQL优化之HINT-平坦化处理

    1.HINT之OUTER_JOIN_FLATING_FLAG (1).解释: Flag of indicating whether outer join will be flattened. 对左外连 ...

  5. 【与达梦同行】达梦数据库SQL去掉sort

    SQL优化是一个比较复杂的事情,想要做好优化一要靠扎实的技术功底,二要靠丰富的实践经验,这里来谈一下SQL优化中的sort优化问题. 在之前的优化经验中,错误的任务只要结果集不大,含有order by ...

  6. 达梦数据库 sql使用学习

    1.项目里用了DATE_SUB.DATE_ADD也没有报错,是可以用的. a. 使用INTERVAL时,达梦要给时间加' ',例:INTERVAL '1' DAY; b. 如果INTERVAL的时间是 ...

  7. 达梦数据库SQL常用查询语句

    1.简单查询 语法:select () from () 第一个括号:*, column_name, alias,expr || distinct 第二个括号:table_name 2.过滤查询 Whe ...

  8. 达梦数据库sql优化实践2

    Sql执行过程中,对有索引的列上使用隐式类型转换或函数都会造成索引失效的情况,需要特别注意. 原sql语句如下 SELECT TAB1.RECORDID , TAB1.F_CENTRAL_ID TAB ...

  9. 达梦数据库开启sql日志及配置

    达梦数据库sql日志开启之后可以抓取数据库中运行的sql语句,并且包含了sql执行的耗时,sql日志还包括参数信息,错误信息等,对于排除数据库执行过的SQL语句或者批量优化SQL语句时此功能尤为重要. ...

  10. springBoot+mybaits+达梦数据库

    近年,随着国家的呼应,越来越多的国企相关企业都面临着技术转型,其中数据库也渐渐从mysql.Oracle...转到国内呼声最高的达梦数据库:开发阶段使用一个相对陌生点的数据库还不是什么困难的业务实现, ...

最新文章

  1. R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将图像、文本、表格组合在一起展示
  2. 《BI那点儿事》Microsoft 聚类分析算法——三国人物身份划分
  3. Spring BPP中优雅的创建动态代理Bean
  4. jquery 初步学习
  5. win配置环境变量以及一些变量换行类的小技巧
  6. Linux实验二:vi编辑器的使用
  7. thymeleaf随机数_SpringBoot2.0实现静态资源版本控制
  8. python 保留的类标识符
  9. jquery 扩展ajax请求,jQuery如何管理、扩展AJAX请求
  10. django mysql处理_利用Django去操作数据库并完成简易的登录及编辑功能
  11. 读书笔记|智能运维系统落地方案
  12. 使用通达信软件接口选股的时候,如何进行条件设置?
  13. 【语篇标记练习题】Dismissing what was said
  14. 英式英语和美式英语的差异1-用词
  15. 定时任务执行shell脚本中 grep -v grep 中的坑
  16. nginx学习笔记七(nginx HTTP框架的执行流程)
  17. vlookup匹配的文字显示0_详解vlookup函数中{1,0}的使用方法,看完后给同事讲讲,秒变大神...
  18. 容器学习Day04-Ubuntu常用命令(二)
  19. Oracle数据库练习题(2)
  20. 小程序如何实现下拉选项操作

热门文章

  1. 计算机考研专业课王道,王道论坛,专注于计算机考研的点点滴滴!
  2. 网站内链外链批量抓取工具
  3. MyEclipse创建Java项目
  4. combres java_ASP.NET MVC3 Combres错误:'System.Web.Mvc.UrlHelper'不包含'CombresLink'的定义
  5. java 取色器_Arava: 用 swing 写一个取色器
  6. 关于解决vensim9.2版本无法显示中文的办法
  7. 白话空间统计二十四:地理加权回归(六)ArcGIS的GWR工具参数说明一
  8. STM32学习心得一:FlyMcu软件配置(STM32串口下载软件)
  9. Java 学习笔记·十二 —— Java 案例·网上商城系统
  10. 华为设备初始用户名/密码