一、达梦数据库简介
达梦数据库是一款具有完全自主知识产权的高性能数据库管理系统,简称为DM。
达梦数据库由达梦公司推出,是中国自主研发的关系型数据库管理系统。它采用了全新的体系架构,在保证大型通用性的基础上,特别针对可靠性、高性能、海量数据处理和安全性等方面做了大量优化和提升。达梦数据库的最新版本是8.0版本,简称DM8,该版本在性能和功能上都有所增强,能够满足不同规模和领域的应用需求。
达梦数据库自推出以来,已经在公安、政务、信用、司法、审计、住建、国土、应急等多个领域得到了广泛应用。它的发展历程中,每一个版本都在适应时代需求的同时具备了一定的特色和优势。对于数据库从业者来说,达梦数据库的发展不仅提供了更多的选择,也展示了国产数据库技术的成熟和进步。
达梦数据库是一款安全、稳定且性能优秀的国产数据库产品,它的出现和发展对于推动国内数据库技术的进步和保障国家信息安全具有重要意义
二、sql语言
结构化查询语言 SQL(Structured Query Language)
是在
1974
年提出的一种关系数
据库语言。由于
SQL
语言接近英语的语句结构,方便简洁、使用灵活、功能强大,倍受用
户及计算机工业界的欢迎,被众多计算机公司和数据库厂商所采用,经各公司的不断修改、
扩充和完善,
SQL 语言最终发展成为关系数据库的标准语言。
DM_SQL 语言符合结构化查询语言
SQL
标准,是标准
SQL
的扩充。它集数据定义、数
据查询、数据操纵和数据控制于一体,是一种统一的、综合的关系数据库语言。它功能强大,
使用简单方便、容易为用户掌握。
MSQL
分类
DMSQL
分为:
DML
、
DDL
、
DCL
、
TCL
DML:
数据操纵语言,
insert,update,select,delete
DDL:
数据定义语言,
create table,alter table,drop table
DCL:
数据控制语言,
grant,revoke
TCL:
事务控制语言,
commit,rollback
SQL
书写规范:
SQL
语句大小写不敏感,字符串大小写敏感
SQL
可以写在一行,也可以写在多行
关键字不能被拆分,缩写
SQL
以分号结尾
三、介绍一些常用的sql
简单查询:
在达梦管理工具中,长摁t12表拖到查询框中,就会自动写上select * ,这是一个非常实用的功能
去重查询:
select distinct * from "SYSDBA"."T12";
接表达式:
select id+1000 from "SYSDBA"."T12";
select name||'您的id是'||id+1000 from "SYSDBA"."T12";
|| 不仅可以连接列,也可以连接字符串
过滤查询:
select * from "SYSDBA"."T12" where id in (2,3) ;
Like
模糊查询
Like_
匹配
1
个字符
Like%
匹配
0
个或多个字符
%
或者
_
在前,查找以
....
开头
select * from "SYSDBA"."T12" where name like '3_' ;
分组汇总
(
1
)聚合函数
Count
统计,计数
Sum
求和
Avg
求平均值
Min
最小值
Max
最大值
select count() from ;
select sum() from ;
(
2
)分组函数
Group by
语法:
Select () from () group by ();
Select () from () where () group by ();
除了聚合函数出现的列不用跟在
group by
后面,其他查询的列都要跟在
group by
后面。
select count(*),id from T12 group by id;
查询数量大于1的id数据行
表空间:
管理工具中表空间,右击能够直接新建
选文件路径,可以设置表空间的相关信息,文件大小等
选好后可以直接点击确定,当然也可以看看sql语句,然后复制出来自己执行
create tablespace "ascas" datafile 'D:\xiangrikui\sd.dbf' size 128 CACHE = NORMAL;
创建,修改用户
管理工具中的用户管理:
create user "TEST" identified by "Dameng123"
修改用户的密码
alter user TEST identified by "Dm12345678";
用户的锁定和解锁
alter user TEST ACCOUNT lock;
alter user TEST ACCOUNT unlock;
有时候我们会遇到数据重复的情况,忘记加主键,唯一索引等情况
那怎么查询并去重呢?
select count(*),id from t12 group by id having count(*)>0;
可以看到id为2的数据有两条,而id 为3的数据只有1条
delete from t12 a where exists (select 1 from t12 b where a.id=b.id and a.ROWID>b.ROWID ) ;
可以通过这个sql语句删除数据库中重复的数据,实现的逻辑可以自己理解一下,通过 rowid实现
当然也有第二种删除的方式,逻辑自己理解一下,是通过rowid实现
DELETE FROM t12
WHERE ROWID NOT IN (
SELECT MIN(ROWID)
FROM t12
GROUP BY id
);
WHERE ROWID NOT IN (
SELECT MIN(ROWID)
FROM t12
GROUP BY id
);