【笔记】数据库基础04_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 【笔记】数据库基础04

【笔记】数据库基础04

 2014/12/13 14:55:48  —阿辉  程序员俱乐部  我要评论(0)
  • 摘要:数据库的一些基本命令和小练习练习1eg:  有一张表T_Scores,记录比赛成绩Date             Name         Score2008-8-8       
  • 标签:笔记 数据库 数据

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

练习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和数据库连接起来,实现二者的互动。自己对于数据库的理解还只是处于初级阶段,还有更多的知识等着我去学习,不敢在放肆的玩了,要加油,为了我更早的成为大神。

  

发表评论
用户名: 匿名