|
尽量减少分别连接数据库次数 ,提高效率 , 有可能的话,用一个语句处理多个更新;尽量减少对同一个表
的重复访问。
SQL查询简单优化:不要select * from xx 查询每个字段。 select id,name,address from xx ,这样就达
到简单优化的地步,查询必要字段,不需要的不要查出来。进一步优化
以下仅供参考:
查询:select * from 表名 where 条件(id=' 1 ')
新增:insert into ('ID','Name','Value') values ('1','张三','好样的')
修改:update 表名 set 字段(Name = '李四') where 条件
删除:delete from 表名 删除该表所有数据
增加字段:Alter table T_SYS_User ( 表名) add Specif (要增加的字段名) varchar(200) null (类型)
删除字段:Alter table T_SYS_User ( 表名) drop column Specif (要删除的字段名)
删除该表:drop table 表名(在数据库中删除该表,不是表数据)
创建视图
Create View VM_Grade as select s.name, c.name,d.grade (需要在视图中显示的字段) from stuident
s , count c,dispoe d where s.id=c.id and c.id=d.id
删除视图
Drop View VM_Grade
when then 用法
select * ,(CASE sign WHEN '1' THEN '以签约' WHEN '2' THEN '未签约' END) as qianyue from T_l
abelinfo
UNION All 用法(合并两个或多个 SELECT 语句的结果集,UNION 内部的 SELECT 语句必须拥有相同数量的
列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同)
select A.id,A.name from A UNION All select B.id,B.name from B
如果把表中的某一字段设置为自动增长时,用SQL给这一字段插入数据时会报off 的错误。。。。。。解决
办法是 SET IDENTITY_INSERT 该表表名 ON 再写插入的SQL 再关闭 SET IDENTITY_IN
SERT 表 ON
简单分页查询
- select * from (select ROW_NUMBER() OVER (order by Dispatch_Body.BodyID desc) as RowNum, Dispatch
- _Body.BodyID , Dispatch_Body.PubTime , Dispatch_Body.UserID ,Dispatch_Body.RecUser,Dispatch_Body
- .CsUser, Dispatch_Body.Subject , Dispatch_Body.Contents , Dispatch_List.ID , Dispatch_List.UserID , Dispat
- ch_List.IsRead , Dispatch_List.ReadedTime
- from Dispatch_Body ,Dispatch_List where Dispatch_List.BodyID = Dispatch_Body.BodyID and Dispatch_List.
- IsDel = '0' and Dispatch_List.UserID = 'c8100a9c8ace7b42b828' and Dispatch_Body.Type = '0' and Dispatch
- _Body.DraftBox= '0' and Dispatch_List.DraftBox= '0'
- order by Dispatch_List.IsRead asc, Dispatch_Body.PubTime desc)
复制代码
where RowNum > 0 AND rowNum <= 20 //查询序号从0到20的数据集
一条sql语句判断数据是否存在
string sql = @"
IF EXISTS (SELECT * FROM [表] WHERE [name]='tom')
UPDATE [表] SET [age]=20 WHERE [name]='tom'
ELSE BEGIN
INSERT INTO [表] ([name],[age],[sex]) VALUES ('tom',20,'male')
END";
|
|