SELECT \张三\李四\ #.回答问题 (1) 有哪几种方式可进入“SQL视图”?如果用“记事本”编写了SQL语句,是否可以在SQL视图中使用?如何操作? 答:有两种。进入“设计视图”后,在“查询设计”工具栏中单击第一项“SQL”按钮或是选择“视图”下的“SQL”视图。 “记事本”编写了SQL语句可以在SQL视图中使用。操作:将“记事本”中编写的SQL语句复制粘贴到SQL视图中,运行SQL语句并查看查询结果,最后保存SQL语句为查询对象。 (2)为什么不能在数字常量前加“¥”或“$”符号表示币值常量?“¥”或“$”有何作用? 答:Access事先规定了数字运算符用来对数字型或货币型数据进行运算,运算的结果也是数字型数据或货币型数据。“¥”或“$”用来表示货币的单位,在定义“货币“型字段的”格式“属性中使用。 实验项目4:使用SQL命令进行查询和操作 1.练习SQL查询的SELECT语句 按照《实验教程》实验6,练习SQL-SELECT查询,查看查询结果。 (1) SELECT * FROM ((学院 INNER JOIN 专业 ON 学院.学院编号 = 专业.学院编号) INNER JOIN 学生 ON 专业.专业编号 = 学生.专业编号); (2) SELECT 专业名称,学生.* FROM 专业 INNER JOIN 学生 ON 专业.专业编号 = 学生.专业编号 WHERE 专业.专业名称 = \工商管理\学生.性别 = \女\ (3) SELECT 学生.学号,姓名,性别 FROM 学生 INNER JOIN 项目分工 ON 学生.学号 = 项目分工.学号 WHERE 分工 = \负责人\ (4) SELECT 学号,姓名,专业名称 FROM 学生 INNER JOIN 专业 ON 学生.专业编号 = 专业.专业编号 WHERE 学号 NOT IN(SELECT 学号 FROM 项目分工); (5) SELECT 学生.学号,姓名,COUNT(*) FROM 学生 INNER JOIN 项目分工 ON 学生.学号 = 项目分工.学号 GROUP BY 学生.学号,姓名 HAVING COUNT(*)>1; (6) SELECT TOP 1 学生.学号,姓名,COUNT(*) AS 参与项目数 FROM 学生 INNER JOIN 项目分工 ON 学生.学号 = 项目分工.学号 GROUP BY 学生.学号,姓名 ORDER BY COUNT(*) DESC; (7) SELECT 项目.*,姓名 FROM (学生 INNER JOIN 项目分工 ON 学生.学号 = 项目分工.学号) INNER JOIN 项目 ON 项目.项目编号 = 项目分工.项目编号 WHERE 分工 = \负责人\项目名称 LIKE \农业*\项目名称 LIKE \农村*\ 2.练习SQL的创建表、插入、更新、删除操作语句 按照《实验教程》实验6,练习SQL的相关命令,查看结果。 (1) INSERT INTO 教师 VALUES (\杨飞\男\讲师\ (2) UPDATE 项目 SET 经费 = 经费 + 1000 WHERE 项目类别 = \校级\ (3) CREATE TABLE 已结项项目 (项目编号 TEXT(10) PRIMARY KEY,项目名称 TEXT(60) NOT NULL,指导教师工号 TEXT(8) REFERENCES 教师(工号),负责人学号 DOUBLE REFERENCES 学生(学号)); (4) INSERT INTO 已结项项目(项目编号,项目名称,指导教师工号,负责人学号) SELECT 项目.项目编号,项目名称,指导教师工号,学号 FROM 项目 INNER JOIN 项目分工 ON 项目.项目编号 = 项目分工.项目编号 WHERE 分工 = \负责人\是否结项; DELETE FROM 项目 WHERE 是否结项; 3.写出实现以下功能的SQL语句 ① 查询“专业”表,显示开设的所有专业涉及的专业类别。 SELECT DISTINCT 专业类别 FROM 专业; ② 查询各专业学生的人数。 SELECT 专业名称,COUNT(*) AS 人数 FROM 学生 INNER JOIN 专业 ON 学生.专业编号 = 专业.专业编号 GROUP BY 专业名称; ③ 统计没有参与项目的学生人数。 SELECT COUNT(*) AS 未参与项目人数 FROM 学生 WHERE (((学生.学号) Not In (SELECT 学号 FROM 项目分工))); #.回答问题 (1) 不命名保存查询,与将查询保存为查询对象有何区别?查询对象有什么作用? 答:前者查询设计没有保存,再次使用时需要重新输入命令,后者当选中相应的查询对象并打开时,可直接运行查询查看结果。 作用:①当需要查看查询结果时,直接在查询对象界面选中相应的查询对象并打开,就可以运行查询查看结果,避免了再次重新设计查询的操作。并且查询对性总是获取数据源表中最新的数据。查询能自动与源表保持同步。②查询对象可以成为其他操作的数据源。 (2) 上述实验中,插入“已结项项目”表的命令是否可以省略字段列表?为什么? 答:给表中全部字段提供数据时字段列表可以省略,系统会根据提供数据的顺序按照表中字段的顺序输入数据。 (3)删除“已结项项目”的命令的条件为什么没有比较对象? 答:项目表中的“是否结项”字段,是个逻辑值字段,也就是只有true和false两种情况。 \是否结项\就等价于\是否结项 = 1\或者\是否结项 = true\这种情况。 属于省略的写法。 实验项目5:使用交互方式进行查询和操作 1.进入查询设计视图进行交互式选择查询设置 按照《实验教程》实验7,练习可视交互方式的选择查询。查看对应的SQL命令。 (1) (2) (3) 2.进行交叉表查询 按照《实验教程》实验7,练习可视交互方式的交叉表查询。查看对应的SQL命令。