
数据库系统概念原书第6版
夏商周
世事纷扰 开心就好
展开
-
第3章 SQL 习题 - 3.22、3.23、3.24
3.22 不使用unique结构,重写下面的where子句:where unique(select title from course)不使用unique的话,SQL应该如下:where 1 >= (select count(title) from course)3.23 考虑查询:select course_id, semester, year, sec_id, ...原创 2018-11-18 19:27:54 · 1564 阅读 · 1 评论 -
第3章 SQL 习题 - 3.21
3.21 考虑图3-21中的图书馆数据库。用SQL写出如下查询:member(memb_no, name, age)book(isbn, title, authors, publishers)borrowed(memb_no, isbn, date)图3-21 习题3.21的图书馆数据库为了解题方便,在数据库中创建这些关系:create table member ( ...原创 2018-11-18 18:55:36 · 4543 阅读 · 2 评论 -
第3章 SQL 习题 - 3.18、3.19、3.20
3.18 列出两个原因,说明为什么空值可能被引入到数据库中。1. 非主码属性在没有非空的限制的情况下,被插入了空值。2. 外码完整性约束中有一项是on delete set null,当外码的元组被删除时,所依赖的关系元组属性也会被置空。3. 19 证明在SQL中,<>all等价于not in。可能不够严谨的做法,做个练习也许就能证明。查找所有工资不等于Biology系...原创 2018-11-18 17:26:28 · 1096 阅读 · 0 评论 -
第3章 SQL 习题 - 3.17
3.17 考虑图3-20中的关系数据库。给出下面每个查询对应的SQL表达式:a.为“公司_1”的所有雇员增长10%的工资。 employee_name | company_name | salary ---------------+--------------+--------- 雇员_1 | 公司_1 | 8000.00 雇员_2 | 公...原创 2018-11-18 17:02:39 · 703 阅读 · 0 评论 -
第3章 SQL 习题 - 3.16
3.16 考虑图3-20中的雇员数据库,其中加下划线的是主码。给出下面每个查询对应的SQL表达式:a.找出所有为"First Bank Corporation"工作的雇员名字。数据库表的关系请参考习题3-9。根据我们的数据,现在我们找出“公司_1”的所有雇员吧。select employee_name from works where company_name = '公司_1';...原创 2018-11-18 16:48:55 · 2580 阅读 · 0 评论 -
第3章 SQL 习题 - 3.15
3.15 考虑图3-19中的银行数据库,其中加下划线的是主码。为这个关系数据库构造出如下SQL查询:a.找出在"Brooklyn"的所有支行都有账户的所有客户。这个银行数据库咱们在习题3.8中已经创建了。当时咱们创建的所有支行数据所在地都是北京。这样题目中提到的所在地咱们使用北京。这样我们先找出在北京的某个支行有账户的所有客户:select customer_name, bran...原创 2018-11-18 12:09:17 · 2469 阅读 · 0 评论 -
第3章 SQL 习题 - 3.13、3.14
3.13 写出对应于图3-18中模式的SQL DDL。在数据类型上做合理的假设,确保声明主码和外码。可以参考习题3.4.3.14 考虑图3-18中的保险公司数据库,其中加下划线的是主码。对这个关系数据库构造如下的SQL查询:a.找出和"John Smith"的车有关的交通事故数量。在做习题3.4的时候,我们插入自己的数据,基本上是一人一辆车,我们现在找出和“张三”的车有关的交通事故...原创 2018-11-18 10:52:28 · 1621 阅读 · 2 评论 -
第3章 SQL 习题 - 3.12
3.12使用大学模式,用SQL写出如下查询。a.创建一门课程"CS-001",其名称为"Weekly Seminar",学分为0.insert into course values('CS-001', 'Weekly Seminar', NULL, 0);插入失败,原因如下:ERROR: new row for relation "course" violates check...原创 2018-11-18 10:27:32 · 3418 阅读 · 0 评论 -
第3章 SQL 习题 - 3.11
3.11使用大学模式,用SQL写出如下查询。a.找出所有至少选修了一门Comp. Sci. 课程的学生姓名,保证结果中没有重复的姓名。with target_course(id, title) as ( select course_id, title from course where dept_name = 'Comp. Sci.')select distinct name fr...原创 2018-11-17 12:01:36 · 5543 阅读 · 0 评论 -
第3章 SQL 习题 - 3.10
3.10 考虑3.9中的关系数据库,给出下面每个查询的SQL表达式:a.修改数据库使'Jones'现在居住在'Newtown'市。update employee set city = 'Newtown' where employee_name = 'Jones';b.为'公司_1'所有工资不超过100000美元的经理增长10%的工资,对工资超过100000美元的只增长3%。先看看...原创 2018-11-16 11:51:34 · 749 阅读 · 0 评论 -
第3章 SQL 习题 - 3.9
3.9 考虑下图所示的雇员数据库,其中加下划线的是主码。为下面每个查询写出SQL表达式:employee(employee_name, street, city)works(employee_name, company_name, salary)company(company_name, city)managers(employee_name, manager_name) ...原创 2018-11-16 11:31:27 · 2375 阅读 · 0 评论 -
第3章 SQL 习题 - 3.8
3.8考虑下图中的银行数据库,其中加下划线的是主码。为这个关系数据库构造出如下SQL查询:branch(branch_name, branch_city, assets)customer(customer_name, customer_street, customer_city)loan(loan_number, branch_name, amount)borrower(customer...原创 2018-11-15 17:39:17 · 1768 阅读 · 0 评论 -
第3章 SQL 习题 - 3.7
3.7 考虑SQL查询select distinct p.a1from p, r1, r2where p.a1 = r1.a1 or p.a1 = r2.a1;在什么条件下这个查询选择的p.a1值要么在r1中,要么在r2中?仔细考察r1或r2可能为空的情况。个人觉得1. r1和r2之间不存在r1.a1=r2.a1的情况,即r1和r2中a1的集合不存在交集的情况;2. p的...原创 2018-11-15 12:01:10 · 411 阅读 · 0 评论 -
第3章 SQL 习题 - 3.6
3.6 SQL的like运算符是大小写敏感的,但字符串上的lower()函数可用来实现大小写不敏感的匹配。为了说明是怎么用的,写出这样一个查询:找出名称中包含了"sci"子串的系,忽略大小写。select * from department where lower(dept_name) like '%sci%'; dept_name | building | budget -...原创 2018-11-15 11:44:46 · 356 阅读 · 0 评论 -
第3章 SQL 习题 - 3.5
假设有关系marks(ID,score),我们希望基于如下标准为学生评定等级:如果score < 40 得F;如果40<=score<60得C;如果60<=score<80得B;如果80<=score得A。写出SQL查询完成下列操作:为了学生操作,首先创建关系:create table marks( ID varchar not null, sco...原创 2018-11-15 11:38:50 · 2935 阅读 · 2 评论 -
第3章 SQL 习题 - 3.4
3.4考虑图3-18中的保险公司数据库,其中加下划线的是主码。为这个关系数据库构造出如下SQL查询:person(driver_id, name, address)car(licence, model, year)accident(report_number, date, location)owns(driver_id, license)participated(report_...原创 2018-11-11 16:10:29 · 1721 阅读 · 0 评论 -
第3章 SQL 习题 - 3.3
3.3 使用大学模式,用SQL写出如下插入、删除和更新语句。a.给Comp. Sci.系的每位教师涨10%工资。先找出现Comp. Sci. 系的每位教师的工资情况。现在执行更新,并检索出新的工资情况:b.删除所有未开设过(即没有出现在section关系中)的课程。为了验证结果,先找出section中所有的课程,再找出未开设过的课程:确实"BIO-399...原创 2018-11-11 12:56:46 · 1604 阅读 · 0 评论 -
第3章 SQL 习题 - 3.2
3.2 假设给你一个关系grade_points(grade, points),它提供从takes关系中用字母表示的成绩等级到数字表示的得分之间的转换。例如,‘A’等级可指定为对应于4分,‘A-’对应于3.7分,‘B+’对应于3.3分,‘B’对应于3分,等等。学生在某门课程(课程段)上所获得的等级分值被定义为该课程段的学分乘以该生得到的成绩所对应的数字表示的得分。给定上述关系和我们的大学模式,...原创 2018-11-11 10:09:40 · 1087 阅读 · 0 评论 -
第3章 SQL 习题 - 3.1
数据库使用postgresql,数据来源来自db-book.com上,执行下载的sql文件DDL和SQL code for creating large relations导入数据到创建的数据库university。倒入命令使用如下:psql -U postgres -d university -f ~/Downloads/DDL.sql psql -U postgres -d unive...原创 2018-11-10 20:22:22 · 3741 阅读 · 0 评论