1. 程式人生 > >收集一些工作中常用的經典SQL語句

收集一些工作中常用的經典SQL語句

修改列 平臺 ref 補充 技術分享 deluser etime roc entity

作為一枚程序員來說和數據庫打交道是不可避免的,現收集一下工作中常用的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技術分享平臺

收集一些工作中常用的經典SQL語句