6.SQL和ADO.Net高级【中】

简介: 6.SQL和ADO.Net高级【中】

提示:以下是本篇文章正文内容,下面案例可供参考

1、用户表的CRUD

->用户表修改
->用户表多条件搜索
->  //CTRL+L  快速剪切一行
    //CTRL +TAB:  程序内部的页签切换
    //Alt + Tab  :程序与程序之间的快速切换。

2、SqlHelper的封装

->参数化处理
->DRY原则
  ->ExcuteNonQuery()
  ->ExcuteScalar()
  ->ExcuteReader()
  ->ExcuteTable()
SqlHelper + app.config 
----------*******************---------------------------------------

3、Case的用法

->使用方法一:(类似C#中的Case的用法)
  ->语法:
    Case  表达式
      when 值1  then  返回值
      when 值1  then  返回值
      ....
    End
  ->案例:把0413DB数据库中的用户表中数据 全部查询出来,要求把DelFlag=0的显示成删除,DelFlag=1的显示为 未删除
->使用方法二:(类似C#中的多个if else)
  ->语法
    Case 
      When 表达式 then 返回值
      When 表达式 then 返回值
      else 值
    end
  ->案例:把0413DB数据库中的用户表中数据全部查询出来,要求把DelFlag=0的显示成删除,DelFlag=1的显示为 未删除

3、补充:ISNULL(表达式,替换的值)

4、SQL控制语句

->定义变量:declare
  ->给变量赋值:
    ->set @参数名=值
    ->select @参数名=值
->打印 : Print
->IF ELSE
  ->语法格式:
  if(表达式) 
  begin 
    SQL语句
  end   
  else 
  begin 
    语句
  end   
->WHILE
  ->语法:
    While(表达式)
    begin
      SQL语句
    end

5、子查询

->把一个查询结果作为一个表来使用,就是子查询
->把一个查询结果作为 一个 表达式进行使用就是子查询。
案例:   
  --查询顾客表中属于同一家公司超过两个顾客的公司名称    
  select CompanyName,count(*) as 个数  from SalesLT.Customer group by CompanyName having count(*)>2
  --查询顾客表中  相同公司人数最多的 顾客信息
  select * from SalesLT.Customer where CompanyName=(
    select top 1 CompanyName from SalesLT.Customer group by CompanyName order by count(*) desc
  )
  --查询 相同公司人数最多的顾客的订单信息
  select * from SalesLT.SalesOrderHeader where CustomerID
    in(
      select CustomerID from SalesLT.Customer where CompanyName=(
    select top 1 CompanyName from SalesLT.Customer group by CompanyName order by count(*) desc)
    )
  --查询山东省的所有的城市信息
  use 0413DB
  go
  select areaId from AreaFull where AreaPId =(select AreaId from AreaFull where AreaName=N'山东省')
  --查询山东省中所有县级市的
  select * from AreaFull where AreaPId in(
    select areaId from AreaFull where AreaPId =(select AreaId from AreaFull where AreaName=N'山东省')
  )
  --查询山东省中的所有的县
  select * from AreaFull where AreaPId in(
    select areaId from AreaFull where AreaPId =(select AreaId from AreaFull where AreaName=N'山东省')
  ) and AreaName like N'%县'

6、分页SQL语句

->Row_Number函数的分页使用
->双Order排序 分页法【越过多少条,取多少条数据】


7、表链接

->Inner Join
  ->查询员工出差的信息。
->Right Join
  ->查询所有员工的信息,如果有出差信息则显示出差信息。
->Left Join
->Full Join
  ->查询所有员工的信息和所有的出差信息,
->Cross Join
  ->查询所有员工和所有职位的组合情况

8、索引

->索引就是表的目录。 提高查询效率。
->创建索引    
  ->索引的分类
    ->聚簇索引:索引的存储顺序跟数据的存储顺序一致。
    ->非聚簇索引:索引指向聚簇索引或者是数据存储的磁盘位置。
  ->语法
    ->非聚集索引
      ->CREATE  INDEX  索引名  ON 表名(列名)
    ->创建唯一非聚集索引
      ->CREATE UNIQUE INDEX 索引名 ON 表名(列名)
    ->创建聚集索引
      ->CREATE TABLE t1 (a int, b int, c AS a/b); 
      CREATE UNIQUE CLUSTERED INDEX Idx1 ON t1(c); 
      INSERT INTO t1 VALUES (1, 0);
->使用索引的条件:
  ->经常查询的字段,经常进行数据筛选的列
->索引失效:
  ->where条件后面使用了 <> 、not in 、not exist、!= 、Or等
  ->对列使用了函数处理 类型转换函数 convert  cast
  ->隐式转换使索引失效:
    ->错误的例子:select * from test where tu_mdn=13333333333;
    ->正确的例子:select * from test where tu_mdn='13333333333';
  ->对索引列进行运算导致索引失效,我所指的对索引列进行运算包括(+,-,*,/,! 等)
    ->错误的例子:select * from test where id-1=9;
    ->正确的例子:select * from test where id=10;
  ->like查询是以%开头
  ->在Where子句中使用IS NULL或者IS NOT NULL

->补充GUID的使用

–>选择:

->苹果园 选择苹果。

->做出明智的选择。

->多项选择、单项选择

->如何选择:

->跟着需求走

->报传智播客,明智的选择。

->选择 大于 失败

->为了选择而努力


目录
相关文章
|
3天前
|
SQL 数据库连接 数据库
VB.NET 中使用SqlConnection类连接到Microsoft SQL Server数据库的详细步骤
VB.NET 中使用SqlConnection类连接到Microsoft SQL Server数据库的详细步骤
108 0
|
10月前
|
SQL 存储 缓存
SQl Server——ADO.NET五大对象
在某些编程中总是会需要用到数据库,那如何让应用程序和数据库之间建立联系呢?ADO.NET就提供了应用程序连接数据库的桥梁
5.SQL和ADO.Net高级【上】
5.SQL和ADO.Net高级【上】
41 0
|
SQL 数据库
3.SQL和ADO.Net【上】
3.SQL和ADO.Net【上】
43 0
4.SQL和ADO.Net【下】
4.SQL和ADO.Net【下】
34 0
|
Web App开发 监控 .NET
一起谈.NET技术,asp.net利用log4net写入日志到SqlServer数据库
  asp.net利用log4net写入日志到SqlServer数据库,Log4net是一个开源的错误日志记录项目,易用性强,源自log4j,品质值得信赖。 下面就我的安装部署log4net到MS sql server的经验与大家分享。
1585 0