Sql Server 2008 通用语法总结

1、SQL查找存储过程

select object_name(id),* from syscomments where text like '%自己要查找的内容%'

2、建表(基本表)

CREATE TABLE [dbo].[WTD_SO_CANCEL_Log](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[WarehouseID] [varchar](20) NULL,
	[CustomerID] [varchar](20) NULL,
	[OrderNo] [varchar](20) NULL,
	[SOReference1] [varchar](20) NULL,
	[SOStatus] [varchar](20) NULL,
	[CodeName_C] [varchar](20) NULL,
	[AddWho] [varchar](20) NULL,
	[AddTime] [datetime] NULL,
	[Flag] [varchar](20) NULL
) ON [PRIMARY]

3、建索引

CREATE INDEX index_name
ON table_name (column_name)
or
CREATE UNIQUE INDEX index_name
ON table_name (column_name)

DROP INDEX table_name.index_name (SQL Server)
DROP INDEX index_name ON table_name (MS Access)
DROP INDEX index_name (DB2/Oracle)
ALTER TABLE table_name
DROP INDEX index_name (MySQL)

4、建视图

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

5、插入数据

INSERT INTO table_name
VALUES (value1, value2, value3,....)
or
INSERT INTO table_name
(column1, column2, column3,...)
VALUES (value1, value2, value3,....)

SELECT *
INTO new_table_name [IN externaldatabase]
FROM old_table_name
or
SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_table_name

INSERT INTO table2
SELECT * FROM table1;

INSERT INTO table2 (column_name(s))
SELECT column_name(s) FROM table1;

6、合并查询

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

--all,显示2行数据(去掉all,相同数据合并)
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

 7、SQL Join连接

INNER JOIN:如果表中有至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中一个表中存在匹配,则返回行

内部链接INNER JOIN关键字选择两个表中具有匹配值的记录。
SELECT column_name(s)
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;

SQL左链接LEFT JOIN关键字返回左表(表1)中的所有行,即使在右表(表2)中没有匹配。如果在正确的表中没有匹配,结果是NULL。
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

SQL右链接 RIGHT JOIN 关键字返回右表(table2)的所有行,即使在左表(table1)上没有匹配。如果左表没有匹配,则结果为NULL。
SELECT column_name(s)
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name;

当左(表1)或右(表2)表记录匹配时,FULL OUTER JOIN关键字将返回所有记录。
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;

   

8、 ALTER TABLE 语句

ALTER TABLE 语句用于在现有表中添加、删除或修改列。

若要向表中添加列,请使用以下语法:
ALTER TABLE table_name
ADD column_name datatype

若要删除表中的列,请使用以下语法(请注意,一些数据库系统不允许这样删除数据库表中的列):
ALTER TABLE table_name
DROP COLUMN column_name

若要更改表中列的数据类型,请使用以下语法:
SQL Server / MS Access:
ALTER TABLE table_name
ALTER COLUMN column_name datatype

MySQL / Oracle:
ALTER TABLE table_name
MODIFY COLUMN column_name datatype

9、 CONVERT()函数,格式化日期

