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 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