达梦7入门技术总结-「建议收藏」

达梦7入门技术总结-「建议收藏」达梦数据库入门技术总结

说明:

1)该实验所有过程均是本人亲自敲命令完成,所有代码运行正确

2)安装过程使用的是suse11 sp3操作系统,后续的实验过程换成了麒麟中标,因此部分路径可能存在差异

3)安装过程使用了命令行安装,图形界面简单,因此本文没有介绍

4)job部分命令行操作太繁琐,建议使用图形界面操作,因此本文也跳过了此内容

 

正文

1. 安装
1.1 创建安装用户组
#groupadd dinstall

1.2 创建安装用户
#useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba

#useradd -g dinstall dmdba

1.3 初始化用户密码
#passwd dmdba

1.4 修改系统限制
#vi /etc/security/limits.conf
dmdba soft nofile 4096
dmdba hard nofile 65536

1.5 挂载镜像文件
#mkdir /dmdb
#mount -t iso9660 -o loop /root/dm7_setup_rh6_64_ent_7.6.0.197_20190917.iso /dmdb

1.6 更改权限
#chown dmdba.dinstall -R /dmdb
#chmod 755 -R /dmdb

1.7 修改环境变量
#su – dmdba
#vi .bashrc
export DM_HOME=/home/dmdba/dmdbms
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH

1.8 采用命令行模式安装
#su – dmdba
#cd /dmdb
#./DMInstall.bin -i
1)Please select the installer”s language (E/e:English C/c:Chinese) [E/e]:e
2)Whether to input the path of Key File? (Y/y:Yes N/n:No) [Y/y]:n
3)Whether to Set The TimeZone? (Y/y:Yes N/n:No) [Y/y]:y
4)Please Select the TimeZone [21]:21
5)Installation Type:
1 Typical
2 Server
3 Client
4 Custom
Please Input the number of the Installation Type [1 Typical]:1
6)Please Input the install path [/home/dmdba/dmdbms]:
7)Please Confirm the install path(/home/dmdba/dmdbms)? (Y/y:Yes N/n:No) [Y/y]:y
8)Confirm to Install? (Y/y:Yes N/n:No):y
9)Please execute the commands by root:
/home/dmdba/dmdbms/script/root/root_installer.sh

1.9 初始化数据
#/home/dmdba/dmdbms/bin
#./dminit
input system dir: /home/dmdba/dmdbms
input db name: dmdb01
input port num: 5236
input page size(4, 8, 16, 32): 8
input extent size(16, 32): 16
input sec priv mode(0, 1): 0
input time zone(-12:59,+14:00): +08:00
string case sensitive? ([Y]es, [N]o): n
which charset to use? (0[GB18030], 1[UTF-8], 2[EUC-KR]): 1
length in char? ([Y]es, [N]o): y
enable database encrypt? ([Y]es, [N]o): n
page check mode? (0/1/2): 0
input elog path: /home/dmdba/dmdbms/log
auto_overwrite mode? (0/1/2): 2

