数据库自我总结2

DM8图形化界面安装
环境检测:
1.操作系统检测: uname - ra
2.依赖包检测: rpm -qa | grep glibc
3.硬件检测
3.1cpu查看: cat /proc/cpuinfo
3.2磁盘信息查看: df -h
fdisk -l
3.3内存信息查看:free
3.4网络要求
1规划用户
①创建用户组 groupadd dminstall
②创建安装用户 useradd -g dminstall -m -d /home/dmdba -s /bin/bash/ dmdba
③初始化密码 passwd dmdba
2检查操作系统限制
①查询 ulimit -a
②修改 vi /etc/security/limits.conf
按i 修改添加

  • soft nofile 65536
  • hard nofile 65536
    3安装DM库
    ① 规划安装路径 mkdir /dm8
    ② 规划权限 ls -dl /dm8
    ③ 更改权限 chown dmdba.dminstall -R /dm8
    ④ 切换到DM安装包目录下,挂在达梦数据库镜像文件到指定目录
    mount -o loop dm8镜像文件名.iso /mnt
    ⑤ 指定的目录 mount /dev/cdrom/mnt
    安装前使用root用户将安装执行文件权限修改为755
    su - dmdba
    cd /mnt
    挂载文件是以只读方式挂载,无法在mnt目录下直接修改权限,可以将挂载文件拷贝到新的目录再修改权限.
    mkdir dminstall
    cp -R /mnt/* /dminstall
    chmod 755 DMInstall.bin
    4执行安装命令进行安装
    按照步骤安装即可

初始化数据库实例
可自行执行 ./dbca.sh命令
一般用途–数据库目录/dm8/data–控制文件路径–数据文件路径–日志文件路径–初始化日志路径–初始化参数字符集utf-8 varchar类型以字符为单位–设置密码–创建实例库dmhr–完成
① 将实例服务的脚本文件移动到/usr/lib/systemd/system/目录下,这样可以通过systemctl命令来管理该服务
mv /dm8/bin/DmServiceSTEPHENINSTANCE.service /usr/lib/systemd/system/DmServiceSTEPHEN INS TANCE service
② 让系统服务生效 systemctl enable DmServiceSTEPHEN INS TANCE.service
③ 启动服务 systemctl start DmServiceSTEPHEN INS TANCE.service

创建表空间,右键表空间位置,新建

通过系统管理员创建用户
用户右键新建用户 常规 用户名 密码 确认密码 选择表空间 索引表空间
所属角色VTI 授予
系统权限create table(所需系统权限)
设置对象权限 dmhr模式 employee select 授予转授(根据所需设置对象权限)
资源限制(根据所需设置)

权限
a系统权限 常用的系统权限:create、alter、drop
b用户权限 常用的对象权限:insert、delete、update、select、all
c角色权限 可解决多个用户具备多个相同权限需要进行频繁授权的问题

数据表的创建、修改和删除
达梦数据库数据类型:
a.整数类型 ①int
②bigint
③tynyint
b.小数类型 ①dec/decimal(m,n)
②number(m,n)
③double
④float
c.字符串类型 ①char
②varchar
d.日期时间类型①timestamp
②datetime
e.大对象类型 ①text
②clob
③blob

创建表 表位置 右键 新建 表名 加号 列的属性 主键 列名 数据类型 非空 精度 标度 注释确定

约束
约束类型:a非空约束
b主键约束
c外键约束
d唯一键约束
e check约束
– 创建一个用户表
create table i_user(
phone char(11) not null primary key,
password varchar(20) not null
);

– 创建基本信息表表
create table i_basic(
phone char(11) not null primary key,
nick_name varchar(20) not null,
name varchar(20) not null,
id_card varchar(20) not null,
birthday datetime not null,
reg_date datetime not null,
last_login_date datetime not null,
head_image varchar(255) not null
);

– 创建一个商品类型表
create table i_category(
category_id int not null primary key,
category_level int not null,
category_name varchar(50) not null,
parent_id int not null
);

– 创建一个商品信息表
create table i_goods(
goods_id bigint not null primary key,
goods_title varchar(100) not null,
price decimal(10,2) not null,
discount float not null,
specification varchar(20) not null,
detail text not null,
category_id int not null,
ammount int not null,
images_url text not null,
update_date datetime not null,
sold_out_date datetime not null
);

– 创建收货地址信息表
create table I_Address(
addr_id bigint not null primary key,
prov varchar(20) not null,
city varchar(50) not null,
county varchar(50) not null,
detail varchar(100) not null,
receive_name varchar(20) not null,
receive_phone char(11) not null,
owner char(11) not null
);

– 创建购物车
create table i_cart(
cart_id bigint not null primary key,
user_id char(11) not null,
cart_date datetime not null,
goods_id bigint not null
);

– 创建一个订单表
create table i_order(
order_id bigint not null primary key,
user_id char(11) not null,
order_date datetime not null,
goods_id bigint not null,
goods_num int not null,
sum_price decimal(12,2) not null,
order_status varchar(10) not null,
addr_id bigint not null
);

– 以用户为中心去关联其他实体
– 用户 和 基本信息 一对一的关联关系
– 基本信息表中的手机号码列是一个外键,它引用自用户信息表的phone列
– 这种引用关系一旦成立: 将用户表称为主表 将基本信息表称为从表(外键表)
alter table TRACY.I_BASIC add constraint basic_phone_user_phone
foreign key (phone) references I_user (phone);

– 商品表中的类型编号必须引用自类型表的类型编号
– 把商品表称为从表,把类型表称为主表
alter table TRACY.I_goods add constraint goods_type_category_type
foreign key (CATEGORY_ID) references I_CATEGORY (CATEGORY_ID);

– 收货地址中的owner列必须是引用自用户表的phone列
alter table TRACY.I_address add constraint addr_owner_user_phone
foreign key (owner) references I_User (phone);

– 购物车表中的用户编号必须引用自用户表的phone列
alter table TRACY.I_cart add constraint cart_user_id_user_phone
foreign key (user_id) references I_User (phone);
– 购物车表中的商品编号必须引用自商品表的goods_id列
alter table TRACY.I_cart add constraint cart_goods_id_goods_goods_id
foreign key (goods_id) references I_goods (goods_id);
– 订单表中用户编号必须引用自用户表的phone列
alter table TRACY.I_order add constraint order_user_id_user_phone
foreign key (user_id) references I_user (phone);
– 订单表中的商品编号必须引用自商品表中的goods_id列
alter table TRACY.I_order add constraint order_goods_id_goods_goods_id
foreign key (goods_id) references I_goods (goods_id);
– 订单表中的配送地址编号必须引用自地址表中的addr_di列
alter table TRACY.I_order add constraint order_addr_id_address_addr_id
foreign key (addr_id) references I_address (addr_id);

– 创建唯一约束: 保证基本信息中的身份证号码不重复
alter table I_Basic add constraint UQ_id_card unique(id_card);

– check约束
create table student(
stuNo int not null primary key,
sex varchar(2) not null
);

达梦数据库基础增、删、检、查
1 DMSQL分类
①DDL:数据定义语言,用于操作数据库对象本身,比如create. alter. drop
②DML:数据操纵语言,用于操作数据库对象中的数据,比如insert、delete、update
③DQL:数据查询语言,用于查询数据操纵,比如select
④TC:事务控制语言,用于事务控制操作,比如commit rollback
⑤DCL:数据控制语言,用于权限操作,比如grant、revoke

将项目测试数据导入到对应表中
使用disql工具 数据迁移 新建迁移 选择excel文件导入到数据库实例

基本查询功能
1 查询基础语法结构
Select列1,列n from 表[where 条件] [group by分组列1 ,…列n] [having 筛选分组条件] [order by排序列1…列n]
2 条件查询常用表达式
a查询中使用别名
b关系运算符:>、<、=、!=、>=、<=
c逻辑运算符and、not、or
d范围运算
①关系和逻辑运算符组合
②between…and…
③in(值1,…,值n)
e模糊查询
①like
②掌握%和_两个特殊符号在模糊查询中的作用
f null值和非空查询
①is null
②is not null
3 查询分组、多列分组、聚合函数
a sum() 求和
b count() 统计梳理
c max() 求最大值
d min() 求最小值
e avg() 求平均值
4筛选分组
a having筛选分组条件
5查询排序
a order by 分组列名列表
6分页查询
a top分页
select top每页显示条数列名列表from表where id not in (select top偏移量条数id
from表)
b limit分页
select列名列表from表[…] 1imit 偏移量,每页显示条数
c 伪列分页
1.rowid select rowid, 列名列表from表where rowid between起始编号and 结束编号
2.rownum select t.列名列表from select rownum num,列名列表from表名 where rownum < maxValue) t where num > minvalue

函数
①字符串函数
1.length(string)获取字符串长度(包含空格)
2.concat(str1,…,strn).拼接字符串
3.initcap(string)将字符串中的单词的首个字母变成大写
4.insert(str1,begin index,length,str2) 从str1 字符串的指定下标开始删除指定长度的
5.内容然后再插入str2并返回新字符串
6.lower(string)转小写
7.upper(string)转大写
8.trim(string)去除字符串左右两边的空格
9.intr(str1,str2,n,m)返回字符串str2 在str1中,从第n个字符开始第m次出现的下标
10.left(string,n)从字符串左边截取长度为n的子串
11.right(string,n)从字符串右边截取长度为n的子串
12.substring(string,begin,n)从字符串的begin下标开始截取长度为n的子串
13.replace(string,old,new)将string字符串中的old字符串替换成new字符串
②数学函数
1.pi()获取圆周率
2.rand()生成0-1之间的随机小数
3.floor()向下取整
4.ceil()向上取整
5.rand()生成0-1之间的随机小数
6.floor()向下取整
7.ceil()向上取整
8.round(number,n)四舍五入到n位小數
9.trunc(number,n)直接截断到第n位小数
10.mod(m,n)求m/n的余数
11.sqrt(number)求平方根
12.power(m,n)求m的n次方
③日期函数
1.curdate()获取当前日期
2.curtime()获取当前时间
3.now()获取当前日期时间
4.add_ day(date,num) 在指定日期上增加指定的天数(可以为负数)
5.add_ months(date,num)在指定日期上增加指定的月数
6.dateadd(datepart,num,date)在指定8期的指定部分增加指定的数值
7.datedif(datepart,date1,date2)计算两个日期的指定部分差值
8.datepart(datepart,date)获取指定日期中指定部分的值
9.dayofweek(date)计算指定日期是一周中的第几天
10.dayofyear(date)计算指定日期是一年中的第几天

1.cast(value as type)将指定值转换成指定的数据类型
2.convert(type,value)将指定值转换成指定数据类型

多表联查
1.笛卡尔集查询
select 列名列表 from 表1,表2
2.内联接查询
select列名列表from表1,表2 where两表关联列条件表达式;
select列名列表from 表1 inner join on两表关联列条件表达式;
3.外联接查询
①左外联接查询
select列名列表from 表1 left outer join表2 on两表关联列条件表达式;
②右外联接查询
select列名列表from表1 right outer join表2 on两表关联列条件表达式;
③全联接查询
select列名列表from表1 full join表2. on两表关联列条件表达式;

子查询
1.where 子句子查询:将一个查询的结果作为另一个查询(更新)操作的条件
select 列名列表from表名where条件列= | in | not in (子查询) [条件…其他];
2.from子句子查询:将一个查询的结果看做一张虛拟表提供给其他查询使用
select列名列表from (子查询)临时表名[条件… 其他] ;
3.select子句子查询:将一个查询的结果和其他查询的结果进行组合
select列名列表,(子查询)from表名[条件… 其他] ;

视图和索引

视图–右键–新建视图–模式名、视图名、注释–确定

索引–右键–新建索引–索引名称–列名–确定

备份数据库
使用root账户
cd /dm8/tool/
./dmservice.sh 进入DM服务器查看器,关闭数据库实例服务。
使用dmdba账户
cd /dm8/tool/console 打开控制台工具
备份还原,新建备份
备份集名:backup_2020_7_24_18_29
备份集目录:backup_2020_7_24_18_29
完全备份,备份描述:first time backup 确定
备份成功
备份成功后,打开实例,删除DMHR表空间内的数据库对象,删除DMHR变空间,关闭实例
还原数据库,DM控制台工具,备份还原,搜索目录制定/dm8/data获取备份
选中备份集,还原,确定
恢复,恢复成功
更新魔数,确定
可以打开实例查看恢复了的备份

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值