30分钟入门达梦数据库

目录

 

说明:

产品特点

高性能

高可用

跨平台

高可扩展

低投入

简便易用

一、安装数据库:

二、创建数据库

三、DM7的体系结构

四、 Dmsql

1.简单查询

2.过滤查询

3、多表联接查询


说明:

达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统7.0版本,简称DM7。

DM7是达梦公司在总结DM系列产品研发与应用经验的基础之上,吸收主流数据库产品的优点,采用类JAVA的虚拟机技术设计的新一代数据库产品。DM7基于成熟的关系数据模型和标准的接口,是一个跨越多种软硬件平台、具有大数据管理与分析能力、高效稳定的数据库管理系统。DM7采用全新的体系架构,在保证大型通用的基础上,针对高可用性、高性能、高安全性、易用性和兼容性做了大量的研发和改进工作,极大提升了达梦数据库产品的性能、语言丰富性、可扩展性,能同时兼顾OLTP和OLAP请求,从根本上提升了DM7产品的品质。众多的企业级特性的实现使得DM7完全能够满足大、中型企业以及金融、电信等核心业务系统的需要,是理想的企业级数据管理与分析服务平台。

产品特点

高性能

支持“大数据”应用,采用DM Vertical和DM HFS双列存储引擎、粗粒度智能索引、并行查询、多级数据分区、物化视图、分析函数、位图连接索引等先进技术,满足海量数据联机分析处理(OLAP)需求,支持多机多核智能双向并行加载,客户端数据智能分发。

采用智能高压缩技术,压缩比可达1:20,能显著减少存储开销,从而帮助客户大幅减少数据库整体投入成本。

高可用

可配置数据守护系统(主备),自动快速故障恢复,具有强大的容灾处理能力。

跨平台

跨平台,支持主流软硬件体系、支持主流标准接口。

高可扩展

支持拓展软件包和多种工具,实现海量数据分析处理、共享数据库集群(RAC)和无共享数据库集群(MPP)等扩展功能TB/PB级数据分析秒级响应。

低投入

基于高端服务器或普通服务器搭建,支持异构系统,超高性价比。

简便易用

易于实施和管理,只需要传统数据库 1/10 的管理成本,与主要商业智能工具兼容

 

一、安装数据库:

  1. 1.下载数据库:从达梦官网下载所需的数据库安装包【下载需要注册登录账户】 www.dameng.com

  2. 2. 安装:

  3. 通过以下命令,挂载光驱:

    mount -o loop /installdoc/dm7_setup.iso /mnt

    执行安装:

  4. cd /mnt
    ls
    ./DmInstall.bin

    30分钟入门达梦数据库_第1张图片

  5. 30分钟入门达梦数据库_第2张图片

  6. 30分钟入门达梦数据库_第3张图片

  7. 30分钟入门达梦数据库_第4张图片

  8. 30分钟入门达梦数据库_第5张图片

  9. 30分钟入门达梦数据库_第6张图片

30分钟入门达梦数据库_第7张图片

30分钟入门达梦数据库_第8张图片

 

二、创建数据库

执行dbca.sh命令:

dbca.sh 

30分钟入门达梦数据库_第9张图片

30分钟入门达梦数据库_第10张图片

30分钟入门达梦数据库_第11张图片

 

30分钟入门达梦数据库_第12张图片

 

30分钟入门达梦数据库_第13张图片
 
30分钟入门达梦数据库_第14张图片

 

30分钟入门达梦数据库_第15张图片
30分钟入门达梦数据库_第16张图片
 

三、DM7的体系结构

  • 数据库由一个或多个表空间组成
  • 每一个表空间由一个或多个数据文件组成
  • 每个数据文件由一个或多个簇组成
  • 页是数据库最小的分配单位,也是数据库中使用的最小的IO单元。
  • 实例:共享内存+后台的进程或是线程

    数据库:存放到磁盘的文件

  • 一般一个db对应一个实例,但是DSC(共享集群)多个实例对一个数据库。

    达梦服务器组成:

    客户端+服务器(实例+数据库)

    客户端不能直接去访问数据库,客户端把请求交给实例,实例去访问数据库,把访问信息返回给实例,实例交给客户端。

  •  

    30分钟入门达梦数据库_第17张图片

