Oracle Database 10G Query待解决
Oracle Database 10G Query to be solved
create table customer
(cust_id integer not null,
cust_name char(20) not null ,
cust_address varchar2(200) ,
emp_id integer not null,
constraint pk_customer primary key(cust_id)
);
create table account
(account_number integer not null,
account_balance number(8,2) not null,
constraint pk_acount primary key(account_number)
);
create table has
(cust_id integer not null,
account_number integer not null,
constraint pk_has primary key(cust_id, account_number)
);
alter table has
add constraint fk_account_has foreign key(account_number)
references account(account_number);
alter table has
add constraint fk_customer_has foreign key(cust_id)
references customer(cust_id);
alter table customer
add constraint fk_employee_customer foreign key(emp_id)
references employee(emp_id);
Q1 显示账号101和账号102客户的所有信息
Q2 显示账户余额大于 500 的所有客户的帐号和客户 ID。
Q3 显示所有账户余额不为500的客户信息。
那就是这样的:
select c.cust_id, c.cust_address, c.cust_address
from customer c join has h on h.cust_id = c.cust_id
where h.account_number in (101, 102);
我建议您停止现在阅读并 - 查看第一个示例 - 尝试自己编写接下来的 2 个查询。
select c.cust_id, h.account_Number
from customer c join has h on h.cust_id = c.cust_id
join account a on a.account_number = h.account_number
where a.account_balance > 500;
select c.cust_id, c.cust_address, c.cust_address
from customer c join has h on h.cust_id = c.cust_id
join account a on a.account_number = h.account_number
where a.account_balance <> 500;
create table customer
(cust_id integer not null,
cust_name char(20) not null ,
cust_address varchar2(200) ,
emp_id integer not null,
constraint pk_customer primary key(cust_id)
);
create table account
(account_number integer not null,
account_balance number(8,2) not null,
constraint pk_acount primary key(account_number)
);
create table has
(cust_id integer not null,
account_number integer not null,
constraint pk_has primary key(cust_id, account_number)
);
alter table has
add constraint fk_account_has foreign key(account_number)
references account(account_number);
alter table has
add constraint fk_customer_has foreign key(cust_id)
references customer(cust_id);
alter table customer
add constraint fk_employee_customer foreign key(emp_id)
references employee(emp_id);
Q1 显示账号101和账号102客户的所有信息
Q2 显示账户余额大于 500 的所有客户的帐号和客户 ID。
Q3 显示所有账户余额不为500的客户信息。
那就是这样的:
select c.cust_id, c.cust_address, c.cust_address
from customer c join has h on h.cust_id = c.cust_id
where h.account_number in (101, 102);
我建议您停止现在阅读并 - 查看第一个示例 - 尝试自己编写接下来的 2 个查询。
select c.cust_id, h.account_Number
from customer c join has h on h.cust_id = c.cust_id
join account a on a.account_number = h.account_number
where a.account_balance > 500;
select c.cust_id, c.cust_address, c.cust_address
from customer c join has h on h.cust_id = c.cust_id
join account a on a.account_number = h.account_number
where a.account_balance <> 500;