SQL查询-简单查询
- 格式:ppt
- 大小:7.86 MB
- 文档页数:44


如何使⽤SQLSELECT语句从单个表中查询数据
在本教程中,您将学习如何使⽤SQL SELECT语句从单个表中查询数据。
1. SQL SELECT语句简介
要查询表中的数据,请使⽤SQL SELECT语句。 SELECT语句包含⽤于选择列,,,以及执⾏简单计算的语法。
SELECT语句是SQL中最复杂的命令之⼀,因此,在本教程中,我们将仅介绍基础知识。
下⾯说明了从单个表中检索数据的SELECT语句的基本语法。
SELECT
column1, column2, column3, ...
FROM
table_name;
在此语法中,指定查询SELECT⼦句中的数据是使⽤逗号分隔列的列表,并在FROM⼦句中指定表名。 在评估SELECT语句时,数据库系统⾸先
计算FROM⼦句,然后再计算SELECT⼦句。
如果要查询表的所有列中的数据,可以使⽤星号(*)运算符⽽不是列列表,如下所⽰。
SELECT
*
FROM
table_name;
请注意,SQL不区分⼤⼩写。所以数据库系统处理SELECT和select都是相同操作。 但是,为了使SQL语句更具可读性,我们将使
⽤SQL关键字的⼤写字母(如SELECT和FROM)和⼩写字母(如表名和列名)等标识符。
除了SELECT和FROM⼦句之外,SELECT语句还可以包含许多其他⼦句,例如 -
- ⽤于根据指定条件过滤数据
ORDER BY - ⽤于对结果集进⾏排序
LIMIT - ⽤于限制返回的⾏
JOIN - ⽤于查询来⾃多个相关表的数据
GROUP BY - ⽤于根据⼀列或多列对数据进⾏分组
HAVING - ⽤于过滤分组
您将在后续教程中了解这些⼦句的使⽤。
2. SQL SELECT语句⽰例
我们将使⽤中的employees表进⾏演⽰。
3. SQL SELECT - 查询所有列⽰例
要查询表中的所有列,请使⽤星号(*)⽽不是指定每列。 例如,以下语句从employees表中检索所有数据:
关系数据库标准语言SQL
一、 概述
1、结构化查询语言Structured Query Language的缩写
2、 SQL命令是所有关系型数据库的通用语言,在Access、DB2、SQL server等关系型数据库中都可以使用。
3、功能
数据查询、数据定义、数据操作、数据控制,其中数据查询是核心内容。
二、查询功能
基本命令格式:select from where
1、简单查询
适用范围:这类查询基于单个表,查询的结果和所涉及的条件只来自于一张表。
例1:查询导师的职称信息
select 职称 from 导师
注:如果要去掉查询结果中的重复值则可以使用distinct短语
select distinct 职称 from 导师
例2:查询导师的导师编号,姓名,职称
select 导师编号,姓名,职称 from 导师
例3:查询男导师的姓名,职称
select 姓名,职称 from 导师 where 性别=“男”
思考:1、查询工资在2500元以上的男导师的信息
2、查询年龄不低于60岁的副教授的姓名、性别、年龄
3、查询所有研究考古学的男生,以及女生的姓名,性别,研究方向。
例4:排序
命令:order by [asc/desc][,[asc/desc]…]
功能:使用select命令可以将查询的结果进行排序
按姓名升序和入学分数降序,查询入学分数在340份以上的研究生的全部信息
Select * from 研究生 where 入学分数>340 order by 姓名,入学分数 desc
例5:查询部分结果
命令:top [percent]
功能:查询部分结果,必有时和order by短语同时使用
查询导师表前4条记录
Select top 4 * from 导师
查询入学分数最高的3位研究生的姓名,入学分数
Select top 3 姓名,入学分数 from 研究生
一个简单的去除重复字段的SQL查询语句
2009-11-16 17:12
一个简单的去除重复字段的SQL查询语句
[2008-11-04 16:01:15 by rainoxu] | 分类:我的知识库
今天公司里让.Net程序修改一个程序,需要去掉输出中的重复楼盘名称,一开始想到的是Distinct,但死路不通,只能改道,最终偶在网上找到了一个思路,修改了一下就有了。
先看所有记录(这是我在测试的数据库里做的):
OK,我们这样来消除重复项:
1.
select * from table1 as a
where not exists(select 1 from table1 where logID=a.LogID and
ID>a.ID)
2.
最近做一个数据库的数据导入功能,发现联合主键约束导致不能导入,原因是源表中有重复数据,但是源表中又没有主键,很是麻烦。经过努力终于解决了,现在就来和大家分享一下,有更好的办法的可以相互交流。
有重复数据主要有一下几种情况:
1.存在两条完全相同的纪录
这是最简单的一种情况,用关键字distinct就可以去掉 example: select distinct * from table(表名) where (条件)
2.存在部分字段相同的纪录(有主键id即唯一键)
如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性特点及group by分组
example:
select * from table where id in (select max(id) from table group by
[去除重复的字段名列表,....])
3.没有唯一键ID
这种情况我觉得最复杂,目前我只会一种方法,有那位知道其他方法的可以留言,交流一下:
example:
select identity(int1,1) as id,* into newtable(临时表) from table
实验三SQL(二)SQL语言进行简单查询实验报告范文
实验目的:
1.掌握SQL查询语句的一般格式2.掌握简单数据查询操作。3.熟练掌握各种查询条件的表示。
4.掌握排序和分组操作在SQL语句中的实现。5.掌握集函数的使用。
实验内容;
1.创建学生表tudent、课程表coure和选课表SC,并输入数据(注意数据的完整性。);(可以使用实验一中已经建立的表和数据)2.对各表中的数据进行不同条件的查询;1)查询全体学生的学号和姓名2)3)4)5)6)7)8)9)
查询全体学生的详细记录
查询所有选修过课程的学生学号
查询考试有不及格的学生学号查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别查询选修了4号课的学生学号和成绩,结果按成绩降序排列查询每个课程号和相应的选课人数
查询计算机系(CS)的学生姓名、年龄、系别
查询年龄18-20岁的学生学号、姓名、系别、年龄;
10)查询姓刘的学生情况
11)查询既选修1号课程,又选修2号课程的学生学号12)查询学生的姓名和出生年份(今年2003年)13)查询没有成绩的学生学号和课程号14)查询总成绩大于200分的学生学号15)查询每门课程不及格学生人数
16)查询不及格课程超过3门的学生学号
17)查询年龄在10到19岁之间的学生信息
18)查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列19)查询选了1号课程的学生平均成绩20)查询选了3号课程的学生的最高分21)查询每个同学的总成绩
实验步骤与过程:
1.创建学生表tudent、课程表coure和选课表SC,使用实验一中已经建立的表和数据。2.并输入数据,设置主键。
3.建立索引及三表之间关系。
4.按照SQL语句格式及题目要求输入语句进行以下查询:
1、查询全体学生的学号和姓名;2、查询全体学生的详细记录;3、查询所有选修过课程的学生学号;4、查询考试有不及格的学生学号;5、查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别;6、查询选修了4号课的学生学号和成绩,结果按成绩降序排列;7、查询每个课程号和相应的选课人数;8、查询计算机系(CS)的学生姓名、年龄、系别;9、查询年龄18-20岁的学生学号、姓名、系别、年龄;10、查询姓刘的学生情况;11、查询既选修1号课程,又选修2号课程的学生学号;12、查询学生的姓名和出生年份(今年2003年);13、查询没有成绩的学生学号和课程号;14、查询总成绩大于200分的学生学号;15、查询每门课程不及格学生人数;16、查询不及格课程超过3门的学生学号;17、查询年龄在10到19岁之间的学生信息;18、查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列;19、查询选了1号课程的学生平均成绩;20、查询选了3号课程的学生的最高分;21、查询每个同学的总成绩