1.用bcp导出txt数据

DECLARE
@bcp VARCHAR(100),
@date VARCHAR(10) BEGIN
SET @date = REPLACE(CONVERT(VARCHAR, GETDATE() - 2, 111), '/', '-'); SET @bcp = 'bcp WebStat.dbo.[PV_HIS_' + @date + '] out \pvtxt\PV_HIS_' + @date + '.txt -c -T'; --PRINT @bcp;
-- 执行bcp命令
EXEC xp_cmdshell @bcp; END;

2.动态执行sql

declare @sql varchar(4000)

set @sql='select name' select @sql=@sql+',isnull(sum(case subject when '''+subject+''' then result end),0)['+subject+']'

from (select distinct subject from CJ) as a select @sql=@sql+' from CJ group by Name'

print @sql -- 打印

declare @test varchar(300)

set @test = 'select getdate()'

print @test

exec(@test) --执行sql语句

3. 系统sql语句

--0.查询数据库中所有对象

select * from yourdb.sys.all_objects

--查询数据库中所有的表

select * from yourdb.sys.tables

select * from yourdb.sys.databases

--1 查询所有的数据库名称

select Name FROM Master.dbo.SysDatabases order BY Name

--2 获取所有表名

--XType='U':表示所有用户表;

--XType='S':表示所有系统表;

select name from sysobjects where xtype='U' order by name

--注意:一般情况只需要type = 'U',但有时候会有系统表混在其中

--不知道什么原因,加上后面一句后就能删除这些系统表了

SELECT name FROM sysobjects WHERE type = 'U' AND sysstat = '83'

select * from sysobjects where [type]='u' and xtype='u';

select * from systypes where xusertype=56

--3 获取所有字段名:

select name from syscolumns where id=OBJECT_ID('city') –表或视图名

SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length

FROM syscolumns, systypes

WHERE syscolumns.xusertype = systypes.xusertype

AND syscolumns.id = object_id('tableName')

4.常用DDL语句

--创建数据库
Create database Users --创建表,添加主、外键 Create table T_Students( Id int IDENTITY(1,1) NOT NUL, StudentNo char(4), CourseNo char(4), Score int, Primary key(Id), Foreign key(CourseNo) References T_Course(CourseNo) ); --修改表结构,添加字段
Alter table T_Person add NickName nvarchar(50) null; --修改表结构,删除字段
Alter table T_Person Drop column NickName; --删除数据表
Drop table T_Person; --创建索引
Create [Unique] Index <索引名> on <基本表名>(<列明序列>);
1、group by 功能:分组统计

2、having子句,功能:指定组合或者聚合的搜索条件,通常与group by子句一起使用,完成分组查询后在进行筛选

3、联合查询 union: 功能:将两个以上的查询结果集组合成一个单个的结果集,该集中包括所有集中的全部行数据

4、连接查询,功能:将多个表中的数据查询出来放在一起

    1)内连接:使用 = < > 等进行表间某些数据库的比较操作,并列出这些表中与连接条件相匹配的数据行

    如:select * from TableA inner join TableB where A.aid = B.aid

    2)自然连接:指明要查询的列,并排序

    3)外连接:与内连接不同的是,内连接至少要有一个同属于两个表的行符合连接条件时才会返回行,

               外连接会返回符合任意条件的行,它的表有主从之分,用主表中的每行去匹配从表中的行,

               与内连接不同的是,外连接不会丢弃没有匹配的行,而是填充null给结果集。

5、创建一个表的SQL语句

    create table tempTable(

        id int priamry key identity(1,1) not null,

        fieldA nvarchar(20),

        FK_ID int references OtherTable(id)

    )

6、子查询:一个sql语句中嵌套另一个sql语句就叫嵌套查询,而被嵌入的这个语句就叫做子查询。

           子查询也称内部查询,而包含子查询的select语句被称为外部查询,子查询自身可以包含一个或多个子查询,也可以嵌套任意数量的子查询。

7、创建视图:视图就是一个虚表

create View view.tempView

select app.AppManageID,app.CompanyName, app.Passport, app.WebURL, app.ShopType,app.CreateTime from           AppManage as app

inner join PackageInfo as p on app.AppManageID=p.AppManageID

4.表复制

方法1:语句形式为:SELECT vale1, value2 into Table2 from Table1

Table2可以不存在。

方法2:语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1

Table2必须存在。

update 2014-10-10 21:13:25

1. substring(string,startIndex, length)
select substring ('2013-08-26 14:30:01.543' ,1 ,10 )
结果:2013-08-26
 
2.dateadd(yy/mm/dd年或月或日,日期加减,日期)
select dateadd (dd ,-10 ,getdate ())
结果:2013-08-26 14:37:42.543
 
3.convert(varchar(50), string, 120)
select convert (nvarchar (30 ),'2013-08-26 14:39:53.857',120)
结果:2013-08-26 14:39:53.857
转换日期和字符串的函数
 
4. datename(day/month/weekday, 时间)
select datename (weekday , getdate())
结果:Thursday
 
 
group by 有一个原则,
就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面
 
 
sql中char(9) char(10) char(13)分别代表哪个字符
可以直接用语句查 select char(9) ,char(10), char(13)
查出来全是空白~
那就查ASCII表吧~
char(9) 水平制表符
char(10)换行键
char(13)回车键

char(9) :tab
char(10) :换行
char(13):回车
一般char(10)char(13)连着用,表示0x0A0x0D,即一个完整的回车换行。

 
 
sql 执行顺序:
from -> where -> group by -> having -> select -> order by -> top
 
 
如何收缩数据库?
 
--1.
--前期准备
DUMP TRANSACTION webstat WITH NO_LOG
bACKUP LOG webstat WITH TRUNCATE_ONLY --2.
webstat :文件名称
——收缩数据库
DBCC SHRINKFILE(N'webstat',916000) --3.
——查看收缩进度
use master
go
select * from sysprocesses
--cmd='DbccFilesCompact' (查session_id ) SELECT session_id,percent_complete
FROM sys.dm_exec_requests t WHERE session_id=59
go DUMP TRANSACTION webstat WITH NO_LOG
bACKUP LOG webstat WITH TRUNCATE_ONLY DBCC SHRINKFILE(N'web',916000) use master
go SELECT session_id,percent_complete
FROM sys.dm_exec_requests t WHERE session_id=53 select * from sysprocesses
t-sql 动态执行sql语句
 
CREATE procedure [dbo].[pr_state]
as
begin
DECLARE @SQLString NVARCHAR(500)
DECLARE @datetime NVARCHAR(20)
set @datetime =CONVERT(varchar(10), getdate()-1 ,120);
SET @SQLString =N'
insert into PV_HIS_JifenWall_Report(recorddate,type,count,usercount)
select '''+@datetime+''' , PageQueryString,count(1) cnt,count(distinct UserAccount) cntuseraccount
from [dbo].[PV_HIS_'+ @datetime+ '] a with(nolock) where PageQueryString in
(''CPAList'',''CPADownload'',''CPAInstall'',''CPAOpen'')
group by PageQueryString'
--print @SQLString
EXEC sp_executesql @SQLString
end
 
 

T-Sql常用语句的更多相关文章

  1. 【数据库】 SQL 常用语句

    [数据库] SQL 常用语句 1.批量导入 INSERT INTO Table2(field1,field2,...) SELECT value1,value2,... FROMTable1 要求目标 ...

  2. 【数据库】 SQL 常用语句之系统语法

    [数据库] SQL 常用语句之系统语法 1. 获取取数据库服务器上所有数据库的名字 SELECT name FROM master.dbo.sysdatabases 2. 获取取数据库服务器上所有非系 ...

  3. SQL常用语句之数据库的创建、删除以及属性的修改-篇幅1

    本篇文章主要总结了SQL Server 语句的使用和一些基础知识,因为目前我也正在学习,所以总结一下. 要使用数据库语句,首先就要知道数据库对象的结构: 通常情况下,如果不会引起混淆,可以直接使用对象 ...

  4. SQL常用语句,随时用随时更新

    更多详细说明文档查询 http://www.postgres.cn/docs/9.5/infoschema-columns.html 1.1通过表名查询表的属性 SELECT * FROM sys.s ...

  5. SQL常用语句(二)

    --语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据 --数 ...

  6. ORACLE数据库 常用命令和Sql常用语句

    ORACLE 账号相关 如何获取表及权限 1.COPY表空间backup scottexp登录管理员账号system2.创建用户 create user han identified(认证) by m ...

  7. SQL常用语句整理

    有次笔试最后一页的三个数据库连接查询,没有写出来,被考官暗讽了下.现在想来,实习初,确实很LOW.现公司刚入职的时候,负责过ETL方面,所以和数据库打了不少交道,五十行的联合查询.上百行的存储过程很常 ...

  8. mysql sql常用语句大全

    SQL执行一次INSERT INTO查询,插入多行记录 insert into test.person(number,name,birthday) values(5,'cxx5',now()),(6, ...

  9. sql常用语句--转载

    一.基础 .说明:创建数据库 CREATE DATABASE database-name .说明:删除数据库 drop database dbname .说明:备份sql server --- 创建 ...

  10. sql常用语句汇总

    --创建数据库 USE yuju CREATE database YuJu on primary ( name='YuJu', filename='B:\ceshi数据库\YuJu.mdf', max ...

随机推荐

  1. spring 配置文件 获取变量(PropertyPlaceholderConfigurer)

    转自:https://hbiao68.iteye.com/blog/2031006 1.Spring的框架中,org.springframework.beans.factory.config.Prop ...

  2. [转]Chart.js入门教程

    Chart.js是一个简单.面向对象.为设计者和开发者准备的图表绘制工具库. 相信大部分人都一样,看到一大筐用文本或者表格形式呈现的数据就头疼.因为这种呈现方式也太无聊了吧...而且这对于我们处理原始 ...

  3. Oracle数据库将varchar类型的字段改为clob类型

    alter table pwlp_accuse_info modify INSTRUCTION_STYLE long; alter table pwlp_accuse_info modify INST ...

  4. 八一八android开发规范(一种建议)

    开发规范重不重要了,不言而喻.这里就给大家说一故事把——据<圣经·旧约·创世记>第11章记载,是当时人类联合起来兴建,希望能通往天堂的高塔.为了阻止人类的计划,上帝让人类说不同的语言,使人 ...

  5. 我们为何放弃Eclipse,投奔IntelliJ IDEA

    本文来源于我在InfoQ中文站原创的文章,原文地址是:http://www.infoq.com/cn/news/2013/11/why-drop-eclipse-use-intellij Nikita ...

  6. SQL多表连接查询(详细实例)(转)

    http://www.xker.com/page/e2012/0708/117368.html select * from student,course where student.ID=course ...

  7. offsetof与container_of宏[总结]

    1.前言 今天在看代码时,遇到offsetof和container_of两个宏,觉得很有意思,功能很强大.offsetof是用来判断结构体中成员的偏移位置,container_of宏用来根据成员的地址 ...

  8. 3分钟搞定Linux系统正则表达式

    正则表达式是一种字符模式,用于在查找过程中匹配制定的字符. 元字符通常在Linux中分为两类:Shell元字符,由Linux Shell进行解析:正则表达式元字符,由vi/grep/sed/awk等文 ...

  9. [转]shell脚本每行的执行顺序是怎样

    原文:https://blog.csdn.net/weixin_42609121/article/details/83028000 ---------------------------------- ...

  10. window下配置Apache2服务器

    1:去Apache.org下载安装包 http://httpd.apache.org/ 2:解压到某一个目录 3:修改httpd.conf(Apache的解压目录和端口号) 4:管理员方式启动cmd执 ...