• 数据库语法01


    数据库的一些基本命令和小练习

    练习1 eg:

       有一张表T_Scores,记录比赛成绩

    Date              Name          Score

    2008-8-8        拜仁            胜

    2008-8-9        奇才            胜

    2008-8-9        湖人            胜

    2008-8-10      拜仁            负

    2008-8-8        拜仁            负

    2008-8-12       奇才           胜

    要求输出下面的格式      <注:在中文字符串前面加N,比如N‘胜’>

      Name       胜        负

      拜仁         1          2

      湖人         1          0

      奇才         2          0

    代码:1:

    <一步一步慢慢实现>

    select Name,
    (
    case Score
    when N'胜' then 1
    else 0
    end
    )as 胜,
    (
    case Score
    when N'负' then 1
    else 0
    end
    ) as 负
    from Scores

              image

    代码:2

    select Name,
    SUM(
    case Score
    when N'胜' then 1
    else 0
    end
    )as 胜,
    SUM(
    case Score
    when N'负'then 1
    else 0
    end
    )as 负
    from Scores
    group by Name

                image

                    <实现要求的输出,如上面的代码2所示。>

    索引学习<index>

    全表扫描:对数据进行检索(select)效率最差的是全表扫描,一条条的找。

    **目录就是索引。

    **创建索引的方式

      ----表—右键--创建索引---添加--在列中选择索引包含的列--确定。

    **使用索引能提高查询效率但是其占空间,而且添加,更新,删除数据时需要同步索引,因此

    会降低速度。只在经常检索的字段上面创建索引。

         (*)即使创建了索引,有时也需要全表扫描,比如like,函数,类型转换等。

    表连接 <join>

    Join用法:

    主要有Inner Join 及 Outer Join:

    最常用的(默认是Inner):

    Select <要选择的字段> From <主要资料表>

    <Join 方式> <次要资料表> [On <Join 规则>]

    Inner Join 的主要精神就是 exclusive , 叫它做排他性吧! 就是讲 Join 规则不相符的资料就会被排除掉, 譬如讲在 Product 中有一项产品的供货商代码 (SupplierId), 没有出现在 Suppliers 资料表中, 那么这笔记录便会被排除掉

    Outer Join:

    Select <要查询的字段> From <Left 资料表>

    <Left | Right> [Outer] Join <Right 资料表> On <Join 规则>

    语法中的 Outer 是可以省略的, 例如你可以用 Left Join 或是 Right Join, 在本质上, Outer Join 是 inclusive, 叫它做包容性吧! 不同于 Inner Join 的排他性, 因此在 Left Outer Join 的查询结果会包含所有 Left 资料表的资料, 颠倒过来讲, Right Outer Join 的查询就会包含所有 Right 资料表的资料

    子查询

             将一个查询语句作为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询.            <可以使用表的地方都可以使用子查询来代替>

    select * from

    (select * from Student where Age>20)

    as 姓名 

                   <只有返回且仅返回一行,一列数据的子查询才能当成单值子查询>

    select  rom_number() over( order by Age DESC) as romnum

    Name,Age,Chinese,Math from Student 

    <rom_number>不能应用在Where语句的查询中。

    ********这一阶段的数据库看完了,自己也掌握了很多的数据库的查询,建表,更新,删除等语句,下面应该就是ADO.NET的学习,这个就是要把vs和数据库连接起来,实现二者的互动。自己对于数据库的理解还只是处于初级阶段,还有更多的知识等着我去学习,不敢在放肆的玩了,要加油,为了我更早的成为大神。

      

  • 相关阅读:
    C# 全局热键
    Frida hook 初识
    xposed hook 复杂函数参数问题
    C# http post 中文乱码问题
    Fiddler 抓包https 问题
    C# HttpWebRequest 多线程超时问题
    Android Studio 无 Generate signed apk 菜单选项问题
    c#调用c++ dll const char* String类型转换问题。传值,与接收返回值问题
    C++中GB2312字符串和UTF-8之间的转换
    The underlying connection was closed: An unexpected error occurred on a send
  • 原文地址:https://www.cnblogs.com/netxiaohui/p/4161204.html
Copyright © 2020-2023  润新知