四、 Dmsql

 

 

SQL:结构化查询语言

DDL: 定义  create drop alter truncate

DML: 管理  select update delete insert

DCL:控制  grant revoke

TCL:事务控制:commit rollback

  •  

1.简单查询

  • 语法:select () from ()

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

    第二个括号:table_name

    Select * from city

    Select city_name,city_id from city;

    Select city_name cn,city_id from dmhr.city;

     

    Select employee_name,salary as tol from dmhr.employee limit 10;

     

     

    SELECT employee_name||’的工资是:’||salary as desc1 from dmhr.employee limit 10;

     

    SQL> select distinct department_id from dmhr.employee;

2.过滤查询

语法:select () from () where ();

第三个括号:过滤条件。

 

> ,<, >=,<= , !=

And or

select employee_name,salary from dmhr.employee where

employee_name='马学铭' or employee_name='苏国华'

 

select employee_name,salary from dmhr.employee where

employee_name in ('马学铭','苏国华')

模糊查询 like

%:代表0个或是多个

_:代表1

select employee_name,salary from dmhr.employee where

employee_name like '%'

IS NULL /IS NOT NULL

select employee_name,commission_pct from dmhr.employee where commission_pct is not null limit 10;

Between ...and 介于两者之间包括边界值

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

等价转换

>= and <=

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

排序

Desc 降序 asc升序

select employee_name,salary from dmhr.employee order by salary asc;

3、多表联接查询

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

第三括号:表名

第四个括号:关联字段

内连接

自然连接:

select e.employee_name,d.department_name from dmhr.employee e natural join dmhr.department d limit 10;

Using

select e.employee_name,d.department_name from dmhr.employee e natural join dmhr.department d  limit 10;

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

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代替。

select e.employee_name,d.department_name from dmhr.employee e left join dmhr.department d

on e.department_id=d.department_id where e.employee_name like '陶健%';

insert into

dmhr.employee(employee_id,employee_name,identity_card,email,hire_date,

job_id,salary,commission_pct,manager_id) values(

'11535','陶健111','430101197606309000','[email protected]',

'2009-03-27','52','9787','0','1005')

右外连接:

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

select e.employee_name,d.department_name from dmhr.employee e right join dmhr.department d on e.department_id=d.department_id

全外连接:

select e.employee_name,d.department_name from dmhr.employee e full join dmhr.department d on e.department_id=d.department_id

返回所有记录,包括不满足条件的。

左外连接和右外连接的合集  全外=左外 union 右外。

1.查询两表关联列相等的数据用内连接。

2.COL_Lcol_R的子集的时候用右外连接

3.Col_R col_L的子集的时候用左外连接

4.Col_Rcol_L彼此有交集,但是彼此不互为子集的时候用全外。

  • Insert into

    Delete

    Update

    4、分组查询:

    语法: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;

    算出各个部门的工资和,找出部门工资和大于200000的部门。

    SQL> select sum(salary) from dmhr.employee group by department_id having sum(salary)>200000;

    5、子查询

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

    1、返回值是唯一的:

    Select () from () where ()=()

    查出马学铭所在部门的所有员工。

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

    2、返回值是多行的

    语法:select () from () where ()>|

    All  >all (max) 

    Any  >any(min) 

    找出比1002部门工资都高的人

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

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

    In 把子查询运行完,在运行主查询。

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

  •  

  • 以上是达梦数据库DM7的安装及使用,关于备份、还原、作业计划,将在下一篇博客中讨论。

     

  •  

你可能感兴趣的:(达梦数据库,DM7)