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;

Sql Server 2008 通用语法总结_第1张图片 Sql Server 2008 通用语法总结_第2张图片 Sql Server 2008 通用语法总结_第3张图片 Sql Server 2008 通用语法总结_第4张图片

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 ID SQL 对应格式
1 SELECT CONVERT(varchar(100), GETDATE(), 1); 01/03/17
2 SELECT CONVERT(varchar(100), GETDATE(), 2); 17.01.03
3 SELECT CONVERT(varchar(100), GETDATE(), 3); 03/01/17
4 SELECT CONVERT(varchar(100), GETDATE(), 4); 03.01.17
5 SELECT CONVERT(varchar(100), GETDATE(), 5); 03-01-17
6 SELECT CONVERT(varchar(100), GETDATE(), 6); 03 01 17
7 SELECT CONVERT(varchar(100), GETDATE(), 7); 01 03, 17
8 SELECT CONVERT(varchar(100), GETDATE(), 8); 09:09:10
9 SELECT CONVERT(varchar(100), GETDATE(), 9); 01 3 2017 9:09:10:037AM
10 SELECT CONVERT(varchar(100), GETDATE(), 10); 01-03-17
11 SELECT CONVERT(varchar(100), GETDATE(), 11); 17/01/03
12 SELECT CONVERT(varchar(100), GETDATE(), 12); 170103
13 SELECT CONVERT(varchar(100), GETDATE(), 13); 03 01 2017 09:09:10:037
14 SELECT CONVERT(varchar(100), GETDATE(), 14); 09:09:10:037
20 SELECT CONVERT(varchar(100), GETDATE(), 20); 2017-01-03 09:09:10
21 SELECT CONVERT(varchar(100), GETDATE(), 21); 2017-01-03 09:09:10.037
22 SELECT CONVERT(varchar(100), GETDATE(), 22); 01/03/17 9:09:10 AM
23 SELECT CONVERT(varchar(100), GETDATE(), 23); 2017-01-03
24 SELECT CONVERT(varchar(100), GETDATE(), 24); 09:09:10
25 SELECT CONVERT(varchar(100), GETDATE(), 25); 2017-01-03 09:09:10.037
100 SELECT CONVERT(varchar(100), GETDATE(), 100); 01 3 2017 9:09AM
101 SELECT CONVERT(varchar(100), GETDATE(), 101); 01/03/2017
102 SELECT CONVERT(varchar(100), GETDATE(), 102); 2017.01.03
103 SELECT CONVERT(varchar(100), GETDATE(), 103); 03/01/2017
104 SELECT CONVERT(varchar(100), GETDATE(), 104); 03.01.2017
105 SELECT CONVERT(varchar(100), GETDATE(), 105); 03-01-2017
106 SELECT CONVERT(varchar(100), GETDATE(), 106); 03 01 2017
107 SELECT CONVERT(varchar(100), GETDATE(), 107); 01 03, 2017
108 SELECT CONVERT(varchar(100), GETDATE(), 108); 09:09:10
109 SELECT CONVERT(varchar(100), GETDATE(), 109); 01 3 2017 9:09:10:037AM
110 SELECT CONVERT(varchar(100), GETDATE(), 110); 01-03-2017
111 SELECT CONVERT(varchar(100), GETDATE(), 111); 2017/01/03
112 SELECT CONVERT(varchar(100), GETDATE(), 112); 20170103
113 SELECT CONVERT(varchar(100), GETDATE(), 113); 03 01 2017 09:09:10:037
114 SELECT CONVERT(varchar(100), GETDATE(), 114); 09:09:10:037
120 SELECT CONVERT(varchar(100), GETDATE(), 120); 2017-01-03 09:09:10
121 SELECT CONVERT(varchar(100), GETDATE(), 121); 2017-01-03 09:09:10.037
126 SELECT CONVERT(varchar(100), GETDATE(), 126); 2017-01-03T09:09:10.037
130 SELECT CONVERT(varchar(100), GETDATE(), 130); 5 ???? ?????? 1438 9:09:10:037AM
131 SELECT 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

 

你可能感兴趣的:(Sql Server 2008 通用语法总结)