接到新数据库时,分析业务常用的SQL语句

USE DataBaseName--清空当前GridView显示,释放内存:
SELECT GETDATE()

--数据库关系图
SELECT * FROM sysdiagrams

--列出所有表
SELECT * FROM information_schema.TABLES ORDER BY TABLE_NAME ASC

--显示当前数据库的所有列名
SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPE FROM information_schema.columns WHERE TABLE_NAME LIKE ‘%TableName%‘

--查找出指定的列名在哪些表中存在:
SELECT * FROM information_schema.columns WHERE column_name =‘Col1‘

--查看表明细信息(数据全面,但不便快速浏览):
EXEC sp_help Orders

--查看表结构:
SELECT sys.columns.name, sys.types.name AS types, sys.columns.max_length,sys.columns.is_nullable, (SELECT COUNT(*) FROM sys.identity_columns
WHERE sys.identity_columns.object_id = sys.columns.object_id AND sys.columns.column_id = sys.identity_columns.column_id) AS is_identity ,
(SELECT value FROM sys.extended_properties WHERE sys.extended_properties.major_id = sys.columns.object_id
AND sys.extended_properties.minor_id = sys.columns.column_id) AS description FROM sys.columns, sys.tables, sys.types
WHERE sys.columns.object_id = sys.tables.object_id AND sys.columns.system_type_id=sys.types.system_type_id
AND sys.tables.name=‘TableName‘
AND sys.types.name != ‘sysname‘ -- 去除系统的名称
ORDER BY sys.columns.name
--显示表字段的描述信息:
SELECT objname,value FROM ::fn_listextendedproperty (NULL, ‘user‘, ‘dbo‘, ‘table‘, ‘XXX‘, ‘column‘, DEFAULT)

--查询一个表有哪些存储过程:
EXEC sp_depends Hotel

--显示存储过程的脚本内容:
EXEC sp_helptext PPaymentLogGetInfo

--查看当前数据库中列名的默认值(不包含NULL值):
SELECT a.name,OBJECT_NAME(a.parent_object_id) AS tableName,
a.definition,a.is_system_named,b.name AS 列名
FROM sys.default_constraints a LEFT JOIN sys.columns b ON
a.parent_object_id=b.object_id AND b.column_id=a.parent_column_id
WHERE OBJECT_NAME(a.parent_object_id)=‘XXX‘

--为字段增加描述信息:
EXEC   sp_addextendedproperty --不能重复添加,可以修改。
‘MS_Description‘, ‘描述字符串‘,
‘user‘, dbo,
‘table‘, ‘TableName‘,
‘column‘, ColumnName

EXEC sp_dropextendedproperty ‘MS_Description‘,‘user‘,dbo,‘table‘,‘TableName‘,‘column‘,ColumnName --删除

EXEC   sp_updateextendedproperty    --要存在了对应的属性才能修改;
‘MS_Description‘,
‘BookTitle‘,
‘user‘, dbo,
‘table‘, ‘Books‘,
‘column‘, Title

--技巧:在创建表的时候一起执行增加属性的存储过程可以实现“同时”创建字符描述:
--SQL Server - Can you add field descriptions in CREATE TABLE? - Stack Overflow
--http://stackoverflow.com/questions/1985254/sql-server-can-you-add-field-descriptions-in-create-table
--Example:
CREATE TABLE TableName (id INT , name CHAR (20))
EXEC   sp_addextendedproperty ‘MS_Description‘, ‘描述字符串‘, ‘user‘, dbo, ‘table‘, ‘TableName‘, ‘column‘, id
--查看结果:
SELECT * FROM ::fn_listextendedproperty (NULL, ‘user‘, ‘dbo‘, ‘table‘, ‘TableName‘, ‘column‘, DEFAULT)

