SQL查询语句大全
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
查询示例表
练习讨论
按10%的比例显示本专业的男生信息; 2. 查询“管理学院”专业分布情况; 3. 查询本专业学生来自哪些省份; 4. 查询英语不及格学生的信息,显示学号、姓名、专业、英语 原成绩、英语+10、英语*1.1等字段信息; 5. 显示管理学院学生中,不姓“刘”和“张”的学生信息; 6. 查询“数学”在65-75之间,而“英语”不在70-90之间的 学生信息; 7. 查询“管理学院、能源学院、机械学院、人文学院”学号在 01-07之间的学生信息。 8. 将学生的“学号、姓名、性别、身份证号” 作为一列、 “院系名称、专业”作为一列,各数据之间用“,”分隔;列 名分别为“基本信息”、“隶属关系”进行显示; 9. 查询总成绩<210、语文成绩在75-90间、且不属于“人文 学院”的学生信息。
4.2 SELECT语句的查询条件
4.IN 列表搜索条件 IN 列表搜索条件用于返回与给定的列表中任意一 个值相匹配的记录。格式为: 条件字段 [ NOT ] IN (列表选项) 例如:查询数学成绩为70、80、90的信息。 select * from 学生基本情况 where 数学成绩 in (70,80,90) In列表条件是OR的简化形式,上面语句等价于: select * from 学生基本情况 where 数学成绩 = 70 OR数学成绩 = 80 OR 数学成绩 = 90
SELECT语句
例如:查询authors中编号、姓名、电话、地址的信息,可 以采用以下方式: 1. select au_id 编号,au_lname 姓,au_fname 名,phone 电 话,address 地址 from authors 2. select 编号=au_id ,姓=au_lname ,名=au_fname ,电话 =phone ,地址=address from authors 3. select au_id '编号',au_lname '姓',au_fname '名',phone '电话',address '地址' from authors 4. select au_id "编号",au_lname "姓",au_fname "名 ",phone "电话",address "地址" from authors 5. select au_id as 编号,au_lname as 姓,au_fname as 名,phone as 电话,address as 地址 from authors
SELECT 子句
SELECT [ ALL | DISTINCT ] [ TOP n [ PERCENT ]] < select_list > < select_list > ::= { * | { table_name | view_name | table_alias }.* | { column_name | expression |} [ [ AS ] column_alias ] | column_alias = expression } [ ,...n ]
4.2 SELECT语句的查询条件
3.逻辑表达式 在 Transact-SQL 中可以使用的逻辑运算符 有三个: NOT:逻辑反,对指定的布尔表达式求反。 AND :逻辑与,只有当两个条件都是 TRUE 时取值为TRUE。 OR:逻辑或,当两个条件中任何一个条件是 TRUE时,取值为TRUE。 优先顺序:先Not,再And,后 Or
4. 消除字段数据的重复值 在查询数据时,可能会有许多重复的数据。 SQL 提供的Distinct 关键字,可以从select 语句的结果集中消除重复的数据。 例如:1)查询学生来至哪些院系的信息。 select distinct 院系名称 from 学生基本情 况 2)查询有哪些专业的学生。 select distinct 所学专业 from 学生基本情 况
4.2 SELECT语句的查询条件
4.BETWEEN条件 BETWEEN 用于搜索介于两个指定值之间的所有信 息,且包括两个指定的值。格式为: 条件字段 [ NOT ] BETWEEN begin_expression AND end_expression 例如:查询数学成绩在80到90之间的信息。 Select * from 学生基本情况 where 数学成绩 between 80 and 90 Between 是 AND 的简化用法,上面的语句等价于: Select * from 学生基本情况 where 数学成绩 >= 80 and 数学成绩<=90
第4章 查询与视图
4.1 4.2 4.3 4.4 4.5 4.6 SQL语言简介 SELECT数据访问基本方法 条件检索的SELECT语句 从多张表检索的SELECT语句 Union操作和子查询语句 SQL常用函数及其使用方法
4.1 SQL语言简介
SQL (Structured Query Language):结构化查询语言, 是一种介于关系代数与关系运算之间的语言,主要功能包括 查询、操纵、定义和控制等方面,是一个通用的、功能极强 的关系数据库语言。 2. Transact-SQL的组成 1)数据定义语言(DDL Data Definition Language): 用来建立数据库、数据库对象。如Create table、view等。 2)数据操纵语言(DML Data Manipulation Language): 用来操纵数据库中的数据的命令。如select、insert、 update、delete等。 3)数据控制语言(DCL Data Control Language):用来 控制数据库组建的存取权限等。如Grant、Revoke等。 4)流程控制语言(FCL Flow Control Language):用来 设计应用程序的语句。如if、while、case等。 5)其他语言要素(ALE Additional language Element): 包括变量、运算符、函数和注解等。
4.2.1 表中列的使用方法
1. 选择所有字段 SELECT * FROM 表名 如:use pubs select * from authors (显示authors中的所有信息,全表查询) 2. 选择部分字段 SELECT 列名1[,列名2,…列名n] FROM 表名 如:use student select 学号,姓名,性别 from 学生基本情况 (显示学生基本情况中学号,姓名,性别字段的信息)
1.
4.2 SELECT数据查询
SELECT语句的基本格式如下: SELECT select_list FROM table_source [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ] [ INTO new_table ]
1.
排序和分组的使用
1.
排序
使用Order by 对查询结果中的一个或多个字段进行排序。 排序可以升序(ASC),也可以是降序(DESC)。若未指定排序方 式,默认升序。 例如:1)按姓名升序查询学生信息。 select * from 学生基本情况 order by 姓名 2)查询数学成绩前5名的学生信息 select top 5 * from 学生基本情况 order by 数学成绩 desc 思考:1)如何按院系升序、姓名降序查询? 2)如何查询总成绩前10名的学生信息? 3)如何按性别降序、学号升序、平均成绩升序查询? 4)查询本专业女生中年龄最小的10个学生信息。
SELECT语句
4. 在选择列表中使用表达式 在查询数据时,可以通过运算操作来控制从 一个表中的返回值。 例如:查询每个学生的总成绩、平均成绩。 select 学号,姓名,数学成绩+语文成绩+英语 成绩 as 总成绩,(数学成绩+语文成绩+英语成 绩)/3 as 平均成绩 from 学生基本情况
SELHale Waihona Puke BaiduCT语句
4.2 条件子句的使用方法
1.条件子句 最常用的条件子句是where 和having,用它们来 指定一系列条件,执行操作时只返回满足条件的记录。 Having 通常与Group by一起使用,用来说明返回 分组的条件。 例如:1)显示男生的相关信息 Select * from 学生基本情况 where 性别=‘男’ 2)显示男生人数超过10人的院系信息 select 院系名称,count(*) as 男生人数 from 学 生基本情况 where 性别='男' group by 院系名称 having count(*)>10
SELECT语句的使用方式
3. 为字段设置别名 SELECT 列名1 as 新名1[,列名2 as 新名2,… 列名n as 新名n] FROM 表名 (将选择字段的标题按新的名称显示) 注意:新标题的名称可以有下列方式: 1)在列表达式后面给出列名 select xh 学号 2)用“=”来连接列表达式 select 学号 = xh 3)新标题的名称用单引号、双引号括起来; 4)用AS关键字来连接列表达式和指定的列名
4.2 SELECT语句的查询条件
6.LIKE匹配模式 LIKE匹配模式是确定条件字符串是否与指定的模式匹 配。使用格式: 条件字段 [ NOT ] LIKE 匹配模式 SQL中的有效模式包括: %:可匹配任意类型和长度的字符串。Like ‘李%’ _(下划线):可匹配任何单个字符。Like ‘71005_’ [ ]:指定范围或集合中的任何单个字符。Like [a-d] [^]:不属于指定范围或集合的任何单个字符 例如:1)查询所有姓“张”的学生信息 select * from 学生基本情况 where 姓名 like '张 %'
4.2 SELECT语句的查询条件
2.算术表达式、比较运算符 算术运算符有:+、-、*、/、% 使用算术表达式的一般形式为: expression operator expression 比较运算符:是最为常见的一种条件限制方 式,用于测试两个表达式是否相同,返回值为 True 或False。
WHERE子句中允许出现的比较运算符有: = (等于)、 > (大于)、 >= (对于等于)、 < (小于)、<=(小于等于)、<>(不等于) 、!= (不等于) 、!>(不大于)、!<(不小于)
SELECT语句
6. 限制记录的行数 在限制查询记录的行数时,可以使用下列方式: 1)使用top n : 返回前n条记录; 2)使用top n percent :返回前n%条记录; 3)使用set rowcount n:返回前n条记录。n=0关闭 例如:1)显示前5条记录 select top 5 * from 学生基本情况 2)显示20%学生的信息 select top 20 percent * from 学生基本情况 3)对所有select 语句,均显示5条记录。 set rowcount 5 select * from 学生基本情况
4.2 SELECT语句的查询条件
6.NULL搜索条件 空值比较的关键字是 IS NULL或 IS NOT NULL。其中NULL表示字段的数据未知或不确 定。格式为: 表达式 IS NULL 或 表达式IS NOT NULL 例如:查询缺少数学成绩的学生信息。 select * from 学生基本情况 where 数学成 绩 is null
数据记录的分组
使用Group By进行分组,返回的结果中,每 一行都产生聚合值。常用的聚合函数包括: Sum():返回一个数字列或计算列的总和 Avg():返回一个数字列或计算列的平均值 Min():返回一个数字列或计算列的最小值 Max():返回一个数字列或计算列的最大值 Count():返回非NULL值的记录个数 count(*):返回符合条件的记录个数