select name as 库名 from master..sysdatabases where dbid>=7 获得数据库名称
select * from sysobjects where xtype='u' or xtype='v' 查询数据库里所有表的sql语句!
select name from sysobjects where type='u' 查询一个库里的所有表名称
sysobjects
在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。
列名 数据类型 描述
name sysname 对象名。
Id int 对象标识号。
xtype char(2) 对象类型。可以是下列对象类型中的一种:
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程
uid smallint 所有者对象的用户 ID。
info smallint 保留。仅限内部使用。
status int 保留。仅限内部使用。
base_sch ......
看到的一篇关于数据库优化的文章,觉得对自己有帮助,就转帖到这里。温故而知新!
优化数据库的思想及SQL语句优化的原则 [转贴 2005-08-18 14:20:05 ] 发表者: chilizy
优化数据库的思想:
================
1、关键字段建立索引。
2、使用存储过程,它使SQL变得更加灵活和高效。
3、备份数据库和清除垃圾数据。
4、SQL语句语法的优化。(可以用Sybase的SQL Expert,可惜我没找到unexpired的
序列号)
5、清理删除日志。
SQL语句优化的原则:
==================
1、使用索引来更快地遍历表。
缺省情况下建立的索引是非群集索引,但 ......
导出:
1.执行
select 语句查询出需要导出的数据.
2.在数据列表中右键,选择save
results.保存为.csv文件,然后已excel方式打开就OK了.可以另存为xsl。需要注意的是如果列内容是纯数字
的话,导出时会自动把前面的0去掉,想要导出完整的列内容,最好这列的内容拼一个字符如:select ‘#’||Column from table。
导入:
在单个文件不
大的情况下(少于100000行),并且目的表结构已经存在的情况下。
操作步骤如
下:
1 可以全选excel数据复制,
2 在PL/SQL Developer的sql window里输入select * from
tablename for update;
3 按F8执行;
4 打开锁, 再按一下加号.
鼠标点到第一列的列头,使全列成选中状态,然后粘贴[这样可能会丢失第一列数据,可以在excel第一列前增加一个空列来解决],最后commit提交即
可。 ......
对In和exists的性能进行比较,首先要知道它们两者的区别。
in: 确定给定的值是否与子查询中的值或列表中的值相匹配。
exists: 指定一个子查询,检测行是否存在。
可分析它们的查询语句来得出真实的差别:
in
比如Select * from t1 where x in ( select y from t2 )
执行的过程相当于:
select *
from t1, ( select distinct y from t2 ) t2
where t1.x = t2.y;
exists
比如select * from t1 where exists ( select t2.z from t2 where y = x )
执行的过程相当于:
for t in ( select * from t1 )
loop
if ( exists ( select t2.z from t2 where y = t.x )
then
OUTPUT THE RECORD
end if
end loop
从上面的语句可以看出,对t1表不可避免的进行了一次全盘扫描
in和exists
in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。
一直以来认为exists比in效率高的说法是不准确的。
如果查询的两个表大小相当,那 ......
微软的数据库认证从包括3个方面的:
MCTS: Microsoft Certified Technology Specialist
MCITP: Microsoft Certified IT Professional
MCM: Microfot Certified Master.
微软建议参加最新版本的数据库认证考试,当前版本是指Microsoft SQL Server 2008。
SQL Server2008 MCTS包括3个认证:
1> SQL Server 2008 Implementation and Maintenace;
2> SQL Server 2008 Database Development;
3> SQL Server Business Intelligence Development and Maintenance.
SQL Server 2008 MCITP 也包含3个认证:
1> Database Administrator IT Professional;
2> Database Developer IT Professional;
3> Business Intelligence Developer IT Professional.
MCITP比MCTS要考察的范围更广,要求对SQL Server 2008技术了解的更精细。所以MCITP要比MCTS稍微难过些。
MCM到2009年4月份全球只有2个人通过了。这个认证无论是对技术的要求,还是花费的金钱都是相对较高的,这里就不再详细介绍了,有兴趣的朋友可以参照
www.microsoft.com/learning/mcp/master/sql/default.mspx ......
三步走。
<1>建立数据源
打开控制面板—>管理工具—>数据源 (ODBC),或直接运行odbccp32.cpl命令。打开ODBC数据源管理器。添加一个系统数据源。选择Sql Server作为数据源的驱动程序,键入数据源名称demo,选择合适的sql server服务器,然后一路默认下去。(在后面的步骤中可以选择需要进行反向工程的数据库,默认是master)数据源信息如图一示。
图一
<2>在visio中新建数据库模型图
打开visio 2003,文件—>新建—>数据库—>数据库模型图。建立数据库模型图之后,菜单栏多出一个菜单项"数据库"。
<3>反向工程
菜单项数据库—>反向工程。启动反向工程向导,一步步完成反向工程设置。
1.建立与数据库的连接。选择visio驱动程序的类型决定了可以连接的数据库类型及可用选项。数据源指定数据库位置及连接信息。这里我们选择visio驱动程序为Microsoft Sql Server,数据源为刚建立的demo。如 ......