
通过Oracle
Net
Configuration
Assistant(oracle网络配置助手),配置本地网络服务名,从而实现连接oracle数据库
工具/原料
plsql
win
8
方法/步骤
按Windows徽标键,进入开始界面,找到Net
Configuration
Assistant,单击运行之
进入Oracle
Net
Configuration
Assistant配置向导,勾选本地网络服务名配置,单击下一步;
在网络服务名配置中,勾选添加,单击下一步
输入服务名:dbname(oracle数据库的服务名通常是全局数据库名,即输入创建的数据库名称)
选择访问数据库的协议:TCP,单击下一步;
输入数据库所在的计算机主机名:dream(也可以输入主机IP地址),勾选使用标准端口1521,单击下一步
测试,进行连接数据库的测试,勾选是,进行测试,单击下一步,
选择更改登录,输入数据库的用户名、口令,单击确定,显示正在连接,测试成功
配置网络服务名,单击下一步;
是否配置另一个网络服务名,勾选否,单击下一步,显示网络服务名配置完毕,单击下一步,单击完成
7
运行plsql,输入用户名、口令,选择数据库,连接
▲ SHOW 执行下面这个命令可以了解服务器的运行状态 mysql >show status;该命令将显示出一长列状态变量及其对应的值 其中包括 被中止访问的用户数量 被中止的连接数量 尝试连接的次数 并发连接数量最大值 以及其他许多有用的信息 这些信息对于确定系统问题和效率低下的原因是十分有用的 SHOW命令除了能够显示出MySQL服务器整体状态信息之外 它还能够显示出有关日志文件 指定数据库 表 索引 进程和许可权限表的宝贵信息 请访问了解更多信息 ▲ EXPLAIN EXPLAIN能够分析SELECT命令的处理过程 这不仅对于决定是否要为表加上索引很有用 而且对于了解MySQL处理复杂连接的过程也很有用 下面这个例子显示了如何用EXPLAIN提供的信息逐步地优化连接查询 (本例来自MySQL文档 见 原文写到这里似乎有点潦草了事 特加上此例 )假定用EXPLAIN分析的SELECT命令如下所示 EXPLAIN SELECT tt TicketNumber tt TimeIn tt ProjectReference tt EstimatedShipDate tt ActualShipDate tt ClientID tt ServiceCodes tt RepetitiveID tt CurrentProcess tt CurrentDPPerson tt RecordVolume tt DPPrinted et COUNTRY et_ COUNTRY do CUSTNAMEFROM tt et et AS et_ doWHERE tt SubmitTime IS NULLAND tt ActualPC = et EMPLOYIDAND tt AssignedPC = et_ EMPLOYIDAND tt ClientID = do CUSTNMBR;SELECT命令中出现的表定义如下 ※表定义表 列 列类型tt ActualPC CHAR( )tt AssignedPC CHAR( )tt ClientID CHAR( )et EMPLOYID CHAR( )do CUSTNMBR CHAR( )※索引表 索引tt ActualPCtt AssignedPCtt ClientIDet EMPLOYID (主键)do CUSTNMBR (主键)※tt ActualPC值分布不均匀在进行任何优化之前 EXPLAIN对SELECT执行分析的结果如下 table type possible_keyskey key_len ref rows Extraet ALL PRIMARY NULL NULL NULL do ALL PRIMARY NULL NULL NULL et_ ALL PRIMARY NULL NULL NULL tt ALL AssignedPC ClientID ActualPC NULL NULL NULL range checked for each record (key map: )每一个表的type都是ALL 它表明MySQL为每一个表进行了完全连接!这个 *** 作是相当耗时的 因为待处理行的数量达到每一个表行数的乘积!即 这里的总处理行数为 = 这里的问题之一在于 如果数据库列的声明不同 MySQL(还)不能有效地运用列的索引 在这个问题上 VARCHAR和CHAR是一样的 除非它们声明的长度不同 由于tt ActualPC声明为CHAR( ) 而et EMPLOYID声明为CHAR( ) 因此这里存在列长度不匹配问题 为了解决这两个列的长度不匹配问题 用ALTER TABLE命令把ActualPC列从 个字符扩展到 字符 如下所示 mysql > ALTER TABLE tt MODIFY ActualPC VARCHAR( );现在tt ActualPC和et EMPLOYID都是VARCHAR( )了 执行EXPLAIN进行分析得到的结果如下所示 table type possible_keys key key_len ref rows Extratt ALL AssignedPC ClientID ActualPC NULL NULL NULLwhere useddo ALL PRIMARY NULL NULL NULL range checked for each record (key map: )et_ ALL PRIMARY NULL NULL NULL range checked for each record (key map: )et eq_ref PRIMARY PRIMARY tt ActualPC 这还算不上完美 但已经好多了(行数的乘积现在少了一个系数 ) 现在这个SQL命令执行大概需要数秒钟时间 为了避免tt AssignedPC = et_ EMPLOYID以及tt ClientID = do CUSTNMBR比较中的列长度不匹配 我们可以进行如下改动 mysql > ALTER TABLE tt MODIFY AssignedPC VARCHAR( ) MODIFY ClientID VARCHAR( );现在EXPLAIN显示的结果如下 table type possible_keys key key_len ref rows Extraet ALL PRIMARY NULL NULL NULL tt ref AssignedPC ClientID ActualPC ActualPC et EMPLOYID where usedet_ eq_ref PRIMARY PRIMARY tt AssignedPC do eq_ref PRIMARY PRIMARY tt ClientID 这个结果已经比较令人满意了 余下的问题在于 默认情况下 MySQL假定tt ActualPC列的值均匀分布 而事实上tt表的情况并非如此 幸而 我们可以很容易地让MySQL知道这一点 shell > myisamc yze PATH_TO_MYSQL_DATABASE/ttshell > mysqladmin refresh现在这个连接 *** 作已经非常理想 EXPLAIN分析的结果如下 table type possible_keys key key_len ref rows Extratt ALL AssignedPC ClientID ActualPC NULL NULL NULL where usedet eq_ref PRIMARY PRIMARY tt ActualPC et_ eq_ref PRIMARY PRIMARY tt AssignedPC do eq_ref PRIMARY PRIMARY tt ClientID ▲ OPTIMIZE OPTIMIZE能够恢复和整理磁盘空间以及数据碎片 一旦对包含变长行的表进行了大量的更新或者删除 进行这个 *** 作就非常有必要了 OPTIMIZE当前只能用于MyISAM和BDB表 结束语 从编译数据库服务器开始 贯穿整个管理过程 能够改善MySQL性能的因素实在非常多 本文只涉及了其中很小的一部分 lishixinzhi/Article/program/MySQL/201311/29480
所有数据库名的命令
show
databases
表结构和列结构
desc
tablename
进入MySQL
Command
line
client下查看当前使用的数据库:mysql>select
database();mysql>status;mysql>show
tables;mysql>show
databases;//可以查看有哪些数据库,返回数据库名(databaseName)mysql>use
databaseName;
//更换当前使用的数据库mysql>show
tables;
//返回当前数据库下的所有表的名称或者也可以直接用以下命令mysql>show
tables
from
databaseName;//databaseName可以用show
databases得来mysql查看表结构命令
displayospflsdb。单区域实验配置,华为设备上查看ospf链路状态数据库信息可以使用以下命令displayospflsdb,华为技术有限公司, 总部位于广东省, 是电信网络解决方案供应商。
select 表头(字段名) from 表名 where 查询内容 对于问题条件不怎么清晰 "表"中的"a"中的“名字” 例如:select 名字 from a where 名字=“XXX” 这个应该就是你想要的 XXX是查询的东西 也是名字
sql="select T1UserName,UserEmail,T2HomePage,Sum(1) AS TiaoShu,Sum(IIF(DateDiff('d',T3UpdateTime,T1ReplyTime)<3,1,0)) AS TiaoShu2ri
选择:t1表的username,useremail,T2表的homepage,所有条数汇总用并且在提示中使用Tiaoshu这个名字,汇总T3的updatetime与T1表中replytime时间差别小于3天的条数并且用Tiaoshu2ri表示
from (ArticleComment AS T1 Inner Join Article AS T3 On T1ArticleId=T3ArticleId) Inner Join Dv_User AS T2 On T1UserName=T2UserName
从T1 和T3 根据T1ArticleId=T3ArticleId的调节进行内连接后,与T2表在此根据T1UserName=T2UserName的条件进行内连接的结果中选择
其中T1是ArticleComment表的别名,T2是Dv_User表的别名,T3是Article表的别名
Group By T1UserName,UserEmail,T2HomePage
结果按照T1的username ,useremail,T2的homepage进行分组
Order by Sum(1) DESC"
按照条数逆序排序,即从大到小排序。
1
select
姓名,工资
from
员工
where
性别=‘女’
and
工资>(select
工资
from
员工
where
姓名='徐')
2
select
姓名,性别,工资
from
员工,部门
where
员工编号=部门部门经理编号
and
工资>(select
avg(工资)
from
员工)
and
3
select
from
员工
where
工资>(select
avg(工资)
from
员工)
4
select
from
员工
where
编号
in
(select
部门经理编号
from
部门
where
部门编号
in
(select
部门编号
from
员工
group
by
部门编号
having
avg(工资)>4000))
5
select
from
员工
where
编号
in
(select
distinct
部门经理编号
from
部门,工程
where
部门部门经理编号=工程工程负责人编号
)
6
select
from
员工
where
性别='男'
and
工资>500
and
工资<6000
and
工资<(select
avg(工资)
from
员工
where
性别=‘女’)
7
select
from
员工
where
部门编号
in
(select
部门编号
from
部门
where
部门经理编号
in
(select
项目负责人编号
from
项目
where
利润>(select
min(利润)
from
项目)
))
8
select
from
员工
where
编号
in
(select
部门经理编号
from
部门
where
部门编号
in
(select
部门编号
from
员工
group
by
部门编号
having
avg(工资)>3000))
order
by
工资
desc
9update
员工
set
工资=工资+2000
where
部门编号
in
(select
部门编号from
部门
where
部门经理编号
in
(select
项目负责人编号
from
项目
where
利润=(select
max(利润)
from
项目)))
10
delete
from
员工
where
部门编号
not
in
(select
distinct
部门编号
from
员工,项目
where
员工编号=项目项目负责人编号)
以上就是关于怎么通过命令查看oracle数据库全部的内容,包括:怎么通过命令查看oracle数据库、MySQL优化全攻略--相关数据库命令、mysql 数据库怎么根据名字去查数据 命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)