1、table_alias .*| column_name | expression | AS column_alias | column_alias = expression ,.n 1. 选择所有字段SELECT * FROM 表名 如:use pubsselect * from authors(显示authors中的所有信息,全表查询)2. 选择部分字段SELECT 列名1,列名2,列名n FROM 表名 如:use studentselect 学号,姓名,性别 from 学生基本情况(显示学生基本情况中学号,姓名,性别字段的信息)3. 为字段设置别名SELECT 列名1 as 新名1,列名
2、2 as 新名2,列名n as 新名n FROM 表名(将选择字段的标题按新的名称显示) 注意:新标题的名称可以有下列方式:1)在列表达式后面给出列名 select xh 学号2)用“=”来连接列表达式 select 学号 = xh3)新标题的名称用单引号、双引号括起来;4)用AS关键字来连接列表达式和指定的列名例如:查询authors中编号、姓名、电话、地址的信息,可 以采用以下方式:1. select au_id 编号,au_lname 姓,au_fname 名,phone 电 话,address 地址 from authors2. select 编号=au_id ,姓=au_lname
3、,名=au_fname ,电话=phone ,地址=address from authors3. select au_id 编号,au_lname 姓,au_fname 名,phone电话,address 地址 from authors4. select au_id 编号,au_lname 姓,au_fname 名,phone 电话,address 地址5. select au_id as 编号,au_lname as 姓,au_fname as名,phone as 电话,address as 地址 from authors4. 在选择列表中使用表达式在查询数据时,可以通过运算操作来控制从 一
4、个表中的返回值。查询每个学生的总成绩、平均成绩。select 学号,姓名,数学成绩+语文成绩+英语 成绩 as 总成绩,(数学成绩+语文成绩+英语成 绩)/3 as 平均成绩from 学生基本情况4. 消除字段数据的重复值在查询数据时,可能会有许多重复的数据。 SQL 提供的Distinct 关键字,可以从select 语句的结果集中消除重复的数据。1)查询学生来至哪些院系的信息。select distinct 院系名称 from 学生基本情 况2)查询有哪些专业的学生。select distinct 所学专业 from 学生基本情 况6. 限制记录的行数在限制查询记录的行数时,可以使用下列方
5、式: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 5select * from 学生基本情况1.条件子句最常用的条件子句是where 和having,用它们来 指定一系列条件,执行操作时只返回满足条件的记录。 Having 通常与Group by一起
6、使用,用来说明返回分组的条件。1)显示男生的相关信息Select * from 学生基本情况 where 性别=男2)显示男生人数超过10人的院系信息select 院系名称,count(*) as 男生人数 from 学 生基本情况 where 性别=男group by 院系名称 having count(*)102算术表达式、比较运算符算术运算符有:+、-、*、/、% 使用算术表达式的一般形式为:expression operator expression比较运算符:是最为常见的一种条件限制方 式,用于测试两个表达式是否相同,返回值为 True 或False。WHERE子句中允许出现的比较运
7、算符有:=(等于)、(大于)、=(对于等于)、(小于)、=(小于等于)、(不等于) 、!(不大于)、!(不小于)3逻辑表达式在Transact-SQL 中可以使用的逻辑运算符 有三个:NOT:逻辑反,对指定的布尔表达式求反。AND:逻辑与,只有当两个条件都是TRUE时取值为TRUE。OR:逻辑或,当两个条件中任何一个条件是TRUE时,取值为TRUE。优先顺序:先Not,再And,后 Or4BETWEEN条件BETWEEN用于搜索介于两个指定值之间的所有信 息,且包括两个指定的值。格式为:条件字段 NOT BETWEEN begin_expressionAND end_expression查询数
8、学成绩在80到90之间的信息。Select * from 学生基本情况 where 数学成绩between 80 and 90Between是AND的简化用法,上面的语句等价于:= 80 and 数学成绩=904.2 SELECT语句的查询条件4.IN 列表搜索条件IN 列表搜索条件用于返回与给定的列表中任意一 个值相匹配的记录。条件字段 NOT IN (列表选项) 例如:查询数学成绩为70、80、90的信息。 select * from 学生基本情况 where 数学成绩 in(70,80,90)In列表条件是OR的简化形式,上面语句等价于:select * from 学生基本情况 wher
9、e 数学成绩 =70 OR数学成绩 = 80 OR 数学成绩 = 906LIKE匹配模式LIKE匹配模式是确定条件字符串是否与指定的模式匹 配。使用格式:条件字段 NOT LIKE 匹配模式SQL中的有效模式包括:%:可匹配任意类型和长度的字符串。Like 李%_(下划线):可匹配任何单个字符。Like 71005_ :指定范围或集合中的任何单个字符。Like a-d:不属于指定范围或集合的任何单个字符1)查询所有姓“张”的学生信息select * from 学生基本情况 where 姓名 like 张%6NULL搜索条件空值比较的关键字是 IS NULL或 IS NOT NULL。其中NUL
10、L表示字段的数据未知或不确 定。表达式 IS NULL或 表达式IS NOT NULL 例如:查询缺少数学成绩的学生信息。 select * from 学生基本情况 where 数学成绩 is null查询示例表1. 按10%的比例显示本专业的男生信息;2. 查询“管理学院”专业分布情况;3. 查询本专业学生来自哪些省份;4. 查询英语不及格学生的信息,显示学号、姓名、专业、英语 原成绩、英语+10、英语*1.1等字段信息;5. 显示管理学院学生中,不姓“刘”和“张”的学生信息;6. 查询“数学”在65-75之间,而“英语”不在70-90之间的学生 信息;7. 查询“管理学院、能源学院、机械学
11、院、人文学院”学号在01-07之间的学生信息。8. 将学生的“学号、姓名、性别、身份证号” 作为一列、“院系 名称、专业”作为一列,各数据之间用“,”分隔;列名分别为 “基本信息”、“隶属关系”进行显示;9. 查询总成绩、=、(select avg(数学成绩) FROM学生基本情况 )1)如何查询本专业大学英语成绩=60且低 于平均分的学生信息?2)统计管理学院各专业高等数学低于平均分的人数。3)查询大学英语成绩最高分的学生信息。3)使用Exists的子查询使用Exists(或Not Exists)引入子查询时,就相 当于进行一次存在测试。外部查询的Where子句测试 子查询返回的行是否存在。
12、子查询实际上不产生任何 数据,它只返回True或False。查询成绩表中女生的学习成绩。SELECT * FROM 成绩表Where exists(select * FROM 学生基本情况where 学号=成绩表.学号 and 性别=女1)如何查询管理学院的学生成绩?2)查询本专业高等数学不及格的学生信息? 根据JBQK表、CJB表完成下列查询: 1.查询高等数学成绩高于平均成绩的学生信 息,显示学号、姓名、专业、高等数学等; 2.查询信息管理专业男生的高等数学成绩、 电子商务专业女生的高等数学成绩、能源学院 所有学生的数学成绩,显示显示学号、姓名、 性别、院系、专业、高等数学等,按院系、专
13、业排序; 3.查询与“刘文东”同专业的学生信息,显示 显示学号、姓名、专业、各门课程成绩。1 基于查询生成新的数据表如果需要将查询结果保存下来,使用INTO子 句可以生成一个新表并将结果保存在这个新的 数据表中。命令基本格式:Select 选择字段表 Into 新的表名 FROM 已有的表 where 条件 例如:1)将“学生基本情况”表复制成jbqk Select * Into jbqk from 学生基本情况2)统计各个院系英语成绩的平均分、最高分、最低分、考试人数,结果放在Eng_tj表。SELECT 学生基本情况.院系名称, AVG(成绩表.大学英语) AS 英语平均, MAX(成绩表.大学英语) AS 英语最高, MIN(成 绩表.大学英语) AS 英语最低, COUNT(*) AS 考试人数I
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1