练习1-1:使用SQL SELECT语句检索数据(续) 如果您要接受更多的挑战,请完成下面的练习: 1O)为了了解EMPLOYEES表中的数据,请创建一个查询来显示该表中的所有数据。 用逗号分隔输出中的每一列。将该列标题命名为“THE OUTPUT”。 图THE.OUTPUT 1 200Jennifer,WhalenJWHALEN,515.123.4444,AD_ASST,101,17-SEP-87,4400.10 2201,Michael,Hartstein,MHARTSTE.515.123.5555,MK_MAN,100,17-FEB-96,13000.20 3202,Pat,Fay,PFAY,603.123.6666,MK_REP,201,17-AUC-97,600020 4 205,Shelley,Higgins,SHIGGINS,515.123.8080,AC_MGR,101,07-JUN-94,12000,110 5206,William,Giet2,WG1ETZ,515.123.8181,AC_ACC0UNT,205,07-JuN-94,8300,110 19176 Jonathon,,TaylorJTAY10R,011.44.1644.429265,5A_REP,149,24-MAR-98,8600.2,80 20178,Kimberely,,Grant,,KGRANT,011.44.1644.429263,5A_REP,149,24-MAY-99,7000,15 Oracle Database11g:SQL基a础1A-16
练习 1-1:使用 SQL SELECT 语句检索数据(续) Oracle Database 11g:SQL 基础 I A-16 如果您要接受更多的挑战,请完成下面的练习: 10) 为了了解 EMPLOYEES 表中的数据,请创建一个查询来显示该表中的所有数据。 用逗号分隔输出中的每一列。将该列标题命名为“THE_OUTPUT”。 …
练习解答1-1:使用SQL SELECT语句检索数据 第1部分 测试您的知识: 1)下面的SELECT语句能够成功执行: SELECT last_name,job_id,salary AS Sal FROM employees; 对/错 2)下面的SELECT语句能够成功执行: FROM job_grades; 对/错 3)下面的语句中有四处编码错误。是否能将其标识出来? SELECT w*12 A ployees ·EMPLOYEES表并不包含名为Sal的列。该列名为SALARY。 ·乘法运算符为*,而不是第2行显示的x。 ·ANNUAL SALARY别名不能包括空格。该别名应为ANNUAL SALARY或者 放在双引号中。 ·LAST NAME列后缺少一个逗号。 0 racle Database11g:sQL基础A-17
Oracle Database 11g:SQL 基础 I A-17 练习解答 1-1:使用 SQL SELECT 语句检索数据 第 1 部分 测试您的知识: 1) 下面的 SELECT 语句能够成功执行: SELECT last_name, job_id, salary AS Sal FROM employees; 对/错 2) 下面的 SELECT 语句能够成功执行: SELECT * FROM job_grades; 对/错 3) 下面的语句中有四处编码错误。是否能将其标识出来? SELECT employee_id, last_name sal x 12 ANNUAL SALARY FROM employees; EMPLOYEES 表并不包含名为 sal 的列。该列名为 SALARY。 乘法运算符为 *,而不是第 2 行显示的 x。 ANNUAL SALARY 别名不能包括空格。该别名应为 ANNUAL_SALARY 或者 放在双引号中。 LAST_NAME 列后缺少一个逗号
练习解答1-1:使用SQL SELECT语句检索数据(续) 第2部分 您是Acme Corporation的一名SQL程序员。您的第一个任务是根据人力资源表中 的数据创建一些报表。 4)您的第一个任务是确定DEPARTMENTS表的结构及其内容。 a.要确定DEPARTMENTS表结构,请使用以下查询: DESCRIBE departments b.要查看包含在DEPARTMENTS表中的数据,请使用以下查询: SELECT★ FROM departments; 5)确定EMPLOYEES表的结构, DESCRIBE employees HR部门需要一个查询,用于显示每位员工的姓氏、职务D、聘用日期和员工 ID,而且希望首先显示员工ID。请为HIRE DATE列提供一个别名 STARTDATE。将您的SQL语句保存到名为1ab_0105.sq1的文件中,以便 可以将该文件发送到HR部门。 SELECT employee id,last name,job id,hire date startDate FROM employees; )测试1ab_01_05.sg1文件中的查询,确保其运行是正确的 FROM 1887 last_name,job_id,hire_date startDate 7)HR部门需要一个查询,用于显示EMPLOYEES表中所有唯一的职务D。 SELECT DISTINCT job_id FROM employees; Oracle Database11g:SQL基础1A-18
练习解答 1-1:使用 SQL SELECT 语句检索数据(续) Oracle Database 11g:SQL 基础 I A-18 第 2 部分 您是 Acme Corporation 的一名 SQL 程序员。您的第一个任务是根据人力资源表中 的数据创建一些报表。 4) 您的第一个任务是确定 DEPARTMENTS 表的结构及其内容。 a. 要确定 DEPARTMENTS 表结构,请使用以下查询: DESCRIBE departments b. 要查看包含在 DEPARTMENTS 表中的数据,请使用以下查询: SELECT * FROM departments; 5) 确定 EMPLOYEES 表的结构。 DESCRIBE employees HR 部门需要一个查询,用于显示每位员工的姓氏、职务 ID、聘用日期和员工 ID,而且希望首先显示员工 ID。请为 HIRE_DATE 列提供一个别名 STARTDATE。将您的 SQL 语句保存到名为 lab_01_05.sql 的文件中,以便 可以将该文件发送到 HR 部门。 SELECT employee_id, last_name, job_id, hire_date StartDate FROM employees; 6) 测试 lab_01_05.sql 文件中的查询,确保其运行是正确的。 SELECT employee_id, last_name, job_id, hire_date StartDate FROM employees; 7) HR 部门需要一个查询,用于显示 EMPLOYEES 表中所有唯一的职务 ID。 SELECT DISTINCT job_id FROM employees;
练习解答1-1:使用SQL SELECT语句检索数据(续) 第3部分 如果您有时间,请完成以下练习: 8)HR部门希望员工报表的列标题更具描述性。将该语句从1ab0105.sg1复制 到一个新sQL工作表中。将列标愿分别命名为“Bmp#”、“Employee' “Job”和“Hire Date'”。然后,再次运行查询。 LC opdtDateploveo job id ob",hire date FROM employees; 9)HR部门需要一个包含所有员工及其职务D的报表。以级联方式显示姓氏和 职务D(以逗号或空格分隔),并将该列命名为“Employee and Title” SELECT last FROM veeell','Iljob id "Employee and Titi 如果您要接受更多的挑战,请完成下面的练习: IO)为了了解EMPLOYEES表中的数据,请创建一个查询来显示该表中的所有数据。 用逗号分隔输出中的每一列。将该列标题命名为“THE_OUTPUT”。 SELECT employee id I,first name I,last name IT email I phone number I,'job id I1','II manager_id I','Il hire_date I', II salary II ',II commission_pct II ',II _OUTPUT FROM employees; 0 racle Database11g:sQL基础A-19
练习解答 1-1:使用 SQL SELECT 语句检索数据(续) Oracle Database 11g:SQL 基础 I A-19 第 3 部分 如果您有时间,请完成以下练习: 8) HR 部门希望员工报表的列标题更具描述性。将该语句从 lab_01_05.sql 复制 到一个新 SQL 工作表中。将列标题分别命名为“Emp #”、“Employee”、 “Job”和“Hire Date”。然后,再次运行查询。 SELECT employee_id "Emp #", last_name "Employee", job_id "Job", hire_date "Hire Date" FROM employees; 9) HR 部门需要一个包含所有员工及其职务 ID 的报表。以级联方式显示姓氏和 职务 ID(以逗号或空格分隔),并将该列命名为“Employee and Title”。 SELECT last_name||', '||job_id "Employee and Title" FROM employees; 如果您要接受更多的挑战,请完成下面的练习: 10) 为了了解 EMPLOYEES 表中的数据,请创建一个查询来显示该表中的所有数据。 用逗号分隔输出中的每一列。将该列标题命名为“THE_OUTPUT”。 SELECT employee_id || ',' || first_name || ',' || last_name || ',' || email || ',' || phone_number || ','|| job_id || ',' || manager_id || ',' || hire_date || ',' || salary || ',' || commission_pct || ',' || department_id THE_OUTPUT FROM employees;
第2课的练习 在本练习中,您将创建很多报表,其中包括使用WHERE子句和ORDER BY子句的对 帐表。通过使用&替代变量,SQL语句更易于重复使用,而且具有更高的通用性。 Oracle Database11g:SQL基础1A-20
Oracle Database 11g:SQL 基础 I A-20 第 2 课的练习 在本练习中,您将创建很多报表,其中包括使用 WHERE 子句和 ORDER BY 子句的对 帐表。通过使用 & 替代变量,SQL 语句更易于重复使用,而且具有更高的通用性