1.10 启动数据库服务
#cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p dmdb01 -i /home/dmdba/dmdbms/dmdb01/dm.ini
提示信息:
Move the service script file(/home/dmdba/dmdbms/bin/DmServicedmdb01 to /etc/init.d/DmServicedmdb01)
insserv: warning: current stop runlevel(s) (empty) of script `DmServicedmdb01″ overwrites defaults (2 3 4 5).
insserv: Service network is missed in the runlevels 4 to use service mysql
DmServicedmdb01 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Finished to create the service (DmServicedmdb01)

#service DmServicedmdb01 start

1.11 连接验证(默认密码)
#/home/dmdba/dmdbms/bin/disql
username:sysdba
password:SYSDBA

2.通过vnc调出管理工具
#xhost +
#su – dmdba
#export DISPLAY=127.0.0.1:1.0
#/home/dmdba/dmdbms/tool/manager

3.修改参数(v$parameter)
3.1 参数类型
0 Sys/session 动态参数,同时修改内存和配置文件
1 Read only 在数据库运行状态时,不能修改。
2 In file 静态参数,修改后,重启服务生效。

示例:
SQL> Select para_name,para_value from v$dm_ini where para_name=”BUFFER_POOLS”;
LINEID para_name para_value
———- ———— ———-
1 BUFFER_POOLS 3

3.2 命令
SP_PARA_SET_VALUE(SCOPE,PARA_NAME,PARA_VALUE);

SCOPE值:
1: 修改配置文件和内存
2:只修改配置文件

示例:
SQL> SP_SET_PARA_VALUE(2,’BUFFER’,1000);

4.重做日志
4.1 视图
v$rlogfile
v$rlog

SQL> select * from v$rlogfile;
说明:这里查出来的rlog_size大小单位是bit,因此再下面添加日志大小的时候需要除以两次1024转成M

4.2 添加日志文件
SQL> alter database add logfile “/home/dmdba/dmdbms/dmdb01/dmdb0103.log” size 256;
说明:默认单位是M,不需要加单位。并且需要和原来的日志文件大小一致

4.3 修改日志文件大小
SQL> alter database resize logfile “/home/dmdba/dmdbms/dmdb01/dmdb0103.log” to 300;
说明:所有的日志文件要大小一致

5.表空间
5.1视图
dba_tablespaces
v$tablespace
v$huge_tablespace

5.2 表空间说明
SQL> select TABLESPACE_NAME,STATUS from dba_tablespaces;

System表空间: 数据字典和全局的系统数据。
ROLL表空间:存放了数据库运行过程中产生的回滚记录。
TEMP表空间:临时表空间。
MAIN表空间:数据库默认的表空间,创建数据对象时,如果不指定存储位置,默认存放到该表空间。
HMAIN表空间:huge 表空间

5.3 查询所有表空间信息
SQL> Select name from v$tablespace union select name from v$huge_tablespace;

5.4 创建表空间
表空间初始文件大小是页大小的4096倍

示例1:表空间初始大小50M,每次扩展1M,最大100M
SQL> create tablespace tbs1 datafile “/dm7/data/dm01/tbs01.dbf” size 50 autoextend on next 1 maxsize 100;

示例2:表空间初始50M,表空间由2个数据文件组成,分别存储到不同的磁盘上,每次扩展1m,每个数据文件最大100M.
SQL> create tablespace tbs2 datafile “/dm7/data/dm01/tbs02_1.dbf” size 50 autoextend on next 1 maxsize 100,”/dm7/data/tbs02_2.dbf” size 50 autoextend on next 1 maxsize 100;

5.5 维护表空间
最常用的方式就是增加数据文件
SQL> alter tablespace tbs2 add datafile “/dm7/data/dm01/tbs02_3.dbf” size 50 autoextend on next 1 maxsize 100;

5.6 更换文件存储位置
注意:SYSTEM,ROLL, TEMP 不能offline;
SQL> alter tablespace tbs2 offline;
SQL> alter tablespace tbs2 rename datafile “/dm7/data/tbs02_2.dbf” to “/dm7/data/dm01/tbs02_2.dbf”;
SQL> alter tablespace tbs2 online;

5.7 删除表空间
SQL> drop tablespace tbs2;
如果表空间存有数据,不允许直接删除!

6.用户管理
6.1 视图
dba_users

6.2 内置用户
sys — 达梦数据库的内置管理用户,不能登录数据库,数据库使用的大部分的数据字典和动态性能视图
Sysdba — 数据库的管理员
Sysauditor — 审计用户
Syssso — 安全用户
sysdbo — 数据操作员(安全版有,四权分立)

6.3 命名规则
字母开头,a-z,0-9,$#_

6.4 口令策略
用户密码最长为48个字节,创建用户语句使用 password policy 子句来指定口令策略(DM.INI PWD_POLICY).
系统支持的口令策略:
   0 无策略
   1 禁止与用户名相同
   2 口令长度不小于9
   4 至少包含一个大写字母(A-Z)
  8 至少包含一个数字(0-9)
 16 至少包含一个标点符号(英文状态输入,除”和空格外)
口令可以单独使用,也可以组合使用,比如需要应策略1和2,则设置口令策略为:3
密码尝试登录次数 FAILED_LOGIN_ATTEMPS
密码失败锁定时间 PASSWORD_LOCK_TIME
密码过期时间 PASSWORD_LIFE_TIME

6.5 用户权限
系统权限: create drop alter 能够对数据库做什么操作。
对象权限(表,视图,过程等等): select delete update insert
角色: dba、public等

6.6 查看用户权限:
SQL> select grantee,granted_role from dba_role_privs where grantee=”USER1″;

行号 GRANTEE GRANTED_ROLE
———- ——- ————
1 USER1 PUBLIC

6.7 查看角色拥有的权限
SQL> select grantee,privilege from dba_sys_privs where grantee=”PUBLIC”;
行号 GRANTEE PRIVILEGE
———- ——- —————-
1 PUBLIC INSERT TABLE
2 PUBLIC UPDATE TABLE
3 PUBLIC DELETE TABLE
4 PUBLIC SELECT TABLE
5 PUBLIC REFERENCES TABLE
6 PUBLIC GRANT TABLE
…..

6.8 示例

示例1:为数据库设置一个用户,该用户可以创建自己的表,有属于自己的独立表空间,用户密码要求每60天变更一次。
SQL> create tablespace tbs3 datafile “/dm7/data/dm01/tbs03.dbf” size 32;
SQL> create user user1 identified by user1user1 limit password_life_time 60 default tablespace tbs3;

示例2:创建一个用户,该用户每60天变更一次密码,密码尝试连接2次失败,账户锁定5分钟,用户还可以查询dmhr.employee表
SQL> create user user2 identified by user2user2 limit password_life_time 60, FAILED_LOGIN_ATTEMPS 2 ,PASSWORD_LOCK_TIME 5 default tablespace tbs3;
SQL> grant select on dmhr.employee to user2;

示例3:企业招聘一批录入人员,权限是固定的,只有录入CITY表的权限
角色:一类权限的集合
SQL> create role role1;
SQL> grant insert on dmhr.city to role1;
SQL> grant references any table to role1;
SQL> grant role1 to user2;

6.9 用户维护

1)撤销权限
SQL> revoke select on dmhr.employee from user2;

2)解锁用户
SQL> alter user user2 account unlock;

3)修改密码
SQL> alter user user2 identified by user3user3;

4)删除用户
SQL> drop user user2;

5)删除用户(级联删除)
SQL> drop user user2 cascade;

7.dmsql
说明:由于SQL查询内容比较复杂,并且作为数据管理型DBA SQL开发也不是重点,所以这里只总结了大概内容。
7.1 常识
dmsql主要基于sql92,部分sql99
SQL:结构化查询语言
DDL: 定义 create drop alter truncate
DML: 管理 select update delete insert
DCL:控制 grant revoke
TCL:事务控制:commit rollback

7.2 select
简单查询:select () from ();
过滤查询:select () from () where ();
多表链接:select() from () join() on();
分组查询:select 聚合函数() from () group by () having ();
子查询:

7.3 insert into

7.4 delete

7.5 update

8.表的管理
8.1 达梦数据库支持的表
索引组织表(默认的表)、堆表、临时表、分区表、外部表等。

8.2 创建表时包含的内容
命名:字母开头 a-z,0-9,$#_
 数据类型:int char varchar date clob blob number等等。
 存储位置:自已的规划的表空间。
 约束(5大约束): 非空约束,唯一约束,主键,检查,外键
 注释:comment
 遵循3范式

8.3 示例
1)要求
表名:STU
学号(id char(10)),
姓名(sname varchar(20) not null),
性别 (sex char(1))
年龄(age int)
电话(tel varchar(15) not null)
家庭住址:(address varchar(50))
表空间:TBS2
约束:主键列—学号 非空—姓名,电话
备注:学员信息表

2)SQL语句
create table USER2.STU
(
ID CHAR(10) not null ,
SNAME VARCHAR(20) not null ,
SEX CHAR(1),
AGE INT,
TEL VARCHAR(15) not null ,
ADDRESS VARCHAR(50),
primary key(ID)
) storage (on TBS2);
comment on table USER2.STU is “学员信息表”;
comment on column USER2.STU.ID is “学号”;
comment on column USER2.STU.SNAME is “姓名”;
comment on column USER2.STU.SEX is “性别”;
comment on column USER2.STU.AGE is “年龄”;
comment on column USER2.STU.TEL is “电话”;
comment on column USER2.STU.ADDRESS is “家庭住址”;

8.4 查看表结构
注意:用户名、表名都要大写
SQL> sp_tabledef(“USER2″,”STU”);

行号 COLUMN_VALUE
———- ——————————————————————-
1 CREATE TABLE “USER2″.”STU” (
“ID” CHAR(10) NOT NULL,
“SNAME” VARCHAR(20) NOT NULL,
“SEX” CHAR(1), “AGE” INT,
“TEL” VARCHAR(15) NOT NULL,
“ADDRESS” VARCHAR(50),
CLUSTER PRIMARY KEY(“ID”))
STORAGE(ON “TBS2”, CLUSTERBTR) ;

或者:
SQL> select dbms_metadata.get_ddl(“TABLE”,”STU”,”USER2″);

8.5 查看表所属表空间
SQL> select table_name,tablespace_name from dba_tables where table_name=”STU”;
行号 TABLE_NAME TABLESPACE_NAME
———- ———- —————
1 STU TBS2

8.6 查看表有哪些约束
SQL> select table_name,constraint_name,constraint_type from dba_constraints where table_name=”STU”;
行号 TABLE_NAME CONSTRAINT_NAME CONSTRAINT_TYPE
———- ———- ————— —————
1 STU CONS134218774 P

8.7 创建表时指定约束
1)非空约束
SQL> create table user2.t1(id int);
SQL> alter table user2.t1 modify id int not null;
或者:
SQL> create table user2.t2(id int not null);

2)唯一约束
SQL> create table user2.t3(id int unique);

3)主键约束
SQL> create table user2.t4(id int primary key);

4)检查约束
SQL> create table user2.t5(id int check(id>=5));

5)外键约束
SQL> create table user2.t6(id int primary key ,sid int foreign key references user2.t4(id));
说明:作为外键约束的列必须是另外一个表的主键

8.8 表的注释
SQL> comment on column user2.t1.id is “编号”;

8.9 导入数据到表中
1)编写a.sql脚本:
insert into user2.t1(id) values(1);
insert into user2.t1(id) values(2);
insert into user2.t1(id) values(3);
insert into user2.t1(id) values(4);
commit;

2)然后:
SQL> start /tmp/a.sql

3)也可以用图形界面的DTS工具去做。

8.10 维护表
1)重命名
SQL> alter table user2.t6 rename to tt6;

2)增加删除列
SQL> alter table user2.tt6 add name varchar(10);
SQL> alter table user2.tt6 drop name;

3)启用禁用约束
SQL> select table_name,constraint_name,constraint_type from dba_constraints where table_name=”T4″;
行号 TABLE_NAME CONSTRAINT_NAME CONSTRAINT_TYPE
———- ———- ————— —————
1 T4 CONS134218776 P

SQL> alter table user2.t4 disable constraint CONS134218776;
SQL> alter table user2.t4 enable constraint CONS134218776;

9.视图管理
9.1 视图分类
简单视图,复杂视图,物化视图
注:简单视图和复杂视图不占磁盘空间
物化视图占磁盘空间

9.2 创建视图
create view () as select () from () where ();

SQL> create view v1 as select * from user2.t1;
SQL> select * from v1;

行号 ID
———- ———–
1 1
2 2
3 3
4 4

9.3 查看视图
SQL> select view_name,text from dba_views where view_name=”V1″;

行号 VIEW_NAME TEXT
———- ——— ———————————
1 V1 SELECT USER2.T1.ID FROM USER2.T1

9.4 修改视图
SQL> create or replace view v1 as select * from user2.t2;
SQL> select * from v1;
未选定行

10.序列管理
10.1 创建序列
SQL> create sequence user2.s1
start with 1 —-序号起始
increment by 1 –自增多少
maxvalue 50 —最大值
nocache —是否缓存
nocycle; —是否循环

10.2 序列的应用
SQL> insert into user2.t1 values(user2.s1.nextval);
SQL> insert into user2.t1 values(user2.s1.nextval);
向表中插入两条记录。

SQL> select * from user2.t1;

行号 ID
———- ———–
1 1
2 2
3 3
4 4
5 1
6 2

6 rows got

11.同义词管理
11.1 创建同义词
公共:SQL> create public synonym ss1 for dmhr.employee;
普通:SQL> create synonym ss2 for dmhr.employee;

SQL> select count(*) from ss1;

行号 COUNT(*)
———- ——————–
1 856

11.2 修改同义词
SQL> create or replace synonym ss2 for dmhr.city;

11.3 删除同义词
SQL> drop synonym ss2;
SQL> drop public synonym ss1;

12.索引管理
12.1 达梦支持的索引
二级索引、位图索引、唯一索引、复合索引、函数索引、分区索引等。
默认的表是索引组织表,是利用rowid创建一个默认的索引,所以创建的索引称为二级索引。

12.2 查看表的索引
SQL> select table_name,index_name from dba_indexes where table_name=”T1″;
行号 TABLE_NAME INDEX_NAME
———- ———- ————-
1 T1 INDEX33555470

12.3 索引的作用
加快表的查询,对数据库做DML操作的时候,数据库会自动维护索引。索引是一棵倒置的树,使用索引,就是对这棵索引树做遍历。

12.4 建立索引的规则

1)适合建立索引的情况
经常查询的列
接条件列
谓词经常出现的列(where)
查询是返回表的一小部分数据

2)不适合做索引的情况:
列上有大量的null
列上的数据有限(例如性别)

12.5 创建索引
规划索引表空间
表的数据是无序的,索引的数据是有序的

示例:在Emp中的employee_id 建立索引。
1)建立表
SQL> create table user2.emp as select * from dmhr.employee;
2)建立索引表空间
SQL> create tablespace tbs_idx1 datafile “/dm7/data/dm01/tbs_idx101.dbf” size 32;
3)建立索引:
SQL> create index ind_emp on user2.emp(employee_id) tablespace tbs_idx1;
4)查询索引:
SQL> select table_name,index_name from dba_indexes where table_name=”EMP”;

行号 TABLE_NAME INDEX_NAME
———- ———- ————-
1 EMP INDEX33555479
2 EMP IND_EMP

12.6 重建索引
SQL> alter index user2.IND_EMP rebuild;

13.备份还原
13.1 备份分类
物理备份、逻辑备份

13.2 物理备份
1)工具简介
冷备:(dmap服务打开的状态下,数据库是关闭的)
热备:(dmap服务一定是打开的,数据库也是打开的,数据库要开归档)
导入导出:dexp dimp
集群:数据守护(dw),dsc(rac)
达梦支持第三方的备份软件:爱数,鼎甲

2)物理备份过程(冷备)
第一步:创建归档日志存放路径
#mkdir /dm7/data/dm01/arch

第二步:开归档
SQL> alter database mount;
SQL> alter database add archivelog “type=local,dest=/dm7/data/dm01/arch,file_size=64,space_limit=0”;
SQL> alter database archivelog;
SQL> alter database open;
SQL> select ARCH_MODE,STATUS$ from v$database;
行号 ARCH_MODE STATUS$
———- ——— ———–
1 Y 4

第三步:停止数据库服务
[dmdba@localhost dm01]$ service DmServicedm01 stop

第四步:使用dmrman备份
说明:dmrman 命令必须在命令所在的bin目录下执行才行
[dmdba@localhost bin]$ pwd
/dm7/bin
[dmdba@localhost bin]$ ./dmrman
RMAN> backup database “/dm7/data/dm01/dm.ini”;
根据提示信息找到备份文件位置

3) 使用命令行备份(热备)
使用命令行备份,同样需要开归档,但是不需要停数据库服务
#mkdir /dm7/data/backup
SQL> backup database full backupset “/dm7/data/backup/full_bak”;
增量备份
SQL> insert into user2.t1 values(user2.s1.nextval);
SQL> select checkpoint(1);
SQL> backup database increment backupset “/dm7/data/backup/incr_bak”;

13.3 还原数据
1)选择实验用户和实验表空间
SQL> select username,default_tablespace from dba_users where username=”USER2″;

行号 USERNAME DEFAULT_TABLESPACE
———- ——– ——————
1 USER2 TBS3

2)模拟表空间文件损坏
#mv tbs03.dbf tbs03.dbf.bak

3)重启服务
#service DmServicedm01 stop
#service DmServicedm01 start

4)手动打开数据库
SQL> alter database open;

5)查看表空间状态
SQL> select TABLESPACE_NAME,STATUS from dba_tablespaces where tablespace_name=”TBS3″;

行号 TABLESPACE_NAME STATUS
———- ————— ———–
1 TBS3 1

6)恢复数据
SQL> restore tablespace tbs3 from backupset “/dm7/data/backup/full_bak”;

7)online表空间
SQL> alter tablespace tbs3 online;

8)查看表空间状态
SQL> select TABLESPACE_NAME,STATUS from dba_tablespaces where tablespace_name=”TBS3″;

行号 TABLESPACE_NAME STATUS
———- ————— ———–
1 TBS3 0

9)查询数据
SQL> select * from user2.t1;
行号 ID
———- ———–
1 1
2 2
3 3
4 4
5 1
6 2
7 3
8 4

8 rows got

13.4 逻辑导入导出
1)工具简介
Dexp 逻辑导出 dimp 逻辑导入
Dexp和dimp是DM自带的工具,分为四种级别:
数据库级,用户级、模式级和表级。四种级别独立互斥,不能同时存在。四种级别所提供的功能:
数据库级(full):导出或导入整个数据库中的访问对象。
用户级(owner):导出或导入一个或多个用户所拥有的所有对象。
模式级(schemas):导出或导入一个或多个模式下的所有对象。
表级(table):导出或导入一个或多个指定的表或表分区。

2)实验过程
第一步:备份user2下的数据
[dmdba@localhost bin]$ pwd
/dm7/bin
[dmdba@localhost bin]$./dexp sysdba/SYSDBA file=/dm7/data/backup/user2.dmp log=/dm7/data/backup/user2.log owner=user2

第二步:恢复数据到user1下
[dmdba@localhost bin]$ pwd
/dm7/bin
[dmdba@localhost bin]$./dimp sysdba/SYSDBA file=/dm7/data/backup/user2.dmp log=/dm7/data/backup/user1.log fromuser=user2 touser=user1

第三步:数据确认(两次SQL语句是导入数据前后的对比)
SQL> select * from user1.t1;
select * from user1.t1;
[-2106]:Error in line: 1
Invalid table or view name [t1].
used time: 1.538(ms). Execute id is 0.

SQL> select * from user1.t1;

LINEID id
———- ———–
1 1
2 2
3 3
4 4
5 1
6 2

6 rows got

14.达梦SQL开发
14.1 配置ODBC(linux下)
1)安装(root用户)
#tar -xvf unixODBC-2.3.0.tar.gz
#cd unixODBC-2.3.0
# ./configure –enable-gui=no
#make
#make install
# odbc_config –version
2.3.0
#odbc_config –odbcini
/usr/local/etc/odbc.ini
#odbcinst -j
unixODBC 2.3.0
DRIVERS…………: /usr/local/etc/odbcinst.ini
SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini
FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size…….: 8
SQLLEN Size……..: 8
SQLSETPOSIROW Size.: 8

2)修改配置文件
#cd /usr/local/etc
#vi odbc.ini
[dm7]
Desription=DM ODBC DSND
Driver = DM7 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = Abcd.1234
TCP_PORT = 5236

#vi odbcinst.ini
[DM7 ODBC DRIVER]
Description = ODBC DRIVER FOR DM7
Driver = /dm7/bin/libdodbc.so

3)修改文件权限
#chmod 775 odbc.ini
#chmod 775 odbcinst.ini

4)测试
#su – dmdba
#isql dm7
+—————————————+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+—————————————+

14.2 存储过程
1)匿名块
SQL> set serveroutput on
SQL> begin
print(“hello world”);
end;
/

2)命名块(存储过程)
SQL> CREATE OR REPLACE PROCEDURE USER2.P1
AS
BEGIN
SELECT * from USER2.T1;
END;
/

SQL> call user2.p1;

LINEID id
———- ———–
1 1
2 2
3 3
4 4
5 1
6 2

6 rows got 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10637.html

(0)
上一篇 2022-12-24
下一篇 2022-12-24

相关推荐

  • CentOS_7.6 安装 Redis 6.0.1 以及开启自动启动相关问题[通俗易懂]

    CentOS_7.6 安装 Redis 6.0.1 以及开启自动启动相关问题[通俗易懂]背景 阿里云的 ECS 服务器,什么软件都没有,需要的软件需要自己装。 下载 Redis 下载地址:https://redis.io/download 当前版本 Redis 6.0.1 升级 gcc…

    2023-02-27
    144
  • WEB安全入门:如何防止 CSRF 攻击?

    WEB安全入门:如何防止 CSRF 攻击?现在,我们绝大多数人都会在网上购物买东西。但是很多人都不清楚的是,很多电商网站会存在安全漏洞。乌云就通报过,国内很多家公司的网站都存在 CSRF 漏洞。如果某个网站存在这种安全漏洞的话,那么我们在购…

    2023-03-14
    163
  • Python Tuple Usage Guide

    Python Tuple Usage GuidePython是一种极受欢迎的编程语言,其中元组(Tuple)是Python中的一种重要的数据类型。元组在许多场景下都非常有用,因为它可以帮助您存储和操作多个值。本篇文章将会向您介绍Python中元组的概念、创建、修改及元组相关的各种操作。

    2024-09-13
    22
  • redis笔记01[通俗易懂]

    redis笔记01[通俗易懂]起步 redis简介 redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. redis与其他key-value缓存产品有一下三个特点: redis支持数据的持久化,可…

    2023-02-06
    157
  • Python Item类的用法详解

    Python Item类的用法详解在爬虫框架Scrapy中,Item是用来保存爬取数据的容器。每个Item对象是一个字典(key-value形式),可以保存从网页中获取的信息。在爬虫代码中,可以定义Item的类,在处理爬虫程序的过程中使用这个类来序列化爬取的响应并传递给Pipeline。

    2024-02-22
    117
  • Python列表添加元素的方法

    Python列表添加元素的方法Python列表是一个非常常用、非常强大的数据类型,用于存储一系列值。它的特点是:可以随时添加、删除、修改元素。本文将重点介绍Python列表添加元素的方法。

    2024-03-22
    74
  • 使用pytesseract进行OCR文字识别

    使用pytesseract进行OCR文字识别在现代社会中,数字化技术的发展使得人们变得更加依赖于电子设备。电子设备和软件可以协助人们进行工作和生活,但有时文字是从纸质文件或图片中传递而来的。当需要处理这些文件的时候,OCR(光学字符识别)变得非常有用。OCR技术可以帮助电脑将图片中的文字识别并转为可编辑或其他格式的文本,同时也可以帮助人们对纸质文件进行数字化处理。Python作为一门流行的编程语言,提供了几种OCR系统,其中最受欢迎的就是Pytesseract。

    2024-06-29
    45
  • 分布式存储的六大优点「建议收藏」

    分布式存储的六大优点「建议收藏」分布式存储往往采用分布式的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息。它不但提高了系统的可靠性、可用性和存取效率,还易于扩展,将通用硬件引入的不稳定因素降到最低。优点如下:…

    2022-12-22
    150

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注