SQL学习笔记三 select语句的各种形式小结
SQL学习笔记三:select语句的千变万化
当我们踏入SQL的奇妙世界,我们将会发现select语句如同一条灵活的蛇,拥有各种形态和变化。今天,让我们一同select语句的各种形式。
让我们回顾一下基本的select语句。数据查询是数据库中最常见的操作,而SQL语言为我们提供了SELECT语句来实现这一操作。通过SELECT语句,我们可以获取所需的信息。其基本格式为:选择列名(或列名的组合)从指定的表或视图。在此基础上,我们还可以添加WHERE子句来添加查询条件,GROUP BY子句来进行分组,HAVING子句来过滤分组后的结果,以及ORDER BY子句来对结果进行排序。
让我们看一些具体的例子。例如,查询全体学生的学号、姓名和年龄,我们可以使用以下语句:
```sql
SELECT SNO, SN, AGE FROM S;
```
如果我们想查询选修了特定课程的学生信息,我们可以使用DISTINCT关键字来去除重复的行,例如:
```sql
SELECT DISTINCT SNO FROM SC WHERE CNO='C1';
```
接下来,我们进入条件查询的领域。当我们需要在表中找出满足某些条件的行时,WHERE子句就派上了用场。WHERE子句中的条件通常包括列名、比较运算符和列名或常数。我们可以使用各种比较运算符如大于、小于、等于等来创建条件。
例如,查询成绩高于85分的学生的学号、课程号和成绩,我们可以使用以下语句:
```sql
SELECT SNO, CNO, SCORE FROM SC WHERE SCORE > 85;
```
当我们需要多个查询条件时,我们可以使用逻辑运算符AND、OR和NOT来连接它们,形成复合的逻辑表达式。这些运算符的优先级是NOT最高,AND次之,OR最低。我们可以使用括号来改变默认的优先级。
例如,查询选修C1或C2且分数大于等于85分的学生信息:
```sql
SELECT SNO, CNO, SCORE FROM SC WHERE (CNO='C1' OR CNO='C2') AND SCORE >= 85;
```
除了简单的比较,我们还可以使用BETWEEN操作符来查询一个范围内的值,或者使用IN操作符来查询属性值属于指定集合的元组。
例如,查询工资在1000至1500之间的教师的信息:
```sql
SELECT TNO, TN, PROF FROM T WHERE SAL BETWEEN 1000 AND 1500;
```
或者使用NOT BETWEEN查询工资不在这个范围内的教师信息。还可以使用IN操作符查询选修C1或C2的学生的信息。
select语句的形式多样且功能丰富。通过合理使用这些功能,我们可以从数据库中获取所需的信息,满足各种查询需求。希望这篇文章能帮助你更好地理解SQL的select语句,并在你的学习道路上助你一臂之力。在数据库查询的世界里,我们常常需要精准地提取信息。这里有一些使用SQL语句进行查询的例子,它们展示了如何根据不同的条件筛选数据。
考虑一个场景,我们需要从选课表(SC)中选出选修了C1或C2课程的学生信息。这个查询可以使用IN操作符来完成,它允许我们匹配多个值。SQL语句如下:
```sql
SELECT SNO, CNO, SCORE FROM SC WHERE CNO IN (‘C1', ‘C2')
```
同样的查询也可以使用逻辑运算符OR来实现:
```sql
SELECT SNO, CNO, SCORE FROM SC WHERE CNO=‘C1' OR CNO= ‘C2'
```
如果我们想要查询那些没有选修C1和C2课程的学生的信息,可以使用NOT IN操作符。例如:
```sql
SELECT SNO, CNO, SCORE FROM SC WHERE CNO NOT IN(‘C1', ‘C2')
```
这个查询等价于:
```sql
SELECT SNO, CNO, SCORE FROM SC WHERE CNO != ‘C1' AND CNO != ‘C2'
```
除了完全匹配查询,我们还可以进行部分匹配查询,也就是模糊查询。当你不确定完全精确的字符时,可以使用LIKE或NOT LIKE操作符。比如,想要查询所有姓张的教师的信息,可以使用如下SQL语句:
```sql
SELECT TNO, TN FROM T WHERE TN LIKE ‘张%'
```
如果你想要查询姓名中第二个字是“力”的所有教师信息,可以这样写:
```sql
SELECT TNO, TN FROM T WHERE TN LIKE ‘_ _力%'
```
注意,一个汉字在数据库中通常占两个字符的位置。
还有一个重要的概念是“空值查询”。当一个字段没有值时,我们称之为具有空值(NULL)。在某些情况下,比如学生选课后没有参加考试,虽然有选课记录但成绩为空值。查询没有考试成绩的学生的学号和课程号可以使用如下语句:
```sql
SELECT SNO, CNO FROM SC WHERE SCORE IS NULL
```
请注意,我们不能使用等于符号(=)来判断空值,而应该使用IS NULL。以上就是关于数据库查询的一些基本知识和技巧。
编程语言
- SQL学习笔记三 select语句的各种形式小结
- PHP根据IP地址获取所在城市具体实现
- js实现上下左右弹框划出效果
- AngularJS 中ui-view传参的实例详解
- 基于javascript html5实现3D翻书特效
- 使用watch在微信小程序中实现全局状态共享
- Mysql巧用join优化sql的方法详解
- ASP.NET 页生命周期概述(小结)
- ASP.NET笔记之 Repeater的使用
- Jquery对select的增、删、改、查操作
- angularjs实现简单的购物车功能
- PHP文件缓存内容保存格式实例分析
- 微信开发 消息推送实现代码
- 在SQL中该如何处理NULL值
- js实现动态改变radio状态的方法
- Angular6 Filter实现页面搜索的示例代码