作為一枚程序員來說和數據庫打交道是不可避免的,現收集一下工作
中常用的SQL語句,希望能給大家帶來一些幫助,當然可能不全面,歡迎補充!
1、執行插入語句,獲取自動生成的遞增的ID值
INSERT INTO SysRole (RoleName,RoleDesc) VALUES('超級管理員','描述')
SELECT @@identity as 'id'
2、在同一數據表找到相同屬性的記錄
SELECT RoleName FROM SysRole GROUP BY RoleName HAVING COUNT(ID)>1
3、隨機提取記錄
SELECT RoleName FROM SysRole ORDER BY NEWID()
4、按照姓氏筆畫排序
SELECT RoleName FROM SysRole ORDER BY RoleName COLLATE Chinese_PRC_Stroke_CI_AS
5、獲取某個日期所在月份的最大天數
SELECT DAY(DATEADD(dd,-DAY('2017-5-12'),DATEADD(mm,1,'2017-5-12'))) as 'DayNumber'
6、實現用0或1 來顯式 男或女
select name ,Sex=
case Sex
when '0' then '男'
when '1' then '女'
end
from Sys_user
7、顯式文章、提交人和最后回復時間
select a.title,a.username,b.adddate
from tablename as a ,select(max(adddate)) from tablename
where tablename.title=a.title) b
8、嵌套子查詢
select a,b,c from table1 where a in(select a from table2)
9、復制表結構(源表名:a ,目標表名:b)
select * into from a where 1<>1
或者
select top 0 * into [b] from [a]
10、復制表數據(源表名:a ,目標表名:b)
insert into b(name,desc,createtime) as select name,desc,createtime from table1 as a
11、通配符的使用
select * from table1 where name like 'A-L%'
--篩選name列首字母在A~L之間的記錄
select * from table1 where name like'[ABCD]%'
--篩選name列首字母是 A、B、C或D的記錄
select * from table1 where name like '[A-DH]%'
--篩選name列首字母在A~D或者是H的記錄
select * from table1 where name like '[^D]%'
--篩選name列首字母不是D的記錄
select * from table1 where name like 'Xiao_ming'
-- _ 匹配任意單個字符
12、操作列
alter table table1 add desc nvarchar(2000) not null default '' --新增一列
alter table table1 alter column ?desc ?nvarchar(500) --修改列
alter table table1 drop colmn desc --刪除列
13、存儲過程
--插入數據的存儲過程示例
CREATE procedure [dbo].[proc_CreateUser]
@username nvarchar(200),
@password nvarchar(200),
@truename nvarchar(200),
@role int
as
insert INTO ?Users (UserName,Password,TrueName,Role,CreateDate)
VALUES(@username,@password,@truename,@role,GETDATE())
--更新數據示例
CREATE procedure [dbo].[proc_UpdateUser]
@id int,
@username nvarchar(200)
as
update Users
set UserName=@username
where Id=@id
--刪除數據
CREATE procedure [dbo].[proc_DelUser]
@id int
as
delete Users where Id=@id
14、視圖示例
create view ?view_user
as
select id from user
go
歡迎關注我的公眾號(同步更新文章):DoNet技術分享平臺
原文