51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1755|回复: 0
打印 上一主题 下一主题

SQL 查询、新增、修改、删除等等

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-12 16:27:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   尽量减少分别连接数据库次数 ,提高效率 , 有可能的话,用一个语句处理多个更新;尽量减少对同一个表
的重复访问。

   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   



  简单分页查询

  1.    select * from (select ROW_NUMBER() OVER (order by Dispatch_Body.BodyID desc) as RowNum, Dispatch
  2. _Body.BodyID , Dispatch_Body.PubTime ,    Dispatch_Body.UserID  ,Dispatch_Body.RecUser,Dispatch_Body
  3. .CsUser, Dispatch_Body.Subject , Dispatch_Body.Contents ,  Dispatch_List.ID , Dispatch_List.UserID , Dispat
  4. ch_List.IsRead , Dispatch_List.ReadedTime
  5. from Dispatch_Body ,Dispatch_List  where Dispatch_List.BodyID = Dispatch_Body.BodyID and Dispatch_List.
  6. IsDel = '0' and  Dispatch_List.UserID = 'c8100a9c8ace7b42b828' and Dispatch_Body.Type = '0' and Dispatch
  7. _Body.DraftBox= '0' and Dispatch_List.DraftBox= '0'
  8. 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";



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /2 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-6-24 02:28 , Processed in 0.070941 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表