- 浏览: 1048288 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
数据的表前缀
很多系统的数据库都给数据表加上前缀,这是为什么呢?
因为每个系统都有一个对应的数据库,有时多个系统都共用一个数据库,而数据表的名称可能相同,为了区分不同系统的数据表,所以每个系统的数据表都有一个自己的前缀,而且加上前缀,相当于对数据表进行了分类,从名字上看就知道哪个表是哪个系统的数据库中的,方便管理。
前缀指数据库中使用的用户名
如:select * from abc.tablename@def
abc是schema,oracle中的模块,通常是指数据库的用户,def是oracle中的dblink,创建dblink用于配置数据库连接的别名,sql的意思是在查询def库中abc用户下的表
前缀oracle叫schema
有可能是用户,也有可能是表空间
表名带有$符号一般都是数据字典的视图或同义词。
例如:v$database数据库运行信息、v$datafile所有数据文件信息
oracle的dblink的使用
在跨数据库查询的时候时常会用到dblink,例如:两台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台数据库服务器下面的某个schema的数据,这个时候,使用dblink能够很方便的实现。
dblink和数据库中的view功能类似,建立dblink的时候需要直接到待读取数据库的ip地址,ssid以及数据库的用户名和密码。
第一部分:如何创建dblink
dblink的创建有两种方式:
1、在本地数据库tnsnames.ora文件中配置要访问的目标数据库信息
create [public] database link to_mai
connect to scott identified by tiger using 'to_mai';
其中第一个to_mai是将要创建的dblink的名字,
第二个to_mai是tnsnames.ora文件中配置的目标数据库mai的连接信息:
to_mai =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.123)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mai)
)
)
scott/tiger是登录到远程数据库的用户名和密码,然后当在本地数据库使用to_mai的dblink访问远程数据库的时候,会使用scott的身份来访问
2、本地数据库tnsnames.ora文件中没有配置要访问的数据库信息
create [public] database link to_mai
connect to scott identified by tiger
using
'(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.123)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mai)
)
)';
这一种方式其实是把第一种配置在tnsnames.ora文件中的信息,直接放在dblink的后面
第二部分:dblink相关的权限
SYS@test > select * from user_sys_privs where privilege like upper('%link%');
USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
SYS CREATE DATABASE LINK NO
SYS DROP PUBLIC DATABASE LINK NO
SYS CREATE PUBLIC DATABASE LINK NO
权限解释:
CREATE DATABASE LINK(所创建的DBlink只能是创建者自己使用,别的用户都使用不了)
CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用)
DROP PUBLIC DATABASE LINK(删除Public dblink的权限)
第三部分:dblink的使用
假如说,我要比较两个库的用户的差异,那么我现在可以这么做:
select username from dba_users@to_mai
minus
select username from dba_users;
这样就可以得到在目标数据库中有的用户,而在当前用户中没有的用户列表了
另外一个:如果你乐意,你可以用triggers+dblink实现一个简单的数据同步,不过不建议使用,玩玩就行了。
第四部分:dblink的相关视图
dblink的常用视图有如下几个:
dba_db_links,查看系统中所有的dblink
v$dblink,用来查看当前数据库中有哪些打开的dblink
@后是实例名或数据源,一个简单例子,服务器上创建了2个数据库实例,名称分别为HR、BOSS,如果你用PL/SQL DEVELOPR等根据登录了HR实例,此时可以省略@HR,若是要访问BOSS实例,则需要select * from dim.dim_area_no@BOSS
因为每个系统都有一个对应的数据库,有时多个系统都共用一个数据库,而数据表的名称可能相同,为了区分不同系统的数据表,所以每个系统的数据表都有一个自己的前缀,而且加上前缀,相当于对数据表进行了分类,从名字上看就知道哪个表是哪个系统的数据库中的,方便管理。
前缀指数据库中使用的用户名
如:select * from abc.tablename@def
abc是schema,oracle中的模块,通常是指数据库的用户,def是oracle中的dblink,创建dblink用于配置数据库连接的别名,sql的意思是在查询def库中abc用户下的表
前缀oracle叫schema
有可能是用户,也有可能是表空间
表名带有$符号一般都是数据字典的视图或同义词。
例如:v$database数据库运行信息、v$datafile所有数据文件信息
oracle的dblink的使用
在跨数据库查询的时候时常会用到dblink,例如:两台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台数据库服务器下面的某个schema的数据,这个时候,使用dblink能够很方便的实现。
dblink和数据库中的view功能类似,建立dblink的时候需要直接到待读取数据库的ip地址,ssid以及数据库的用户名和密码。
第一部分:如何创建dblink
dblink的创建有两种方式:
1、在本地数据库tnsnames.ora文件中配置要访问的目标数据库信息
create [public] database link to_mai
connect to scott identified by tiger using 'to_mai';
其中第一个to_mai是将要创建的dblink的名字,
第二个to_mai是tnsnames.ora文件中配置的目标数据库mai的连接信息:
to_mai =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.123)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mai)
)
)
scott/tiger是登录到远程数据库的用户名和密码,然后当在本地数据库使用to_mai的dblink访问远程数据库的时候,会使用scott的身份来访问
2、本地数据库tnsnames.ora文件中没有配置要访问的数据库信息
create [public] database link to_mai
connect to scott identified by tiger
using
'(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.123)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mai)
)
)';
这一种方式其实是把第一种配置在tnsnames.ora文件中的信息,直接放在dblink的后面
第二部分:dblink相关的权限
SYS@test > select * from user_sys_privs where privilege like upper('%link%');
USERNAME PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
SYS CREATE DATABASE LINK NO
SYS DROP PUBLIC DATABASE LINK NO
SYS CREATE PUBLIC DATABASE LINK NO
权限解释:
CREATE DATABASE LINK(所创建的DBlink只能是创建者自己使用,别的用户都使用不了)
CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用)
DROP PUBLIC DATABASE LINK(删除Public dblink的权限)
第三部分:dblink的使用
假如说,我要比较两个库的用户的差异,那么我现在可以这么做:
select username from dba_users@to_mai
minus
select username from dba_users;
这样就可以得到在目标数据库中有的用户,而在当前用户中没有的用户列表了
另外一个:如果你乐意,你可以用triggers+dblink实现一个简单的数据同步,不过不建议使用,玩玩就行了。
第四部分:dblink的相关视图
dblink的常用视图有如下几个:
dba_db_links,查看系统中所有的dblink
v$dblink,用来查看当前数据库中有哪些打开的dblink
@后是实例名或数据源,一个简单例子,服务器上创建了2个数据库实例,名称分别为HR、BOSS,如果你用PL/SQL DEVELOPR等根据登录了HR实例,此时可以省略@HR,若是要访问BOSS实例,则需要select * from dim.dim_area_no@BOSS
发表评论
-
Mysql中DATE_SUB 使用方法结合查询一天内,一周内,一月内的信息实例讲解
2018-02-07 09:05 772在对数据查询或菜单时经常要对指定的时间或时间段进行查询,例 ... -
MySQL里获取当前week、month、quarter的start_date/end_date
2018-02-06 13:51 667select curDate(); #获取当前日 ... -
查看数据库
2018-01-28 20:38 528---mysql查看用户名和密码 select Hos ... -
数据导入到数据库
2018-01-09 20:23 449数据导出当数据量大时最好是dump文件,sql文件过大不好执行 ... -
使用数据库客户端工具Oracle SQL Developer加载第三方驱动连接mysql的方法
2018-02-28 09:20 1252用Oracle SQL Developer时遇到no oc ... -
数据连接符
2018-02-28 09:32 521不同的数据库中字符串连接符不同,下面列举几种数据库的连接符 ... -
commit
2018-01-08 10:12 0刚接触SQLSERVER,刚才insert了一条记录,为什么 ... -
Redis操作命令总结
2017-10-25 12:43 1686redis-cli 中。 使用命令 ... -
PostgreSQL中表名、字段名大小写问题
2017-10-21 20:59 0学习hibernate的时候,数据库用了PostgreSQL ... -
怎么解决Greenplum中用pg
2018-07-19 09:51 475基本思路是为ns1.table1设置分布策略:root登陆 ... -
mysql unrecognized service问题解决
2017-10-21 20:34 0unrecognized 英 [ʌnˈrekəgna ... -
Oracle创建视图、通过视图创建表
2017-10-21 19:11 1139创建视图: [sql] view plain c ... -
PostgreSQL中表名、字段名大小写问题
2017-10-19 10:48 1283如果有视图依赖该表则该表不能删除 学习hibern ... -
关于性能测试几个名词概念的说明
2017-10-11 10:05 435什么是性能测试 在一定的负载下,系统的响应时间 ... -
数据库性能优化详解
2017-10-11 09:59 8471.数据库访问优化法则 要正确的优化SQL,我们需 ... -
Oracle怎样把varchar2型转成number型
2017-09-23 11:13 1654varchar2型转成number型的前提条件是varch ... -
oracle中字符串的大小比较,字符串与数字的比较和运算
2017-09-23 11:08 2773Oracle比较字符串是根据ASCII码来的,第一个字母的 ... -
greenplum 程序开发优化原则
2017-09-22 14:07 718greenplum 程序开发优化原则 1、批量数据处理后, ... -
PostgreSQL 时序最佳实践 - 证券交易系统数据库设计 - 阿里云RDS PostgreSQL最佳实践
2017-09-22 01:06 1281PostgreSQL , 证券 , 时序数据 , JSON ... -
PostgreSQL 时序最佳实践
2017-09-21 12:26 1168以股票交易为例,一共 ...
相关推荐
可很容易的修改wordpress数据表前缀
总结来说,这个工具提供了一个方便的方式来管理MySQL数据库中的数据表,特别是对于那些需要定期清理大量具有相同前缀表的场景。使用时务必谨慎,遵循最佳实践,以确保数据的安全和系统的稳定性。对于初学者,这也是...
在管理多个网站共享同一MySQL数据库的情况下,为了保持数据库的清晰和有序,通常会为每个网站设置独特的数据表前缀。当需要对这些前缀进行批量修改时,手动操作可能会非常耗时且容易出错。本篇文章将介绍如何利用...
当数据库中存在大量具有相同前缀的数据表时,管理这些表可能会变得复杂。针对这种情况,开发了一款基于PHP的批量删除MySQL数据库中相同前缀数据表的工具。这款工具能够有效地帮助开发者清理不必要的表,从而优化...
在MySQL数据库管理中,表前缀是用于区分不同应用或模块的表的一种方式。它通常由一到几个字母或数字组成,例如`wp_`、`sys_`等。批量修改表前缀对于多语言网站、同一环境中部署的多个CMS实例或者在进行数据库迁移时...
在MySQL数据库管理中,有时我们需要清理或重置数据,可能会涉及到大量具有相同前缀的数据表。批量删除这些数据表能够高效地完成任务,避免手动逐个删除的繁琐操作。本篇将详细介绍如何批量删除具有相同前缀的MySQL...
【批量删除MySQL数据库相同前缀的数据表 v1.0】是一个针对MySQL数据库设计的实用工具,主要用于高效地删除具有特定前缀的多个数据表。在数据库管理中,尤其是在开发和测试环境中,有时需要快速清理与特定项目或功能...
数据表前缀:dede (不要修改) 3 安装完成后 进入后台: dede 还原数据(系统 数据库备份 还原 数据还原(右上角) 开始还原数据) 4 数据还原后修改密码(默认账户密码都是admin) 5 更改系统配置 把域名换成你...
数据结构前缀码判定,请编写一个程序,判断输入的n个由1和0组成的编码是否为前缀码。如果这n个编码是前缀码,则输出"YES”;否则输出第一个与前面编码发生矛盾的编码。 输入: 第1行为n(表示下面有n行编码) ...
免费建站1、解压该软件包之后,把6kzz目录中的所有资料上传到服务器。...安装时,数据表前缀请不要与6kbbs的表前缀一样,否则会覆盖6kbbs的数据。 3、根据安装界面的各个步骤的提示进行安装即可完成。
3、数据表前缀千万不能跟原来的168整站数据表前缀一样,否则将会清空原来的数据,必须不相同 4、安装完毕后,必须把install.php删除 在此版本中,牵涉到要运行的文件有三个 install.php upto.php upto2.php 其中...
"中缀转前缀"是一个关于表达式转换的经典问题,通常在数据结构课程中作为实验项目出现,目的是让学生熟悉栈这一数据结构及其应用。在这个实验中,我们将使用C++编程语言来实现这个转换过程。 中缀表达式是我们日常...
注意 数据表前缀:dede_ 3、安装完成后 还原数据(系统——数据库备份/还原——数据还原(右上角)——开始还原数据) 4、数据还原后修改密码(默认账户密码都是admin) 5、更改信息 6、生成全站(生成——一键更新...
数据表前缀:dede_ 3、安装完成后 还原数据(系统——数据库备份/还原——数据还原(右上角)——开始还原数据) 4、数据还原后修改密码(默认账户密码都是admin) 5、更改信息 6、生成全站(生成——一键更新网站...
1、传到空间 2、输入安装地址://域名/install/index.php(如果出现“dir”,请按照下面的图文或视频安装教程) 数据表前缀:dede_ (不要修改) 3、安装完成后 进入后台:/dede 还原数据(系统——数据库备份/还原...
在IT行业中,数据库管理是一项至关重要的任务,尤其是在大型系统中,数据表的组织通常遵循一定的命名规则,如使用相同的前缀来区分不同功能或模块的数据表。本话题聚焦于批量删除MySQL数据库中具有相同前缀的数据表...
数据表前缀:dede_ 3、安装完成后 还原数据(系统——数据库备份/还原——数据还原(右上角)——开始还原数据) 4、数据还原后修改密码(默认账户密码都是admin) 5、更改信息 6、生成全站(生成——一键更新网站...
注意:数据表前缀:dede_ 3、安装完成后 还原数据(系统——数据库备份/还原——数据还原(右上角)——开始还原数据) 4、数据还原后修改密码(默认账户密码都是admin) 5、更改信息 6、生成全站(生成——一键...
数据表前缀:dede_ 3、安装完成后 还原数据(系统——数据库备份/还原——数据还原(右上角)——开始还原数据) 4、数据还原后修改密码(默认账户密码都是admin) 5、更改信息 6、生成全站(生成——一键更新网站...