目录
达梦
达梦和navicat:
"DM管理工具"和"Navicat"都是数据库管理工具,功能类似,用于管理和操作数据库,包括连接数据库、执行SQL查询、查看和管理数据库对象、数据导入导出等。"DM管理工具"是由达梦官方提供的管理工具,专门用于管理达梦数据库。而"Navicat"是一家独立软件开发商提供的,它支持多种数据库产品,包括但不限于MySQL、PostgreSQL、SQL Server、Oracle等。
如果你使用的是达梦数据库,"DM管理工具"可能提供更好的对达梦数据库的支持和优化。如果你还需要连接和管理其他类型的数据库,"Navicat"可能会更适合,因为它支持多种数据库产品。
版本区别
- DM Standard Edition 标准版
政府部门、中小型企业及互联网/内部网应用提供;
- DM Enterprise Edition 企业版
为高端应用提供了数据复制、数据守护等高可靠性、高性能的数据管理能力,完全能够支撑各类企业应用;
- DM Security Edition 安全版
拥有企业版的所有功能,并重点加强了其安全特性,引入强制访问控制功能;
采用数据库管理员 (DBA)、数据库审计员 (AUDITOR)、数据库安全员 (SSO)、数据库对象操作员 (DBO) 四权分立安全机制;
适合于对安全性要求更高的政府或企业敏感部门选用;
对比项 | 标准版 | 企业版 | 安全版 |
---|---|---|---|
最大连接数 | 25 | 无限制 | 无 |
使用时间 | 无限制 | 无限制 | 无 |
最大存储容量 | 500 GB | 无限制 | 无 |
存储过程调试功能 | 不支持 | 支持 | 支持 |
XML 支持 | 不支持 | 支持 | 支持 |
JSON 支持 | 不支持 | 支持 | 支持 |
数据库安装
下载地址:产品下载 | 达梦数据库 (dameng.com)
执行exe如下:
按默认步骤进行如下:
随后进入配置及初始化环节,现以DAMENG_test_0801
为测试用数据库名,以DMSERVER_test_0801
为测试用实例名;
然后选择默认配置,默认口令与登录名一致,如下图:
作为测试环境,我创建了安装引导里到这里自带的 示例库 BOOKSHOP
和 DMHR
,点击完成即可
这里重新把数据库名和实例名改回了默认,因为自定义
test
的话此处出现证书类报错
数据库工具介绍
服务查看器工具
在安装目录下的D:\Install\DMdatabase\tool
内找到dmservice.exe
执行,或直接在开始菜单找到,可以开始启动或暂停服务:
其查看器页面如图:可以进行开库关库的操作
管理工具
数据库实例链接
- 新建连接
创建连接数据库的对象导航,不进行保存,下次开启后需重新连接。
- 注册连接
创建连接数据库的对象导航,进行保存,下次开启后对象导航存在,可直接进行连接。
下面分别看二者:
新建
点击【新建连接】,输入主机名(IP 地址)、端口(默认 5236)、用户名(默认 SYSDBA)、密码(默认 SYSDBA);
点击【确认】会直接进行数据库连接;
新建操作图示:
注册
输入主机名(IP 地址)、端口(默认 5236)、用户名(默认 SYSDBA
)、密码(默认 SYSDBA
);
点击【测试】,测试是否连通;
点击【确定】,会连接数据库;
注册操作图如下:
上述完成后,窗口的基本功能如下:
数据库基本操作
创建表空间
表的创建和定义
登录 DM 管理工具,右键表空间模块,点击【新建表空间】,
表的修改
根据项目需要,修改表空间文件、路径、大小、是否自动扩充、扩充上限等信息
表的加密
创建用户
创建数据库对象
此部分未实践
应用程序开发
以下介绍在 Python 开发的时候,如何使用 Python 快速连接达梦数据库
dmPython
dmPython 是 DM 提供的依据 Python DB API version 2.0 中 API 使用规定而开发的数据库访问接口。使用 Python 连接达梦数据库时需要安装 dmPython
Win下编译和安装 dmPython
安装 DM 数据库软件
设置 DM_HOME 环境变量
dmPython 源码依赖 DM 安装目录中提供的 include 头文件,编译安装前需要检查是否安装 DM 数据库软件(前文已安装),并设置 DM_HOME 环境变量(一般已经默认):
安装编译工具 Microsoft Visual C++ Build Tools
在Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com)网页中,下载此处的:
安装过程较慢,但必须等待此步全部安装后方可进行下一步,不然在命令提示符内安装python setup.py install
时会报错error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
此应用安装好后,选择【启动】以确保电脑上现在具备环境:
编译安装dmpython
安装路径下的 drivers 目录下,找到 dmPython 的驱动源码,我的是在D:\Install\DMdatabase\drivers\python\dmPython
;
进入到 dmPython 驱动源码目录
cd D:\Install\DMdatabase\drivers\python\dmPython
编译安装 dmPython
python setup.py install
编译安装结束后使用 pip list
命令查看是否安装成功
我的命令提示符内(最新版本应该如下):
查看搜索路径
dmPython 通过调用 DM DPI 接口完成 Python 模块扩展,在其使用过程中,除 Python标准库以外,还需要 DPI 的运行环境
进入 python 解释器查看搜索路径:
python
import sys
sys.path
只需关心方框内最后一个路径D:\\Install\\PYTHON\\Lib\\site-packages\\dmpython-2.4.8-py3.11-win-amd64.egg
将 dpi 目录文件拷贝到路径下
操作如图示
编写测试代码
import dmPython
conn=dmPython.connect(user='SYSDBA',password='SYSDBA',server= '192.168.201.118',port=5236)
cursor = conn.cursor()
cursor.execute('select username from dba_users')
values = cursor.fetchall()
print(values)
cursor.close()
conn.close()
输出数据库中的用户名则表示连接数据库成功:
django框架下的应用开发实例
驱动源码
安装完 DM 数据库软件后,在安装路径下的 drivers 目录下的 python 目录中,可以找到 dmPython 和 Django_dmPython 的驱动源码,由于提供的是源码,需要找到对应版本自行编译安装
编译安装与 django 版本对应的 Django_dmPython,驱动源码与 django 源码的版本对应关系,例如 django317,能适配 django3.1.x 所有版本。
到 djangoxxx/django_dmPython
下执行命令:python setup.py install
安装django
(使用pip list
看是否成功)
新建项目
PyCharm 新建项目 dm_django0801,终端执行:
django-admin startproject mysite
创建一个 mysite 目录,
cd mysite
python manage.py startapp dm
创建一个 dm 目录
视图
编辑 dm/views.py 文件:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, 达梦数据库。 ")
路由
在 dm 目录里新建 urls.py 文件
from . import views
from django.urls import path
urlpatterns = [
path('', views.index, name='index'),
]
在 mysite/urls.py 文件的 urlpatterns 列表里插入一个 include()。
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('dm/', include('dm.urls')),
path('admin/', admin.site.urls),
]
启动 Django 自带的简易服务器,验证是否正常工作
在 PyCharm 中打开 Terminal 执行:
python manage.py runserver
浏览器访问 http://127.0.0.1:8000/dm/
数据库配置
编辑 mysite/settings.py 配置文件。
设置时区:
TIME_ZONE='Asia/Shanghai'
USE_TZ=False
设置 DATABASES 设置项:
DATABASES = {
'default': {
'ENGINE': 'django_dmPython', #使用的数据库后端
'NAME': 'DAMENG',
'USER': 'SYSDBA',
'PASSWORD': 'SYSDBA',
'HOST': '192.168.201.118',
'PORT': '5236',
'OPTIONS': {'local_code': 1, 'connection_timeout': 5}
}
}
模型
编辑 dm/models.py 文件。
class Book(models.Model):
class Meta:
db_table = 'PRODUCT'
PRODUCTID = models.AutoField(primary_key=True, db_column='PRODUCTID')
NAME = models.CharField(max_length=100, null=True)
AUTHOR = models.CharField(max_length=25, null=True)
PUBLISHER = models.CharField(max_length=50, null=True)
PUBLISHTIME = models.DateField(null=True)
PRODUCTNO = models.CharField(max_length=25, null=True)
SATETYSTOCKLEVEL = models.IntegerField(null=True)
ORIGINALPRICE = models.DecimalField(max_digits=5, decimal_places=2, null=True)
NOWPRICE = models.DecimalField(max_digits=10, decimal_places=4, null=True)
DISCOUNT = models.DecimalField(max_digits=2, decimal_places=1, null=True)
DESCRIPTION = models.TextField(null=True)
TYPE = models.CharField(max_length=5, null=True)
PAPERTOTAL = models.IntegerField(null=True)
WORDTOTAL = models.IntegerField(null=True)
SELLSTARTTIME = models.DateField(null=True)
SELLENDTIME = models.DateField( null=True)
把 dm 应用安装到 Django 项目里
在 Django 项目中包 dm 应用,需要在配置类 INSTALLED_APPS 中添加设置。
'dm.apps.DmConfig',
迁移
python manage.py makemigrations dm
其他基本操作
service.py
dm 目录里新建一个 services.py 文件,以实现增、删、改、查四个基本操作。
from .models import Book
- 查询操作
def fun_get_books():
books = Book.objects.all() #返回QuerySet
total_rows=books.count()
print('查询到'+str(total_rows)+'条记录')
for book in books:
print(book.NAME, book.AUTHOR, book.PUBLISHER)
print('')
- 增加操作
def fun_insert_book():
NewBook = Book()
NewBook.NAME = '水浒传'
NewBook.AUTHOR = '施耐庵,罗贯中'
NewBook.PUBLISHER = '中华书局'
NewBook.PUBLISHTIME = '2005-4-1'
NewBook.PRODUCTNO = '9787101046137'
NewBook.SATETYSTOCKLEVEL = '10'
NewBook.ORIGINALPRICE = '19'
NewBook.NOWPRICE = '14.3'
NewBook.DISCOUNT = '7.5'
NewBook.DESCRIPTION = '''
《水浒传》是宋江起义故事在民间长期流传基础上产生出来的,吸收了民间文学的营养。
《水浒传》是我国人民最喜爱的古典长篇白话小说之一。它产生于明代,是在宋、元以来有关水浒的故事、话本、戏曲的基础上,由作者加工整理、创作而成的。
全书以宋江领导的农民起义为主要题材,艺术地再现了中国古代人民反抗压迫、英勇斗争的悲壮画卷。
作品充分暴露了封建统治阶级的腐朽和残暴,揭露了当时尖锐对立的社会矛盾和“官逼民反”的残酷现实,成功地塑造了鲁智深、李逵、武松、林冲、阮小七等一批英雄人物。
小说故事情节曲折,语言生动,人物性格鲜明,具有高度的艺术成就。但作品歌颂、美化宋江,鼓吹“忠义”和“替天行道”,表现出严重的思想局限。
'''
NewBook.PHOTO = ''
NewBook.TYPE = '16'
NewBook.PAPERTOTAL = '922'
NewBook.WORDTOTAL = '912000'
NewBook.SELLSTARTTIME = '2006-03-20'
NewBook.SELLENDTIME = '2021-07-12'
NewBook.save()
print('插入成功')
- 更新操作
def fun_update_book():
try:
obj = Book.objects.get(PRODUCTID=1) #返回结果有且只有一个
obj.NAME='水浒'
obj.save()
print('更新成功')
except Book.DoesNotExist:
print('PRODUCTID=1的记录不存在,未更新任何数据')
- 删除操作
def fun_delete_book():
obj = Book.objects.filter(NAME='水浒') #返回QuerySet
del_rows=obj.count()
obj.delete()
print('删除'+str(del_rows)+'条记录')
dm视图
编辑 dm/views.py 文件。
from django.http import HttpResponse
from .services import fun_get_books
from .services import fun_insert_book
from .services import fun_update_book
from .services import fun_delete_book
def index(request):
# 查询
fun_get_books()
# 增加
fun_insert_book()
fun_get_books()
# 更新
fun_update_book()
fun_get_books()
# 删除
fun_delete_book()
fun_get_books()
return HttpResponse("执行结束,请到控制台查看输出结果。")
启动服务器运行
最后启动 Django 自带的简易服务器
标签:DM,NewBook,models,数据库,安装,达梦,dmPython From: https://www.cnblogs.com/yansz001216/p/17598674.html