Style IDSQL对应格式
1SELECT CONVERT(varchar(100), GETDATE(), 1);01/03/17
2SELECT CONVERT(varchar(100), GETDATE(), 2);17.01.03
3SELECT CONVERT(varchar(100), GETDATE(), 3);03/01/17
4SELECT CONVERT(varchar(100), GETDATE(), 4);03.01.17
5SELECT CONVERT(varchar(100), GETDATE(), 5);03-01-17
6SELECT CONVERT(varchar(100), GETDATE(), 6);03 01 17
7SELECT CONVERT(varchar(100), GETDATE(), 7);01 03, 17
8SELECT CONVERT(varchar(100), GETDATE(), 8);09:09:10
9SELECT CONVERT(varchar(100), GETDATE(), 9);01 3 2017 9:09:10:037AM
10SELECT CONVERT(varchar(100), GETDATE(), 10);01-03-17
11SELECT CONVERT(varchar(100), GETDATE(), 11);17/01/03
12SELECT CONVERT(varchar(100), GETDATE(), 12);170103
13SELECT CONVERT(varchar(100), GETDATE(), 13);03 01 2017 09:09:10:037
14SELECT CONVERT(varchar(100), GETDATE(), 14);09:09:10:037
20SELECT CONVERT(varchar(100), GETDATE(), 20);2017-01-03 09:09:10
21SELECT CONVERT(varchar(100), GETDATE(), 21);2017-01-03 09:09:10.037
22SELECT CONVERT(varchar(100), GETDATE(), 22);01/03/17 9:09:10 AM
23SELECT CONVERT(varchar(100), GETDATE(), 23);2017-01-03
24SELECT CONVERT(varchar(100), GETDATE(), 24);09:09:10
25SELECT CONVERT(varchar(100), GETDATE(), 25);2017-01-03 09:09:10.037
100SELECT CONVERT(varchar(100), GETDATE(), 100);01 3 2017 9:09AM
101SELECT CONVERT(varchar(100), GETDATE(), 101);01/03/2017
102SELECT CONVERT(varchar(100), GETDATE(), 102);2017.01.03
103SELECT CONVERT(varchar(100), GETDATE(), 103);03/01/2017
104SELECT CONVERT(varchar(100), GETDATE(), 104);03.01.2017
105SELECT CONVERT(varchar(100), GETDATE(), 105);03-01-2017
106SELECT CONVERT(varchar(100), GETDATE(), 106);03 01 2017
107SELECT CONVERT(varchar(100), GETDATE(), 107);01 03, 2017
108SELECT CONVERT(varchar(100), GETDATE(), 108);09:09:10
109SELECT CONVERT(varchar(100), GETDATE(), 109);01 3 2017 9:09:10:037AM
110SELECT CONVERT(varchar(100), GETDATE(), 110);01-03-2017
111SELECT CONVERT(varchar(100), GETDATE(), 111);2017/01/03
112SELECT CONVERT(varchar(100), GETDATE(), 112);20170103
113SELECT CONVERT(varchar(100), GETDATE(), 113);03 01 2017 09:09:10:037
114SELECT CONVERT(varchar(100), GETDATE(), 114);09:09:10:037
120SELECT CONVERT(varchar(100), GETDATE(), 120);2017-01-03 09:09:10
121SELECT CONVERT(varchar(100), GETDATE(), 121);2017-01-03 09:09:10.037
126SELECT CONVERT(varchar(100), GETDATE(), 126);2017-01-03T09:09:10.037
130SELECT CONVERT(varchar(100), GETDATE(), 130);5 ???? ?????? 1438 9:09:10:037AM
131SELECT CONVERT(varchar(100), GETDATE(), 131);5/04/1438 9:09:10:037AM
DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
DATEPART(datepart,date)
date 参数是合法的日期表达式。datepart 参数可以是下列的值:

DATEADD() 函数在日期中添加或减去指定的时间间隔。
DATEADD(datepart,number,date)
date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
datepart 参数可以是下列的值:

DATEDIFF() 函数返回两个日期之间的天数。
DATEDIFF(datepart,startdate,enddate)
startdate 和 enddate 参数是合法的日期表达式。datepart 参数可以是下列的值:

datepart缩写
yy, yyyy
季度qq, q
mm, m
年中的日dy, y
dd, d
wk, ww
星期dw, w
小时hh
分钟mi, n
ss, s
毫秒ms
微妙mcs
纳秒ns

10、统计多张表的记录数

SELECT a.name, b.rows

FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id

WHERE (a.type = 'u') AND (b.indid IN (0, 1))
and A.name in
('TC_MONITOR_MSG_RULE',
'TC_MONITOR_MSG_TRACE',
'STD_DOC_SO_HEADER',
'TC_Monitor_Receive_Header',
'STD_DOC_SO_DETAILS',
'TC_MONITOR_MSG_RULE_1',
'TC_MONITOR_MSG_TRACE_1',
'STD_DOC_SO_HEADER_1',
'TC_Monitor_Receive_Header_1',
'STD_DOC_SO_DETAILS_1',
'TC_MONITOR_MSG_RULE_20181107',
'TC_MONITOR_MSG_TRACE_20181107',
'STD_DOC_SO_HEADER_20181107',
'TC_Monitor_Receive_Header_20181107',
'STD_DOC_SO_DETAILS_20181107'
)
ORDER BY A.name,b.rows DESC

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值