黑马笔记-数据库之需要注意的(三)
来源:互联网 发布:linux cc攻击脚本 编辑:程序博客网 时间:2024/05/16 05:38
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
又有时间了 KKK。
继续学习SQL,打好基础。从点点滴滴做起,系统的学习。
练习一.
表中有A、B、C 三列,用SQL语句实现当A列大于B列时选测A列否则选测B列,当B列大于C列时选择B列否则选择C列。
---创建表。create table t4(A int,B int,C int)---插入数据insert into t4 values(1,2,3)insert into t4 values(3,2,1)insert into t4 values(2,1,3) select( case when A>B then A else B end),( case when B>C B else C end)from t4
练习2.
有一张表T_Scores,记录比赛成绩。
Date Nane Score
2008-08-08 拜仁 胜
2008-08-09 奇才 胜
2008-08-09 湖人 胜
2008-08-10 拜仁 负
2008-08-08 拜仁 负
2008-08-12 奇才 胜
要求输出下面的格式:
Name 胜 负
拜仁 1 2
湖人 1 0
奇才 2 0
注意:在中文字符串前加N,比如N’负’
---创建表。create table T_Scores( [Date] datetime, --日期 Name nvarchar(10),--队名 Scores nvarchar(10) --胜负)---插入数据。insert into T_Scores values('2008-08-08',N'拜仁',N'胜')insert into T_Scores values('2008-08-08',N'奇才',N'胜')insert into T_Scores values('2008-08-08',N'湖人',N'胜')insert into T_Scores values('2008-08-08',N'拜仁',N'负')insert into T_Scores values('2008-08-08',N'拜仁',N'负')insert into T_Scores values('2008-08-08',N'奇才',N'胜')--显示表。select * From T_Scores; ---练习答案Select Name , sum ( case when Scores = N'胜' then 1 else 0 end ) as胜, sum ( case when Scores = N'负' then 1 else 0 end ) as负from T_Scoresgroup by Name
注意:分解成小部分,一步一步完成. 思路:
制作表->胜(1)负(1)->sum->groupby
子查询
将一个查询语句做为一个结果集体供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询,所以可以使用表的地方几乎都可以使用子查询来代替。
使用子查询的原则:
1.一个子查询必须放在圆括号中;
2.将子查询放在比较条件的右边以增加可读性。子查询不包含 ORDER BY 子句。对一个SELECT 语句只能用一个 ORDER BY 子句,并且如果指定了它就必须放在主 SELECT 语句的最后。ORDER BY 子句可以使用,并且在进行Top-N 分析时是必须的;
3.在子查询中可以使用两种比较条件:单行运算符和多行运算符。
子查询的类型:
单行子查询:从内 SELECT 语句只返回一行的查询;
多行子查询:从内 SELECT 语句返回多行的查询;
select * from (select * from T_Reader where FYearOfBirth>1970) as Tr
注意:必须用别名
---只能是一行一列。select 1 as f1,2,(select MIN(FYearPublished) from T_Book),(select MAX(FYearPublished) from T_Book) as f4---单列多行select * from T_Reader where FYearOfJion IN(2000,2010) select * from T_Reader WHERE FYearOfJion IN(SELECT FYearOfJion FROM T_Reader) --用子查询实现TOP的功能select * FROM( select ROW_NUMBER() over (order by FSalary DESC) AS ROWNUM,FNumber,FName,FSalary,FAge FROM T_Employee )as t1where ROWNUM>=1 AND ROWNUM<=3--ROW_NUMBER()不能出现在WHERE 中。
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://net.itheima.com/
- 黑马笔记-数据库之需要注意的(三)
- 黑马笔记-数据库之需要注意的(一)
- 黑马笔记-数据库之需要注意的(二)
- 连接数据库需要注意的
- 数据库备份需要注意的
- Java学习笔记之需要注意的基础知识点
- ListView(三)需要注意的问题
- 让微信营销回归理性,需要注意的三点问题-郑州seo笔记
- 使用access数据库需要注意的问题
- 创建数据库需要注意的问题
- 数据库需要注意的东西 --不断收藏
- 设计数据库需要注意的地方
- MySQL数据库设计需要注意的点
- 使用oracle数据库需要注意的问题
- 数据库设计需要注意的问题
- 创建数据库时,需要注意的事项
- 设计数据库时需要注意的点
- 数据库编程时需要注意的两点!
- Skia引擎API整理介绍(skia in Android 2.3 trunk)
- RTMP中如何平稳的获取时间戳
- web 动起来
- 十六进制颜色代码表
- JSON 入门指南
- 黑马笔记-数据库之需要注意的(三)
- search help的优先级问题
- NSCoding解释
- sun-jdk安装
- Linux:如何查看一个进程的详细的启动时间
- ProE4.0的二次開發
- android 9.png 图片制作
- 用 grep 实现敏感词屏蔽
- ExtJS的入门第一个程序