--临时表
/*
    [注明]
    本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 sql server 实例断开连接时被删除。
    全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 sql server 断开连接时被删除。
*/
IF OBJECT_ID(‘tempdb..#temp‘) IS NOT NULL
DROP TABLE #temp

SELECT * INTO #temp FROM ShipTicketWs
SELECT * FROM #tempIN

-----------------------【删除数据库里的所有表】----------------Begin-----------------
--如果由于外键约束删除table失败,则先删除所有约束:
--/第1步**********删除所有表的外键约束*************************/
DECLARE c1 CURSOR
FOR
    SELECT ‘alter table [‘ + OBJECT_NAME(parent_obj) + ‘] drop constraint [‘+ name + ‘]; ‘ FROM sysobjects WHERE xtype = ‘F‘;
OPEN c1;
DECLARE @c1 VARCHAR(8000);
FETCH NEXT FROM c1 INTO @c1;
WHILE (@@fetch_status = 0)
    BEGIN
        EXEC(@c1);
        FETCH NEXT FROM c1 INTO @c1;
    END;
CLOSE c1;
DEALLOCATE c1; 

--/第2步**********删除所有表*************************/
USE XXXXX --数据库名(是要删除表的所在的那个数据库的名称)
GO
DECLARE @sql VARCHAR(8000);
WHILE (SELECT COUNT(*) FROM sysobjects    WHERE type = ‘U‘) > 0
    BEGIN
        SELECT @sql = ‘drop table ‘ + name
            FROM sysobjects
            WHERE (type = ‘U‘)
            ORDER BY ‘drop table ‘ + name;
        EXEC(@sql);
    END;

--删除所有的存储过程同理可得,但不需要走第一步,只需将第2步的代码的where type=‘U‘ 改成 where type=‘P‘,drop table 改成 drop Procedure。
--Sql Server 删除所有表 - jiangys - 博客园
--http://www.cnblogs.com/jys509/p/3589468.html

-----------------------【删除数据库里的所有表】----------------End----------------------

-- 一、查看表名和对应的数据行数
--SQL Server查看所有表大小,所占空间 - niky - 博客园
--http://www.cnblogs.com/nikyxxx/archive/2012/10/08/2715423.html

SELECT TOP 10 * FROM RequestData ORDER BY RequestDataId DESC

SELECT COUNT(*) FROM RequestData WHERE UserAgent LIKE ‘%Firefox%‘
DELETE RequestData WHERE UserAgent LIKE ‘%Firefox%‘

select  a.name as ‘表名‘,b.rows as ‘表数据行数‘
from sysobjects a inner join sysindexes b
on a.id = b.id
where   a.type = ‘u‘
and b.indid in (0,1)
--and a.name not like ‘t%‘
order by b.rows desc

--二、查看表名和表占用空间信息
--判断临时表是否存在,存在则删除重建
if exists(select 1 from tempdb..sysobjects where id=object_id(‘tempdb..#tabName‘) and xtype=‘u‘)
drop table #tabName
GO

create table #tabName(
tabname varchar(100),
rowsNum varchar(100),
reserved varchar(100),
data varchar(100),
index_size varchar(100),
unused_size varchar(100)
)

declare @name varchar(100)
declare cur cursor for
select name from sysobjects where xtype=‘u‘ order by name
open cur
fetch next from cur into @name
while @@fetch_status=0
begin
    insert into #tabName
    exec sp_spaceused @name
    --print @name

    fetch next from cur into @name
end
close cur
deallocate cur

select tabname as ‘表名‘,rowsNum as ‘表数据行数‘,reserved as ‘保留大小‘,data as ‘数据大小‘,index_size as ‘索引大小‘,unused_size as ‘未使用大小‘
from #tabName
--where tabName not like ‘t%‘
order by cast(rowsNum as int) desc

--系统存储过程说明:

--sp_spaceused 该存储过程在系统数据库master下。
exec sp_spaceused ‘表名‘ --该表占用空间信息
exec sp_spaceused  --当前数据库占用空间信息
时间: 2024-10-08 16:43:57

接到新数据库时,分析业务常用的SQL语句的相关文章

MySQL创建用户以及授权、常用的sql语句、MySQL数据库的备份与恢复

MySQL创建用户以及授权 常用的sql语句 MySQL数据库的备份与恢复 对于大数据的备份请查阅资料 原文地址:http://blog.51cto.com/13515599/2090425

SQL学习笔记之数据库专题(一):SQL语句详解

SQL是用来存取关系数据库的语言,具有查询.操纵.定义和控制关系型数据库的四方面功能.常见的关系数据库有Oracle,SQLServer,DB2,Sybase.开源不收费的有MYSQL,SQLLite等.今天我们主要以MYSQL为例子,讲解SQL常用的SQL语句. 一.数据库 1.创建数据库 create database [if not exists] db_name [character set xxx] [collate xxx] *创建一个名称为freedom的数据库. create d

经典SQL语句大全以及50个常用的sql语句

经典SQL语句大全 一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始 备份BACKUP DATABASE pubs TO testBack 4.说明:

《万能数据库查询分析器》实现使用SQL语句直接高效地访问文本文件

<万能数据库查询分析器>实现使用SQL语句直接高效地访问文本文件 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 摘要    用SQL语句来直接访问文本文件?是在做梦吗? 本文详细地介绍了"万能数据库查询分析器",中文版本<DB 查询分析器>.英文版本<DB Query Analyzer>在 文本文件处理方面非常强大的功能,你可以直接用SQL语句来访问这些文本文件,访问250万条记录的文件的复杂的关联操作,也不过用时59秒钟.需要注意

常用的SQL语句

                                                                                                                      常用的SQL语句                     MySQL服务的配置和使用修改MySQL管理员的口令:mysqladmin –u root password 密码字符串             如:mysqldmin –u root password 1

常用经典SQL语句大全完整版--详解+实例 《来自网络,很全没整理,寄存与此》

常用经典SQL语句大全完整版--详解+实例 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop data

项目中常用的SQL语句

摘要: 对于像我一样的菜鸟级别人物来说,接触的项目比较少,平常做的那些练习,包括三层中,一般也只能用到增删改查,当然这些增删改查语句是学数据库语句的入门,在百度上搜索一大堆,w3cschool中帮助文档也可以查阅. 这里是把平常用的增删改做一个小小总结,对一些小小项目也是比较适用的 ,当然,好记性不如烂笔头吗,这个时代纸质版的笔记感觉很欠缺,因为想要看的时候,你得找到那本书,而且要翻翻在哪里,感觉很不方便.并且电子版 的随便copy之类的都可以. 常用的sql语句(增删改查) 1.增加.插入语句

SQL Server中常用的SQL语句(转):

SQL Server中常用的SQL语句 转自:http://www.cnblogs.com/rainman/archive/2013/05/04/3060428.html 1.概述 名词 笛卡尔积.主键.外键 数据完整性 实体完整性:主属性不能为空值,例如选课表中学号和课程号不能为空 参照完整性:表中的外键取值为空或参照表中的主键 用户定义完整性:取值范围或非空限制,例如:性别(男女),年龄(0-130) 表连接 自然连接:与等值连接(a.id=b.id)相比,连接后的表只有一列id,而不是两列

50个常用的sql语句

50个常用的sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1.查询"001"课程比"002"课程成绩高的所有学生的学号: select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC wher