功夫没有捷径

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

sqlserver2008

(1)查询所有的数据库名字:

use master;
select *  from sysdatabases;

(2)查询指定库中用户建的的所有表:
select t.name from [指定库]..sysobjects  t where xtype='u' and status>=0

(3)查询指定表的列描述:
select a.name as table_name,b.name as column_name,cast(isnull(c.[value],'') as varchar(23)) as comments
from sys.tables a  inner join sys.columns b on b.object_id=a.object_id left join sys.extended_properties c on c.major_id=b.object_id and c.minor_id=b.column_id where a.name= '指定表';

(4)获取连续日期:

SELECT CONVERT(VARCHAR(10),DATEADD(DD,NUMBER,'2015-02-01'),120)AS TIME FROM MASTER..SPT_VALUES WHERE TYPE='P' AND DATEADD(DD,NUMBER,'2015-02-01')<='2015-02-08';

(5)获取连续月份:

在上一个语句上对字符串截取位数上稍作修改就可以。

(6)从一张表查部分字段到另一张表:
INSERT INTO 表二 (username,roleid) select WorkID,'2' from 表一;

(7)从一张表查部分字段到另一张表,如果已经存在了,就不再插入:

INSERT INTO 表二 (username, roleid) SELECT DISTINCT
    (WorkID),
    '2'
FROM
    表一 a
WHERE NOT EXISTS (
    SELECT
        1
    FROM
        表三 b
    WHERE
        a.WorkID = b.username
)

-------------------------------------------------------------------------------------------------

mysql

(1)把某个表中查询的记录插入另一张表:

insert into 某库名.表名(guId,gxId,loginName,userName,phone,telephone,email,Duties,Type,createDate,serino,idnum,sex,birth,grade,status,oldid)
select UUID(),oid,name,name,phone,phone,'',Position,'3','','',Idcard,'','','','','' from 某库名.另一表名;

--------------------------------------------------------------------------------------------------------

oracle

 (1)根据用户名查询表和表描述:

select t.TABLE_NAME as tablename , t.COMMENTS as comments from all_tab_comments t where t.OWNER = '用户名'; 

(2)根据用户名查询表名:

select table_name as tablename FROM all_tables WHERE owner = upper('用户名')  

posted on 2015-03-05 08:29  Juniors  阅读(124)  评论(0编辑  收藏  举报