达梦数据库SQL语法
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;
集函数:
- count(*);
- 相异集函数:AVG|MAX|MIN|SUM|COUNT(DISTINCT<列名>);
- 完全集函数:AVG|MAX|MIN|COUNT|SUM([ALL]<值表达式>)
- 方差集函数:VAR_POP,VAR_SAMP,VARIANCE,STDDEV_POP.....
- 协方差集函数:COVAR_POP,COVAR_SAMP,CORR;
- 首行函数 :first_value
- 求区间范围内最大值:area_max.
- 字符串集函数:LISTAGG/LISTAGG2
分析函数
引入分析函数后,只需要简单的sql语句,就能实现功能,并且在执行效率方面也有大幅提高。
分析函数
- count(*)
- 方差函数:
var_pop,var_samp,variance,stddev_pop,stddev_samp,stddev
- 协方差函数
- 首尾函数:first_value,last_value
- 分组函数:ntile
- 相邻函数:lag ,lead
- 百分比函数:
percent_rank,cume_dist,rtio_to_report,percentile_cont,
- 字符串函数:listagg
排序
Desc 降序,asc升序
SQL> select employee_name,salary from dmhr.employee order by salary desc;
多表联接查询
语法:select()from () join() on()
第三个括号:表名
第四个括号:关联字段
- 内连接:根据连接条件,结果集仅包含满足全部连接条件的记录。
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 右外连接
- 查询两个表的关联列相等的数据用内连接
- COL_l 是col_R的子集的时候用右外连接
- Col_R 是col_L的子集的时候用左外连接
- 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语法相关推荐
- 达梦数据库SQL学习
数据来源于达梦数据库安装实例时的示例库DMHR 一 分组函数 分组函数做用于一组数据.并对于一组数据返回一个值 常见的分组函数:(聚合函数) AYG.COUNT.MAX.MIN.SUM... sele ...
- 达梦数据库SQL日志分析工具Dmlog的使用
1.使用条件 运行环境预先安装Java环境:支持liunx和windows系统运行. 说明:推荐使用java1.8版本,linux最小化安装最少要安装打印服务组件,windows下不支持java1.6 ...
- 达梦数据库SQL调优,查看执行计划、ET
一.调优目标 SQL 调优的整体目标是使用最优的执行计划,使IO以及CPU代价最小.调优主要关注下列方面: ·表扫描 如果计划中对某大表使用了全索引扫描,那么需要关注该表是否存在某个查询条件使得过滤后 ...
- 达梦数据库-SQL优化之HINT-平坦化处理
1.HINT之OUTER_JOIN_FLATING_FLAG (1).解释: Flag of indicating whether outer join will be flattened. 对左外连 ...
- 【与达梦同行】达梦数据库SQL去掉sort
SQL优化是一个比较复杂的事情,想要做好优化一要靠扎实的技术功底,二要靠丰富的实践经验,这里来谈一下SQL优化中的sort优化问题. 在之前的优化经验中,错误的任务只要结果集不大,含有order by ...
- 达梦数据库 sql使用学习
1.项目里用了DATE_SUB.DATE_ADD也没有报错,是可以用的. a. 使用INTERVAL时,达梦要给时间加' ',例:INTERVAL '1' DAY; b. 如果INTERVAL的时间是 ...
- 达梦数据库SQL常用查询语句
1.简单查询 语法:select () from () 第一个括号:*, column_name, alias,expr || distinct 第二个括号:table_name 2.过滤查询 Whe ...
- 达梦数据库sql优化实践2
Sql执行过程中,对有索引的列上使用隐式类型转换或函数都会造成索引失效的情况,需要特别注意. 原sql语句如下 SELECT TAB1.RECORDID , TAB1.F_CENTRAL_ID TAB ...
- 达梦数据库开启sql日志及配置
达梦数据库sql日志开启之后可以抓取数据库中运行的sql语句,并且包含了sql执行的耗时,sql日志还包括参数信息,错误信息等,对于排除数据库执行过的SQL语句或者批量优化SQL语句时此功能尤为重要. ...
- springBoot+mybaits+达梦数据库
近年,随着国家的呼应,越来越多的国企相关企业都面临着技术转型,其中数据库也渐渐从mysql.Oracle...转到国内呼声最高的达梦数据库:开发阶段使用一个相对陌生点的数据库还不是什么困难的业务实现, ...
最新文章
- R语言使用ggpubr包的ggarrange函数组合多张结论图:使用ggpubr包将图像、文本、表格组合在一起展示
- 《BI那点儿事》Microsoft 聚类分析算法——三国人物身份划分
- Spring BPP中优雅的创建动态代理Bean
- jquery 初步学习
- win配置环境变量以及一些变量换行类的小技巧
- Linux实验二:vi编辑器的使用
- thymeleaf随机数_SpringBoot2.0实现静态资源版本控制
- python 保留的类标识符
- jquery 扩展ajax请求,jQuery如何管理、扩展AJAX请求
- django mysql处理_利用Django去操作数据库并完成简易的登录及编辑功能
- 读书笔记|智能运维系统落地方案
- 使用通达信软件接口选股的时候,如何进行条件设置?
- 【语篇标记练习题】Dismissing what was said
- 英式英语和美式英语的差异1-用词
- 定时任务执行shell脚本中 grep -v grep 中的坑
- nginx学习笔记七(nginx HTTP框架的执行流程)
- vlookup匹配的文字显示0_详解vlookup函数中{1,0}的使用方法,看完后给同事讲讲,秒变大神...
- 容器学习Day04-Ubuntu常用命令(二)
- Oracle数据库练习题(2)
- 小程序如何实现下拉选项操作
热门文章
- 计算机考研专业课王道,王道论坛,专注于计算机考研的点点滴滴!
- 网站内链外链批量抓取工具
- MyEclipse创建Java项目
- combres java_ASP.NET MVC3 Combres错误:'System.Web.Mvc.UrlHelper'不包含'CombresLink'的定义
- java 取色器_Arava: 用 swing 写一个取色器
- 关于解决vensim9.2版本无法显示中文的办法
- 白话空间统计二十四:地理加权回归(六)ArcGIS的GWR工具参数说明一
- STM32学习心得一:FlyMcu软件配置(STM32串口下载软件)
- Java 学习笔记·十二 —— Java 案例·网上商城系统
- 华为设备初始用户名/密码