selectdistinct(select distinct name)速看
单列查询在数据库表中,每个表都包含若干列信息用户在查询表中的记录时,大多数情况下只是关心表的一-列或者几列的信息在SQL中,查询表中某- -列(字段)信息的语法可表示如
单列查询在数据库表中,每个表都包含若干列信息用户在查询表中的记录时,大多数情况下只是关心表的一-列或者几列的信息在SQL中,查询表中某- -列(字段)信息的语法可表示如下SELECT column FROM table_ name_ name。

SELECT关键词指明了要查询字段名称(column),FROM关键词指明了要获取字段信息地表的名字在SQL语言中,SQL关键词对大小写不敏感,所以对SELECT关键词来说,注意SELECT、select 或者Seleet 都是一样的;然而对于表名或者列名来说,可能对大小写敏感,这取决于数据库的DBMS。

使用DISTINCT去除重复信息在查询中,我们经常需要去除查询结果中的重复信息例如,一张学生成绩表,其字段包含学生姓名、选修课程和课程成绩3个字段如果用户想要查询这张表中包含的所有学生的姓名信息,由于同-学生可能有多门选修课,同-学生在该表中就有多条记录,那么查询的姓名字段就会有多个重复值,显然不能很好满足用户的需求。
在SELECT子句中,我们通过指明DISTINCT关键字,可以去除列中的重复信息语法如下SELECT DISTINCT column FROM table_ name_ name

DISTINCT关键字去除的是SELECT 子句查询的列,即column的重复信息如果说明SELECT子句查询的列为多列,那么只有这些列的信息同时重复的记录才能被去除使用DISTINCT去除重复信息在TEACHER表中查询所有教师的姓名信息(TNAME), 对于重复的姓名只显示一个。
示例代码如下SELECT DISTINCT TNAME FROM TEACHER

从执行结果我们可以发现,重名的“李伟”只显示了一个,即去除了查询结果中的重复值,并且对查询结果进行了排序(升序)实际上,DBMS的操作过程是先对查询结果排序,然后查找并从结果中除去重复的值对于汉字的排序,DBMS 是根据其汉语拼音的第一个字母的顺序进行的,如果第一说明个字母相同,则比较第二个字母,以此类推。
DISTINCT的使用是要付出代价的因为我们要去掉重复值,必须对结果关系进行排序,相同的元组排在一起,只有按这种方法对元组分组,才能去掉重复值,而这一工作甚至比查询本身还费时间多列查询同单列查询一样,多列查询需要在SELECT关键词后指定要查询的列,但是各列之间必须用逗号分开。
注意一点,列出的最后- -列的名字后面不能加逗号,否则会造成语法错误语法如下SELECT col1. col2, . coln FROM table_ name多列查询只是在SELECT关键词后罗列出所要查询的列名并以逗号相互间隔。
使用“*” 通配符时我们要慎重,在不需要查询所有列时,尽量采用前面介绍的单列查询或多列查询,以免占用过多的资源。

通过实例我们可以看到,无论是单列查询、多列查询还是查询所有的列,查询结果的纵向排序基本是按照其在表中存储的位置排列(使用DISTINCT关键字的情况除外)但是,在实际应用中往往需要查询结果按照某--特定的顺序排列。
举报/反馈
- 标签:
- 编辑:李松一
- 相关文章
-
selectdistinct(select distinct name)居然可以这样
虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重…
-
peter pang(peter pan歌词中文)硬核推荐
把悲伤解散 用希望的语言去修改替代让时间的发条快转我们的故事还有一半某个转弯 命运还在等待一定会有美丽安排——《彼得潘(Pete…
- lol卸载(lol卸载了怎么重新安装)太疯狂了
- 北京市工商局网上登记服务平台(浙江省工商局网上服务平台)不看后悔
- 车娅婷(成都车娅婷事件)燃爆了
- 气弹簧规格(气弹簧规格型号伸缩杆)太疯狂了
- 腾讯积分商城(积分商城平台)学会了吗