实验10 利用select语句与查询设计器查询
- 格式:doc
- 大小:149.00 KB
- 文档页数:5
实验二select语句的使用
实验目的:掌握查询语句select的使用
实验步骤:
1、启动SQL Server的企业管理器
2、打开之前建立的pubs(或其他以前建立的)数据库;
3、点击“工具”菜单,选择“查询分析器”;
4、在出现的窗口中输入以下语句:
Select * from authors
5、点击查询分析器中的“√”图标,查看语法,之后再点“”查看检索的结果;
6、删除第4步的语句输入下列语句:
Select au_lname,city from authors
7、重复第5步,查看检索结果;
8、试着使用语句查询出authors表中的前5条记录和20%的记录;
9、试着使用语句查询出authors表中state的值等于“CA”的记录;
10、试着使用语句查询出titles表中的title,type,price,advance,royalty
列,并且title列的值以字母“The”开头的记录;
11、将第10步的结果按price由高到低排序;
12、试着使用语句查询出employee和jobs表中包含fname,lname, hire_date,
job_id,min_lvl,列的所有记录,并且要求employee表中的job_id的值等于jobs 表中job_id的值;
13、将第12步的结果按job_id由低到高排序;。
select选择语句实验报告简单select语句一、实验目的1.观察查询结果, 体会SELECT语句实际应用;2.要求学生能够在查询分析器中使用SELECT语句进行简单查询。
3. 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
二、实验准备1.完成上面的实验,成功建立了基本表。
2.了解简单SELECT语句的用法。
3.比较熟悉查询分析器中的SQL脚本运行环境。
三、实验要求完成简单查询和连接查询操作,并验收实验结果提交实验报告四、实验内容:所有的查询全部用Transact-SQL语句实现1.简单查询操作此部分查询包括投影、选择条件表达、数据排序、使用临时表等。
对EDUC数据库实现以下查询:①求计算机系的学生学号和姓名;select sno,snamefrom studentwhere spno='计算机'②求选修了课程的学生学号;select snofrom student_course②求选修C1 课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列;select sno,scorefrom student_coursewhere cno='1'order by score desc,sno asc;③求选修课程C1 且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75 输出;select sno,0.75*scorefrom student_coursewhere cno='2'and(score between 80 and 90);④求计算机系和数学系的姓张的学生的信息;select*from studentwhere sname like'张%'and(spno='计算机'or spno='数学')⑤求缺少了成绩的学生的学号和课程号。
select sno,cnofrom student_coursewhere score is null⑥将2000以后的成绩大于90分的学生成绩存入永久成绩表;将2000年以前的成绩存入临时成绩表中。
一、select语句的基本语法在SQL中,select语句用于从数据库中检索数据。
它有以下基本语法:1. select子句:指定要从数据库中检索的列。
例如:SELECT column1, column2, ...FROM table_name;2. from子句:指定要检索数据的表名。
例如:SELECT column1, column2, ...FROM table_name;3. where子句:指定检索数据的条件。
例如:SELECT column1, column2, ...FROM table_nameWHERE condition;4. order by子句:指定检索数据的排序方式。
例如:SELECT column1, column2, ...FROM table_nameORDER BY column1;二、查询条件表示方法在select语句中,可以使用不同的查询条件来指定要检索的数据。
常见的查询条件表示方法有以下几种:1. 等于:使用等号表示要检索的数据等于指定的值。
例如:SELECT column1, column2, ...FROM table_nameWHERE column1 = value;2. 不等于:使用不等号表示要检索的数据不等于指定的值。
例如:SELECT column1, column2, ...FROM table_nameWHERE column1 != value;3. 大于/小于:使用大于号或小于号表示要检索的数据大于或小于指定的值。
例如:SELECT column1, column2, ...FROM table_nameWHERE column1 > value;4. 区间:使用between和and表示要检索的数据在指定的区间内。
例如:SELECT column1, column2, ...FROM table_nameWHERE column1 BETWEEN value1 AND value2;5. 空值:使用IS NULL或IS NOT NULL来检索空值或非空值的数据。
一、实验目的1. 熟悉数据库查询的基本概念和操作方法。
2. 掌握SQL语言中SELECT语句的使用,包括基本查询、条件查询、排序查询、分组查询和子查询等。
3. 提高数据库查询的实际操作能力,为后续课程学习和实践打下基础。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 数据库:实验数据库(包含学生信息、课程信息、成绩信息等)三、实验步骤1. 登录数据库管理系统打开MySQL命令行客户端,输入用户名和密码登录数据库管理系统。
2. 创建实验数据库在MySQL命令行客户端中,创建一个名为“实验数据库”的数据库。
```sqlCREATE DATABASE 实验数据库;```3. 创建数据表在“实验数据库”中,创建以下数据表:(1)学生信息表(student)```sqlCREATE TABLE student (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,gender VARCHAR(10),class_id INT);```(2)课程信息表(course)```sqlCREATE TABLE course (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),credit INT);```(3)成绩信息表(score)```sqlCREATE TABLE score (id INT PRIMARY KEY AUTO_INCREMENT,student_id INT,course_id INT,score INT,FOREIGN KEY (student_id) REFERENCES student(id), FOREIGN KEY (course_id) REFERENCES course(id) );```4. 插入数据向数据表中插入一些数据,以供查询使用。
如何使用SELECT语句从MySQL表中检索数据如何使用 SELECT 语句从 MySQL 表中检索数据MySQL 是一种开源的关系型数据库管理系统,广泛应用于互联网行业和其他大规模数据库应用中。
在 MySQL 中,使用 SELECT 语句可以从表中检索数据。
本文将介绍如何使用 SELECT 语句从 MySQL 表中检索数据,并探讨一些常见的查询技巧和最佳实践。
1. 基本的 SELECT 语句SELECT 语句是 MySQL 中最常用的语句之一,用于从表中选择指定的列或所有列。
其基本语法如下:```SELECT column1, column2, ... FROM table_name;```其中,column1、column2 是表中的列名,table_name 是要查询的表名。
如果想选择所有列,可以使用通配符 `*`。
例如:```SELECT * FROM employees;```上述语句将返回 `employees` 表中的所有列。
2. 指定检索条件除了选择要检索的列,SELECT 语句还可以用来指定检索条件。
通过 WHERE 子句可以筛选出满足特定条件的行。
例如,我们可以使用以下语句选择`employees` 表中工资大于 5000 的员工:```SELECT * FROM employees WHERE salary > 5000;```WHERE 子句可以使用比较运算符(如 >、<、=)和逻辑运算符(如 AND、OR)来指定多个条件。
3. 排序检索结果如果希望按照某一列的值进行升序或降序排序,可以使用 ORDER BY 子句。
例如,以下语句将按照工资的降序排列返回 `employees` 表中的记录:```SELECT * FROM employees ORDER BY salary DESC;```除了单个列的排序,也可以指定多个列进行排序,以实现更精确的排序要求。
内蒙古工业大学信息工程学院实验报告课程名称:数据库应用实验名称:数据库的查询实验类型:验证性□ 综合性□ 设计性□实验室名称:班级:学号:姓名:组别:同组人:成绩:实验日期:预习报告成绩:指导教师审核(签名):年月日预习报告一、实验目的1.掌握SELECT语句的基本语法;2.掌握子查询的表示;3.掌握连接查询的表示;4.掌握数据汇总的方法;5.掌握SELECT语句的GROUP BY子句的作用和使用方法;6.掌握SELECT语句的ORDER BY子句的作用和使用方法。
二、实验内容1.SELECT语句的基本使用(1)对于实验1给出的数据库表结构,查询每个雇员的所有数据。
在查询分析器的窗口输入如下的语句并执行:USE YGGLSEIECT *FROM EmployeesGO【思考与练习】用SELECT语句查询Departments和Salary表的所有记录。
(2)查询每个雇员的地址和电话。
在查询分析器的窗口输入如下的语句并执行:USE YGGLSELECT Address,PhoneNumberFROM EmployeesGO【思考与练习】用SELECT语句查询Departments和Salary表的一列或若干列。
(3)查询EmployeeID为000001的雇员的地址和电话。
在查询分析器的窗口输入如下的语句并执行:USE YGGLSELECT Address,PhoneNumber 7FROM EmployeesWHERE EmployeelD=’000001’GO【思考与练习】用SELECT语句查询Departments和Salary表中满足指定条件的1列或若干列。
(4)查询Employees表中女雇员的地址和电话,使用AS子句将结果中各列的标题分别指定为地址、电话。
在查询分析器的窗口输入如下的语句并执行:USE YGGLSELECT Address AS地址.PhoneNumber AS电话FROM EmployeesWHERE sex=0Go注意:使用AS子句可指定目标列的标题。
一、实验实训目的1. 理解数据库技术的概念、原理和方法。
2. 掌握数据库设计、创建、管理和维护的基本技能。
3. 熟悉数据库查询语言SQL的使用。
4. 学会使用数据库开发工具进行数据库应用系统的开发。
二、实验实训内容1. 数据库设计- 实验内容:设计一个简单的学生信息数据库,包括学生表、课程表、成绩表等。
- 实验步骤:1) 使用E-R图工具绘制数据库概念结构图。
2) 将E-R图转换为关系模式,确定实体、属性和关系。
3) 使用数据库设计工具(如PowerDesigner)创建数据库结构。
4) 在数据库中创建表,并设置主键、外键等约束。
2. 数据库创建与维护- 实验内容:创建一个学生信息数据库,并对其进行基本维护操作。
- 实验步骤:1) 使用SQL语句创建学生信息数据库。
2) 使用SQL语句创建学生表、课程表、成绩表等。
3) 使用SQL语句插入、删除、修改和查询数据。
4) 使用SQL语句进行数据库备份和恢复。
3. 数据库查询- 实验内容:使用SQL查询语言对学生信息数据库进行查询操作。
- 实验步骤:1) 使用SELECT语句进行简单查询,如查询学生姓名和年龄。
2) 使用WHERE子句进行条件查询,如查询成绩在80分以上的学生。
3) 使用JOIN语句进行多表查询,如查询学生的姓名、课程名称和成绩。
4) 使用ORDER BY子句进行排序,如按成绩降序查询学生。
4. 数据库编程- 实验内容:使用Transact-SQL编程语言编写存储过程和触发器。
- 实验步骤:1) 创建一个存储过程,实现学生信息的插入、删除和修改。
2) 创建一个触发器,当学生信息表中的数据发生变化时,自动更新其他相关表的数据。
5. 数据库应用系统开发- 实验内容:使用数据库开发工具(如Visual Studio)开发一个简单的学生信息管理系统。
- 实验步骤:1) 使用数据库连接控件连接到数据库。
2) 使用数据绑定控件显示数据库中的数据。
3) 使用事件驱动编程实现数据的新增、修改、删除和查询等功能。
实验题目:sql查询——简单查询【实验目的与要求】一、实验目的1. 熟练掌握单表查询的select语法结构;2. 通过观察查询结果, 体会select语句的实际应用。
二、实验要求1.实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作。
2.能认真独立完成实验内容。
3.实验后做好实验总结,根据实验情况完成实验报告。
【实验环境】pc机、windows xp系统+sql server 2005 【实验内容】基于实验一建立的educ 数据库,用transact-sql 语句实现如下查询:1.选修了课程的学生学号;2.计算机系的学生;3.计算机系学生的学号和姓名;4.计算机系和信息系的男生信息;(提示:逻辑运算符的优先级顺序)5.选修上课编号为1且成绩在80-90 之间的学生学号和成绩,并将成绩乘以系数0.75输出;(提示:新输出项要命名列标题)6.没有成绩的学生的学号和上课编号;7.选修上课编号为1或4的学生的学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同则按学号的升序排列;(提示:查询输出哪几项)8.1995年1月1日(含)以后出生的学生信息,并按姓氏拼音字母顺序从前往后排列(注:默认排序规则通常是chinese_prc_ci_as,汉字按照汉语拼音的字典顺序来排序:首先按拼音,拼音相同按声调,声调相同按笔画数。
)9.姓李和刘的学生的信息;10.不姓张王李刘的学生的学号、姓名和性别;11.选修课程的学生人数;12.选修上课编号为1的学生的最高分;13.每位学生所修课程的平均分;14.选修两门以上课程的学生;15.总成绩大于200 分的学生的学号和总成绩。
(提示:group by分组统计)【实验方法和步骤】1.新建查询,在查询编辑器中依次按照如上实验内容编写select语句完成查询。
2.每执行一条查询语句,在查询结果网格中查看执行结果是否正确。
【实验结果】select distinct sno from student_course select * from student where dno = 计算机select sno,sname from student where dno = 计算机select * from studentwhere sex =男 and dno in(计算机,信息) select sno,0.75*score as 成绩from student_course where tcid =1 and score between80 and 90select sno,score from student where (tcid=1 or tcid=4) order by score desc,sno select *from student where birthday>=1995-1-1order by sname asc select *from student where sname like[李刘]% select sno,sname,sex from student where sname like[^张王李刘]% select count(distinct sno)as 选课人数from student_course select max(score) as 最高分from student_course where tcid=1 select sno,avg(score)as 平均分from student_course group by sno select sno,count(distinct tcid)as 选课门数from student_course group by snohaving count(tcid)>2 select sno,sum(score)as 总成绩from student_course group by sno havingsum(score)>=200 order by 总成绩desc 【实验体会】利用select语句可以实现对已有表中数据的查询的。
实验五---SELECT数据查询实验五、SELECT 数据查询一、实验目的要求学生熟练使用T-SQL语句进行数据查询,掌握SELECT语句的基本结构和多表连接查询、子查询、分组查询、查询结果的排序等操作。
二、实验内容(1)利用SELECT查询语句进行单表、多表查询设计。
(2)利用SELECT语句进行子查询和外连接查询.(3)设计ORDER BY查询子句以及带有GROUP BY 的查询子句。
三、实验指导1、SELECT 基本语句格式SELECT查询的基本语句包含要返回的列、要选择的行、放置行的顺序和将信息分组的规范,其语句格式如下:2、简单查询实验利用T-SQL语句在JXGL数据库中实现简单查询操作:(1)查询数学系(MA)学生的学号和姓名。
(2)查询选修了课程的学生的学号(3)查询选修了课程号为“C2”的学生的学号和成绩,并对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)查询选修了课程为“C2”的成绩在80到90分之间的学生的学号和成绩,并将成绩乘以0.8输出。
(5)查询数学系(MA)或计算机科学系(CS)中张的学生信息(6)查询缺少了成绩的学生学号和课程号3、连接查询实验利用T-SQL语句在JXGL数据库中实现下列连接查询:(1)查询每个学生的情况以及他(她)所选修的课程(2)查询学生的学号、姓名、选修的课程名及成绩(3)查询选修“离散数学”课程且成绩为90分以上的学号、姓名及成绩。
(4) 查询每一门课的间接先修课(即先修课的先修课)4、嵌套查询利用T-SQL语句在JXGL数据库中实现下列嵌套查询操作:(1)查询选修了“离散数学”的学生的学号和姓名。
(2)查询课程号为“C2”、成绩高于张林的学生的学号和成绩(3)查询其他系中年龄小于计算机科学系(cs)中年龄最大者的学生(4)查询其他系中比计算机科学系(cs)中学生年龄都小的学生(5)查询和“王洪敏”的“数据库原理及应用”课程分数相同的学生的学号。
广州XX学院数据库实验报告专业班级计算机181 实验日期2020.4.30 姓名李XX 学号2018X实验名称SELECT数据查询指导教师王X一、实验目的要求学生熟练掌握运用T-SQL语句进行数据查询,掌握SELECT语句的剧本结构和多表连接查询、子查询、统计函数的应用、分组查询、查询结果的排序操作。
二、实验设备及器材Windows平台和SQL server 2012。
三、实验内容1)利用SELECT语句进行单表查询。
2)利用SELECT语句进行子查询和连接查询。
3)利用SELECT语句进行组合和统计查询。
四、实验步骤1.在学生管理数据库EDUC中完成以下查询操作。
(1)简单查询①查询选修了课程的学生号,代码如下:USE EDUCSELECT snoFROM SC②查询选修C1课程的学生的学号和成绩,并对查询结果按成绩降序排列,如果成绩相同,则按学号升序排列。
USE EDUCSELECT sno,scoreFROM SCWHERE cno='C1'ORDER BY score DESC,sno ASC③查询选修了课程C1且成绩在80~90的学生的学号和成绩,并成绩乘以系数0.75输出。
USE EDUCSELECT sno,score*0.75FROM SCWHERE cno='C1'AND score BETWEEN 80 AND 90④查询计算机科学系(CS)和数学系(MA)中姓张的老师的信息。
USE EDUCSELECT*FROM TeacherWHERE dno in('CS','MA')AND tname LIKE'张'⑤查询2013年8月15日上午8点在11#1605教室上课的教师的编号和班级号。
USE EDUCSELECT tno,classnoFROM TCWHERE schoolyear='2013'AND classtime='8-15-8:00'AND classroom='11#1605'⑥查询所有男教授教师的信息。
select语句的基本用法总结
嘿,朋友!你知道吗,在数据库的世界里,select 语句就像是一把神奇的钥匙,能帮我们打开数据宝库的大门!
比如说,你想要从一个包含众多学生信息的表格里,找出所有成绩在 90 分以上的同学,这时候 select 语句就派上用场啦!它能像一个超级侦探一样,精准地把你想要的信息给揪出来。
select 语句的基本语法就像是搭积木一样,简单又有趣。
它通常是这样的:“SELECT 列名 FROM 表名” 。
这就好比你去超市买东西,先告诉售货员你想要啥(列名),然后再说从哪个货架上拿(表名)。
你想想,如果不告诉数据库你想要哪些列的数据,那不就像在大海里捞针,完全摸不着头脑嘛?
再比如说,你只想获取特定条件下的数据,比如只想要年龄大于 20 岁的人的信息,那就可以在后面加上“WHERE 条件”。
这就好像是给你的搜索加上了一个精准的过滤器,把不符合条件的统统筛掉!
而且啊,select 语句还能进行排序呢!用“ORDER BY 列名”就能让数据按照你指定的顺序排列,这不就跟整理书架一样,想让书按照作者名字排或者出版年份排,随你心意!
怎么样,是不是觉得 select 语句超级厉害?
在我看来呀,掌握好 select 语句,就等于掌握了在数据库世界里畅游的重要技能,能让我们轻松获取所需的数据,解决各种问题!。
实实验验44 S S Q Q L L 语语言言————S S E E L L E E C C T T 查查询询操操作作 实验示例实验示例中要使用包括如下三个表的“教学管理”数据库JXGL :(1)学生表Student ,由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记作:Student(Sno,Sname,Ssex,Sage,Sdept),其中主码为Sno 。
(2)课程表Course ,由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记作:Course(Cno,Cname,Cpno,Ccredit),其中主码为Cno 。
(3)学生选课SC ,由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记作:SC(Sno,Cno,Grade),其中主码为(SNO,CNO)。
1、在SQL SERVER 查询分析器或企业管理器(以具有相应操作权限的某用户登录)的SQL 操作窗口中执行如下命令创建数据库。
需要说明的是不同数据库系统其创建数据库的命令或方式有所不同。
CREATE DATABASE JXGL2、刷新数据库目录后,选择新出现的JXGL 数据库,在SQL 操作窗口中,创建Student 、SC 、Course 三表及表记录插入命令如下:Create Table Student( Sno CHAR(5) NOT NULL PRIMARY KEY(Sno),Sname VARCHAR(20),Sage SMALLINT CHECK(Sage>=15 AND Sage<=45),Ssex CHAR(2) DEFAULT '男' CHECK (Ssex='男' OR Ssex='女'),Sdept CHAR(2));Create Table Course( Cno CHAR(2) NOT NULL PRIMARY KEY(Cno),Cname VARCHAR(20),Cpno CHAR(2),Ccredit SMALLINT);Create Table SC( Sno CHAR(5) NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES Student(Sno), Cno CHAR(2) NOT NULL,Grade SMALLINT CHECK ((Grade IS NULL) OR (Grade BETWEEN 0 AND 100)), PRIMARY KEY(Sno,Cno),FOREIGN KEY(Cno) REFERENCES Course(Cno));INSERT INTO Student VALUES('98001','钱横',18,'男','CS');INSERT INTO Student VALUES('98002','王林',19,'女','CS');INSERT INTO Student VALUES('98003','李民',20,'男','IS');INSERT INTO Student VALUES('98004','赵三',16,'女','MA');INSERT INTO Course VALUES('1','数据库系统', '5',4);INSERT INTO Course VALUES('2','数学分析',null ,2);INSERT INTO Course VALUES('3','信息系统导论','1',3);INSERT INTO Course VALUES('4','操作系统原理','6',3);INSERT INTO Course VALUES('5','数据结构','7',4);INSERT INTO Course VALUES('6','数据处理基础',null,4);INSERT INTO Course VALUES('7','C语言','6',3);INSERT INTO SC VALUES('98001','1',87);INSERT INTO SC VALUES('98001','2',67);INSERT INTO SC VALUES('98001','3',90);INSERT INTO SC VALUES('98002','2',95);INSERT INTO SC VALUES('98002','3',88);[例1] 查考试成绩大于等于90的学生的学号。
实验10 利用SELECT语句与查询设计器查询实验目的1、掌握Visual FoxPro的数据查询方法和功能2、利用查询向导建立查询文件3、利用查询设计器建立查询文件4、掌握查询文件的打开和运行方法5、了解SQL语言6、利用SELECT语句进行查询实验内容利用以前所掌握的建立数据库的方法建立数据库“客房.dbc”,其中包括两个数据表“客户信息.dbf”、“房间供需情况.dbf”,如图10-1、10-2所示。
按照要求建立查询文件,掌握不同的数据查询方法。
图10-1客户信息.dbf图10-2房间供需情况.dbf一、利用查询向导建立查询文件以数据库“客房.dbc”为基础, 请你利用查询向导建立查询文件,要求查询所有房间男性宾客的客房级别、住房天数和结算费用,以结算费用排序。
开始查询前,应首先打开包含所需表的数据库。
在文件菜单中选择“新建”命令,在弹出的对话框中选择“查询”按钮,然后单击“向导”按钮,在“向导选取”中选择“查询向导”。
下面我们按照向导的指引来完成此次查询。
●步骤1:字段选取选取“房间供需情况”,单击将“客房级别”添加到可用字段中,选取“客户信息”将“房号”、“住房天数”、“结算费用”添加到可用字段中,单击“下一步”。
●步骤2:为表建立关系单击“添加”按钮,选取系统默认的关系。
●步骤2a:字段选取单击“下一步”按钮,系统默认所有匹配的记录。
●步骤3:筛选记录筛选条件如图10-3,单击“下一步”按钮。
图10-3●步骤4:排序记录选择“结算费用”字段,单击“下一步”按钮。
●步骤4a:限制记录我们不限制记录,只需单击“下一步”。
●步骤5:完成至此已完成查询,可单击“预览”察看结果是否符合要求。
如不符合,单击“上一步”按钮进行修改。
选择了“保存查询”后,保存此次查询的结果为“查询1.qpr”,向导的全部工作即告完成。
以后可以在查询设计器中打开、运行或修改它。
查询结果如图10-4所示。
图10-4二、用查询设计器建立查询文件以表“客户信息.dbf”为基础,请你利用查询设计器建立查询文件,查询结算费用在1000元以上的12月份以后离店的纪录,以性别排序,查询结果只包含房号、性别、住房天数、离店日期、结算费用字段。
实验六SQL语言数据查询语言DQL一、实验内容了解SQL语言的SELECT语句对数据的查询,学会在Navicat for MySQL中用SELECT 语句对表中的数据进行简单查询、连接查询、嵌套查询和组合查询。
启动Navicat for MySQL,用SELECT语句进行简单查询操作,具体实验步骤如下:(实验步骤里的内容)1启动Navicat for MySQL,登录到本地数据库服务器后,连接到test数据库上。
用Create Table建立Student表、Course表和Choose表:2.用INSERT语句分别向Student表中插入3个元组、Course表中插入3个元组、Choose表中插入7个元组:3.用SELECT语句,查询计算机学院学生的学号和姓名。
4.用SELECT语句的between…and…表示查询条件,查询年龄在20~23岁的学生信息。
5.用SELECT语句的COUNT()聚集函数,统计Student表中学生总人数。
6.分别用SELECT语句的max()、min()、sum()、avg()四个聚集函数,计算Choose表中C1课程的最高分、最低分、总分、平均分。
7.用SELECT语句对空值(NULL)的判断条件,查询Course表中先修课称编号为空值的课程编号和课程名称。
8.用SELECT语句的连接查询,查询学生的学号、姓名、选修的课程名及成绩。
9.用SELECT的存在量词EXISTS,查询与“张三”在同一个学院学习的学生信息。
10.用SELECT语句的嵌套查询,查询选修C1课程的成绩低于“张三”的学生的学号和成绩。
11.用SELECT语句的组合查询(UNION),查询选修了C1课程或者选修了C3课程的学生学号。
12.用SELECT语句的组合查询(UNION)与DISTINCT短语,查询选修了C1课程或者选修了C3课程的学生学号,并取消重复的数据。
二、遇到的问题及解决该实验中,由于对SQL中语句的不熟悉,多次导致了输入错误,得不到实验结果,对存在量词EXISTS陌生,不熟悉,导致实验步骤中的13小题无法根据题目要求完成,要对书本上的知识加以熟悉。
实验10 利用SELECT语句与查询设计器
查询
实验目的
1、掌握Visual FoxPro的数据查询方法和功能
2、利用查询向导建立查询文件
3、利用查询设计器建立查询文件
4、掌握查询文件的打开和运行方法
5、了解SQL语言
6、利用SELECT语句进行查询
实验内容
利用以前所掌握的建立数据库的方法建立数据库“客房.dbc”,其中包括两个数据表“客户信息.dbf”、“房间供需情况.dbf”,如图10-1、10-2所示。
按照要求建立查询文件,掌握不同的数据查询方法。
图10-1客户信息.dbf
图10-2房间供需情况.dbf
一、利用查询向导建立查询文件
以数据库“客房.dbc”为基础, 请你利用查询向导建立查询文件,要求查询所有房间男性宾客的客房级别、住房天数和结算费用,以结算费用排序。
开始查询前,应首先打开包含所需表的数据库。
在文件菜单中选择“新建”命令,在弹出的对话框中选择“查询”按钮,然后单击“向导”按钮,在“向导选取”中选择“查询向导”。
下面我们按照向导的指引来完成此次查询。
●步骤1:字段选取
选取“房间供需情况”,单击将“客房级别”添加到可用字段中,选取“客户信息”将“房号”、“住房天数”、“结算费用”添加到可用字段中,单击“下一步”。
●步骤2:为表建立关系
单击“添加”按钮,选取系统默认的关系。
●步骤2a:字段选取
单击“下一步”按钮,系统默认所有匹配的记录。
●步骤3:筛选记录
筛选条件如图10-3,单击“下一步”按钮。
图10-3
●步骤4:排序记录
选择“结算费用”字段,单击“下一步”按钮。
●步骤4a:限制记录
我们不限制记录,只需单击“下一步”。
●步骤5:完成
至此已完成查询,可单击“预览”察看结果是否符合要求。
如不符合,单击“上一步”按钮进行修改。
选择了“保存查询”后,保存此次查询的结果为“查询1.qpr”,向导的全部工作即告完成。
以后可以在查询设计器中打开、运行或修改它。
查询结果如图10-4所示。
图10-4
二、用查询设计器建立查询文件
以表“客户信息.dbf”为基础,请你利用查询设计器建立查询文件,查询结算费用在1000元以上的12月份以后离店的纪录,以性别排序,查询结果只包含房号、性别、住房天数、离店日期、结算费用字段。
1、开始查询前,应首先打开包含所需表的数据库。
在文件菜单中选择“新建”命令,在弹出的对话框中选择“查询”按钮,然后单击新建文件。
在添加表或视图窗口中选择“客户信息”,单击“添加”按钮,然后再单击“关闭”按钮。
观察Visual FoxPro窗口菜单的变化,在查询设计器窗口中,设定查询文件的属性,需要设定的选项卡如下:
(1)“字段”选项卡:选定在查询文件中显示的字段。
图10-5“字段”选项卡
(2)“筛选”选项卡:设定查询的筛选条件。
图10-6“筛选”选项卡
(3)“排序依据”选项卡:设定查询结果按照哪些字段的值作为排序依据。
图10-7“排序依据”选项卡
2、在“查询”菜单中选择“运行查询”,观察此次查询的结果,是否达到查询要求。
然后关闭查需窗口,保存此次查询的结果为“查询2.qpr”如图10-8所示。
图10-8 查询结果窗口
三、利用查询设计器修改由向导建立的文件
利用查询设计器修改“查询1.qpr”,按客房级别字段分组,查询每个级别客房的总结算费用和平均住房天数,以客房级别升序排序。
预览查询结果如图10-9所示。
图10-9
注意:该查询用到了“字段”选项卡中的“函数和表达式”文本框,点击右边的按钮,弹出“表达式生成器”窗口,在“数学”列表框中选择函数AVG(),然后在“字段”列表框中选择字段“住房天数”,单击“确定”按钮。
在“字段”选项卡中单击“添加”按钮击,将新创建的字段加到“选定字段”列表框。
你的预览结果是否达到了要求?为什么?如果没达到要求,继续修改,主要原因记录下来。
四、利用SELECT语句进行查询
在命令窗口中利用SELECT语句建立查询文件。
我们可以通过查询菜单中的“SQL语句”打开由查询设计器构造的SELECT-SQL语句文件,复制到命令窗口中,也可在命令窗口中直接键入。
1、从“客户信息.dbf”中选择字段,条件是住房天数在5天以上,以房号排序。
SELECT*;
FROM 客房!客户信息;
WHERE 客户信息.住房天数>=5;
ORDER BY 客户信息.房号
2、对客房.dbc数据库中的“客户信息.dbf”和“房间供需情况.dbf”两个数据表进行连接查
询。
条件是2003年11月份入住A级客房的女性宾客,保留字段“房号”、“姓名”、“住店日期”。
要求写出SELECT语句,并在命令窗口中运行。
思考与练习
1、总结一下建立查询和运行查询各有几种不同方法?查询向导是否能完成查询设计器的所有
功能?
2、SELECT语句的基本形式是什么?编写一个SELECT查询,应用你所掌握的所有SELECT子句。