0
点赞
收藏
分享

微信扫一扫

MySQL语句 实验7 单表条件查询

爱奔跑的读书者 2022-03-30 阅读 69

实验7 单表条件查询

一、实验目的

(1) 掌握SELECT语句的基本用法。

(2) 使用WHERE子句进行有条件的查询。

(3) 掌握使用IN和NOT IN,BETWEEN…AND和NOT BETWEEN…AND来缩小查询范围的方法。

(4) 利用LIKE子句实现字符串匹配查询。

二、实验要求

1、学生提前准备好实验报告,预习并熟悉实验步骤;

2、遵守实验室纪律,在规定的时间内完成要求的内容;

3、1~2人为1小组,实验过程中独立操作、相互学习。

三、实验内容及步骤

  1. 数据查询语句的语法结构

(1)数据查询是数据库中最常见的操作,数据查询的语法结构如下:

SELECT 子句1

FROM 子句2

[WHERE 表达式1]

[GROUP BY 子句3

[HAVING 表达式2]]

[ORDER BY 子句4]

[UNION 运算符]

[LIMIT [M,]N]

[INTO OUTFILE 输出文件名];

功能及说明如下:

  1. SELECT子句:指定结果要展现哪些列,是普通的已经存在的列还是你有特殊要求的列;
  2. FROM子句:指定从哪儿查询,表还是视图;
  3. WHERE表达式:指定查询的搜索条件,只展示你需要的行数据;
  4. GROUP BY子句:查询到的结果需要分组显示;
  5. HAVING表达式:分组后的数据不全部显示,根据条件展现部分;
  6. ORDER BY子句:指定查询结果的排序方法,升序或降序;
  7. UNION运算符:将多个SELECT语句查询结果组合为一个结果集;
  8. LIMIT [M,]N]:指定查询结果的范围,并不全部展现;
  9. INTO OUTFILE输出文件名:将查询结果输出到指定文件中;
  10. 单表条件数据查询

(1)单表条件数据查询格式如下:

SELECT [ALL|DISTINCT] <选项> [AS<显示列名>] [,<选项> [AS<显示列名>][,…]]

FROM <表名|视图名>

WHERE <条件表达式>;

 

(2)完成如下练习,将执行结果截图在下方。

==比较运算符

  1. 查询所有成绩大于80分的学生的学号和成绩;

 

  1. 查询所有男生的学号、姓名、系别及出生日期;

 

  1. 查询计算机工程系全体学生的名单;

 

  1. 查询考试成绩不及格的学生的学号;

 

==逻辑运算符

  1. 查询计算机工程系女生的信息;

 

  1. 查询成绩在90分以上或不及格的学生学号和课程号信息;

 

  1. 查询非计算机工程系的学生信息;

 

  1. 查询电子工程系的男生信息;

 

  1. 查询计算机工程系和电子工程系学生的姓名,性别和出生日期,显示列名分别为“姓名”、“性别”和“出生日期”;

 

==范围运算符

语法格式:表达式 [NOT] BETWEEN 初始值 AND 终止值

其中,NOT为可选项,初始值表示范围的下限,终止值表示范围的上限。

注意:绝对不允许初始值大于终止值!!!

  1. 查询考试成绩在60~70分的学生学号和成绩;

 

  1. 查询考试成绩小于60或者大于90的学生学号和成绩;

 

==字符匹配符

语法格式:WHERE 字段名 [NOT] LIKE '字符串' [ESCAPE '转义字符']

应用场景:需要对字符串进行模糊查询

通配符及其说明:

  • %:任意多个字符
  • _:任意一个字符

ESCAPE '转义字符'的作用是当用户要查询的字符串本身含有通配符时,可以使用该选项对通配符进行转义。

  1. 查询所有姓李的学生的个人信息;

 

  1. 查询生源地不是山东省的所有学生信息;

 

  1. 查询名字中第2个字为“阳”字的学生的姓名和学号;

 

  1. 查询学号为“2007010103”的学生姓名和性别;

 

  1. 查询课程名称里带了JAVA_的课程信息;

 

==正则表达式

语法格式:WHERE 字段名 REGEXP '操作符'

什么是正则表达式:正则表达式即一种描述字符串结构的语法规则,其作用是用于检索和替换符合某一特定规则的文本内容。

 

  1. 查询家庭住址以“济”开头的学生信息;

2.查询家庭住址以“号”结尾的学生信息;

==列表运算符

列表运算符(INNOT IN)

语法格式:WHERE  表达式 [NOT] IN 值列表

注意:值列表中不允许出现空值

  1. 查询信息工程系、软件工程系和计算机工程系学生的姓名和性别;

 

==空值查询

涉及空值的查询(NULLNOT NULL)

语法格式:WHERE 字段 IS [NOT] NULL

  1. 因为某些学生选修课程后没有参加考试,所以有选修记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号;

 

  1. 查询所有有成绩的学生学号和课程号;

 

四、思考题

1、WHERE子句中常用的运算符有哪几种?

算数 逻辑 比较

2、LIKE的通配符有哪些?分别代表什么含义?

通配符及其说明:

Ø%:任意多个字符

_:任意一个字符

3、知道学生的出生日期,如何求出其年龄?

YEAR(CURDATE())-YEAR(sbirthday)

4、IS能用“=”来代替吗?

不可以的,is是用来判断null的

  1. 数据的范围除了可以利用BETWEEN…AND运算符表示外,能否用其他方法表示?怎样表示?

select * from  sc where degree between 60 and 70 ;

select * from  sc where degree >=60 and <=70 ;

举报

相关推荐

0 条评论