博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库语法01
阅读量:5323 次
发布时间:2019-06-14

本文共 1777 字,大约阅读时间需要 5 分钟。

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

练习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

         

代码: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

           

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

 

 

  

 

转载于:https://www.cnblogs.com/netxiaohui/p/4161204.html

你可能感兴趣的文章
http://www.bootcss.com/
查看>>
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
查看oracle数据库的连接数以及用户
查看>>
python tkinter GUI绘制,以及点击更新显示图片
查看>>
Spring面试题
查看>>
C语言栈的实现
查看>>
SRM 628 DIV2
查看>>
2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
查看>>
SecureCRT的使用方法和技巧(详细使用教程)
查看>>
自建数据源(RSO2)、及数据源增强
查看>>
2018icpc徐州OnlineA Hard to prepare
查看>>
使用命令创建数据库和表
查看>>
【转】redo与undo
查看>>
安卓当中的线程和每秒刷一次
查看>>
wpf样式绑定 行为绑定 事件关联 路由事件实例
查看>>
TCL:表格(xls)中写入数据
查看>>
Oracle事务
查看>>
String类中的equals方法总结(转载)
查看>>
标识符
查看>>
一步步教你轻松学奇异值分解SVD降维算法
查看>>