文理学院数据库应用技术实验报告4
实验名称 | 数据简单查询 | 实验日期 | 2024年10月25日 |
---|---|---|---|
课程名称 | 数据库技术应用 | 实验项目 | 数据的简单查询 |
一、实验目的
select
语句(选择指定列、选择所有列、取别名)- 带
where
条件的select
语句(算术运算符、逻辑运算符、比较运算符、范围运算符、列表运算符、like
模式匹配、null
关键字)(重点) - 排序显示(
order by
子句) - 谓词限制(
limit
关键字、distinct
关键字)
二、实验原理
select
语句:
(1) 选择指定列
select 列名1, 列名2, …… from 表名
(2) 选择所有列
select * from表名
(3) 取别名
方法一:
select列名1 as '新列名1', 列名2 as '新列名2', …… from表名
方法二:
select列名1 '新列名1', 列名2 '新列名2', …… from表名
- 带
where
条件的select
语句:
(1) 算术运算符:
+(加法) -(减法) *(乘法) /(除法) %(取余数)
(2) 逻辑运算符:
or(或) and(与) !(非)
(1) 比较运算符:
=(等于) !=(不等于) >(大于) >=(大于等于)
!>(不大于) <(小于) <=(小于等于) !<(不小于)
(2) 范围运算符:
between…and… 范围在二者之间
not between…and… 范围不在二者之间
(3) 列表运算符:
in(列表) 值在列表之内
not in(列表) 值不在列表之内
(4) Like
模式匹配:
% 有0个或多个字符
_ 单个字符
(5) null关键字
is null 空值
is not null 不空
- 排序显示(
order by
子句)
select * from 表名 order by 排序字段 asc/desc
- 谓词限制记录
(1) limit
关键字:
select * from 表名limit从0数的开始行数, 总共取多少行
(2) distinct
关键字:
select distinct * from 表名
三、实验设备、材料
安装了MySQL和navicat的主机
四、 实验步骤
请完成以下表数据查询练习:
1.找到“stumanagement”(学生成绩管理)数据库:
-
查询学生信息表中每个学生的姓名、专业和总学分。
select 姓名,专业,总学分 FROM 学生信息 ;
-
查询学生信息表中’软件技术’专业学生的姓名、专业和总学分。
SELECT 姓名, 专业, 总学分 FROM 学生信息 WHERE 专业 = '软件技术';
-
查询学生信息表中 ‘网络技术’ 专业学生的学号、姓名和总学分,结果中各列的标题分别指定为“StuID、StuName和StuScore”。
SELECT 姓名 as StuID , 专业 as StuName, 总学分 as StuScore FROM 学生信息 WHERE 专业 = '软件技术';
-
对学生信息表只查询专业,消除重复的数据行。
SELECT DISTINCT `专业` FROM 学生信息 ;
-
查询学生信息表中姓“王”且单名的学生情况。
SELECT * FROM 学生信息 WHERE 姓名 LIKE '王_';
-
查询学生信息表中在1997年出生的学生情况(使用三种方法)。
SELECT * FROM 学生信息 WHERE YEAR(生日) = 1997;#方法1 SELECT * FROM 学生信息 WHERE YEAR(NOW())-YEAR(生日)=27;#方法2 SELECT * FROM 学生信息 WHERE 生日>='1997-1--1' AND 生日<='1997-12-312';#方法3
-
查询课程信息表中第3学期所开,且学时大于60的课程信息。
SELECT * FROM 课程信息 WHERE 学期=3 and 学时>=60;
-
查询课程信息表中课程名为5个字的课程信息。
SELECT * FROM 课程信息 WHERE CHAR_LENGTH(课程名) = 5;
-
查询学生信息表中所有姓“张”,并且不在1998年出生的学生信息。
SELECT * FROM 学生信息 WHERE 姓名 LIKE '张%' AND YEAR(生日) != 1998;
-
查询学生信息表中各学生的学号、姓名和性别,对其性别按照以下规则进行替换:若性别为1,替换为“男”;若性别为0,替换为“女”。
SELECT 学号, 姓名, CASE 性别 WHEN 1 THEN '男' WHEN 0 THEN '女' ELSE '未知' END AS 性别 FROM 学生信息;
2.找到“northwind”(贸易公司)数据库:
-
查询订单表中订购日期在2014年初到2015年底之间订购的信息。
SELECT * FROM 订单 WHERE 订购日期 BETWEEN '2014-01-01' AND '2015-12-31';
-
查询员工表中是天津或昆明的人员。
SELECT * FROM 员工 WHERE 城市 = '天津' OR 城市 = '昆明';
-
查询订单明细表中订单ID不以3,5,6,7开头的订单信息。
SELECT * FROM 订单明细 WHERE 订单ID NOT LIKE '3%' AND 订单ID NOT LIKE '5%' AND 订单ID NOT LIKE '6%' AND 订单ID NOT LIKE '7%';
-
查询产品表中和“茶”有关的产品信息。
SELECT * FROM 产品 WHERE 产品名称 LIKE '%茶%';#方式1 SELECT * FROM 产品 WHERE 产品名称 REGEXP '茶';#方式2
-
查询产品表中总价(单价*库存量)最贵的5种产品,显示名称和总价值。
SELECT 产品名称, (单价 * 库存量) AS 总价值 FROM 产品 ORDER BY 总价值 DESC LIMIT 5;