黑马程序员c#学习8

Windows Phone 7手机开发.Net培训、期待与您交流!

1、 基础sql语句

   sql语句字符串用单引号,字段名关键字是大小写不敏感的,但是字段值还是区分大小写的。

   分类 DDL(数据定义语言) DCL(数据控制语言) DML(数据操作语言)

   DDL: 数据定义语言,主要包括create ,alter ,drop 语句。

   DCL: 数据控制语言,主要包括grant ,revoke语句,用于控制用户对数据的访问权限

   DML: 数据操作语言,主要包括select ,insert,update,delete语句,用来对数据进行选择,添加,
更新,删除,是我们最常用的一些语句
  
   select 语法  用来从数据库中查询符合条件的数据

   select 字段名1,字段名2
   from  表名
   where 查询条件

   insert语句,用来向数据库中插入数据

   insert  into  表名(字段名1,字段名2)
   values (值1,值2)

   注意 ,表名后的字段列表和values后的值列表必须是一一对应的,如果我们没有写字段名,则默认是向

表中的所有字段添加数据,那么值列表必须和数据库表中的字段顺序一致。

   update语句 用来更新数据库中的数据

   update 表名
   set 字段名1 = 值1 , 字段名2 = 值2
   where  查询条件

    delete语句 删除数据

    delete from 表名
    where 删除条件

    注意,如果省略了where条件,那么就会删除表中的所有语句 , 慎用

    delete和drop的区别在于,delete值删除数据,并不删除表,drop则是将表本身删除。

    空值处理 null
 
    null值代表不知道,并不是0 ,也不是‘’空字符串,null值参与任何运算得到的结果都是null

2、select 语句加强

    列别名   as
          select 字段名1 as 别名1 ,字段名2 as别名2
          from  表名
          where 查询条件
 
    聚合函数  select中的字段名不仅可以直接显示,还可以参与各种运算,我们可以使用各种聚合函数

          sum()取字段中符合查询条件的所有值的和
          count()取和服查询条件的总行数
          max() min()取字段中符合查询条件的额最大值与最小值

    排序 order by 对查询结果进行排序  desc代表降序,asc代表升序
          注意 order by 后面的字段名必须在select          列表中出现过,另外,order by 后面的            字段可以不一定只有一个,可以有多个,并可以单独指定他们的排序方式,另外 ,order by 语          句必须出现在where语句之后

          select 字段名1,字段名2.。。。 from 表名
          where  查询条件
          order by  字段名  [desc|asc] 
    

     通配符过滤 like
          单字符匹配   _  比如 _aaa  表示以任意字符开头,后面为aaa的字符
          多字符匹配   %  比如 %aaa  表示以0或任意多个字符开头,以aaa结尾的字符

     数据分组    group by

          select 字段名1,字段名2.。。。 from 表名
          where  查询条件
          group by  字段名 1,字段名2

           注意   select列表中的字段必须全部出现在group by 的字段列表中,当然,select列表中的           聚合函数除外 ,group by 也要出现在where字句后,但要在order by 之前

           group by 还用到了一个having字句 having字句用来对分组后的数据进行选择,having字句中           可以出现聚合函数,而where字句是不能出现聚合函数的。和group by 后面的字段列表相同,           having字句中出现的字段名必须也在select列表中出现,
           having字句一般是紧随group by字句出现的。

      限制结果集的行数

           可以使用top 行数选取结果集中的前几行。

           如 select  top  5 * from 表名 where 查询条件; 这条语句将会输出满足查询条件的前5条           数据

           也可以使用ROW_NUMBER()函数 ,
          
           语法如下

           select ROW_NUMBER( partition by 字段名1  order by 字段名2)from 表名 where 查询条件

           partition by 字段名1表示将符合where条件的结果集按照字段名1来分组。
           order by 字段名2  表示将分组后的数据按字段名2来排序。

           上面这条语句的完整意思就是根据where查询条件选出结果集,然后将结果集按照字段名1分组           ,分组内按照字段名2排序,并给每条记录产生一个序号。

           我们使用产生的这个序号和子查询就可以来进一步筛选结果集中的任意范围内的数据。

       抑制重复数据  distinct

           dintinct用于将结果集中的重复行删除。

           select distinct 字段1,字段2 from 表名 where 查询条件;

           注意  distinct紧跟在select关键之后面,是对所有查询字段的组合来判断是否重复,比如上           面这条语句,是将所有字段1和字段2都相同的行进行删除重复行,只有字段1相同,字段2不同             不会被判断为重复行

         结果集的联合 union 和union  all
         
              union和union all 用来联合两个结果集,产生一个新的查询结果集,两个结果集的字段个             数和字段类型必须相同,字段名可以不同,他们的不同之处在于,union会自动删除两个结果             集中的重复行 ,而unnion all 不会删除重复行。

3、系统函数

         数学函数
         abs() 求绝对值
         ceiling()  舍入到最大整数  即舍入到大于参数的最小整数 如ceiling(3.88)返回4
         floor() 舍入到最小整数   即舍入到小于参数的最大整数   floor(3.88)返回3
         round()   四舍五入 第二个参数表示精度,表示要保留几位精度。

         字符串函数
          len() 计算字符串的长度
          lower() upper() 转换大小写
          ltrim()删除左边空格,rtrim() 删除右边空格;
          substring(string,startposition,length)取子字符串,string表示被取得字符串,
                    startposition表示开始位置,length表示截取的长度。

         日期函数

           getdate() 获取 当前日期
           dateadd(datepart,number ,date)计算增加以后的日期
                   datepart表示计量单位 ,是年,月还是日,number表示增量,而date表示待计算的日                     期
           datediff(datepart,startdate,enddate)计算两个日期之间的差额,datepart的取值和                    dateadd()函数中类似,startdate开始日期,enddate结束日期
            datepart(datepart,date)返回一个日期的特定部分。

          类型转换函数

               cast(expression as  data_type) 将expression的值转换为data_type类型
               convert(data_type,expression)将expression的值转换为data_type类型
          空值处理函数
               isnull(expression,value),如果expression为空,则返回value,如果不为空,则返回自己。

          流控函数

               case expression
               when value1 then   returnvalue1
               when value2 then   returnvalue2
               when value3 then   returnvalue3
               else  returnvalue4
               end

                或者
        case
               when expression  then   returnvalue1
               when expression  then   returnvalue2
               when expression  then   returnvalue3
               else  returnvalue4
               end
4、索引 index
            索引的好处是有可能提高查询效率,但是会占用空间,在insert update时可能降低效率。

            CREATE  INDEX 索引名
            ON 表名 (字段名1[ASC|DESC][, 字段名2 [ASC|DESC], ...])


            
           

Windows Phone 7手机开发.Net培训、期待与您交流!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值