数据库实验

数据库实验:

插入数据、修改数据、删除数据

单表查询、多表查询、嵌套查询

建立视图、在视图上建立查询

数据库实验
/*1.插入数据。*/
/*①在产品表格中插入一种新产品 0077、瓷器,单位(件)、、、、.00*/
insert into 产品 values('0078','瓷器',8000,3,1002,10000.00)

/*②在订单表中插入新订单  666、-06-06、*/
insert into 订单 values('666','2003-06-06','300')
    
 /*2.修改数据。
①更新所有代理商的提成比例为%。*/
 update 代理商 set 提成比例 = 20;
 
/*②为产品表格增加一个新字段----缺货量。*/
     alter table 产品 add 缺货量 int;
     
/*③将编号为的产品单价更新为。*/
     update 产品 set 价格 = 1000 where 产品编号 ='0011';

/*3、删除数据*/     
/*①删除编号为700 的客户。*/
 delete from 客户 where 客户编号 = '700'; 
 
 /*②删除编号为05 的代理商。*/
 delete from 代理商 where 代理商编号 = '05'; 

 /*4.建立与删除[索引]的方法。*
在各表中,分别按代理商编号、客户编号、产品编号及订单编号建立索引。*/
  create index dailiindex on 代理商(代理商编号);
  create index dailiindex on 客户(客户编号);
  create index dailiindex on 产品(产品编号); 
  create index dailiindex on 订单(订单编号); 
  
  /*5.单表查询。
  ①从产品表中查询现有产品的库存量。*/
  select 库存量 from 产品; 
  
  /* ②从客户表中查询“王五”的地址及代理商编号。*/
  select 地址,代理商编号 from 客户 where 姓名 = '王五';

 /*③从代理商表中查询代理商“惠普”的提成金额。*/
  select 提成金额 from 代理商 where 姓名 = '惠普'; 
  
 /*④从订货项目表中查询编号为“444”的订单所订购的商品编号及数量*/
  select 产品编号,订购数量 from 订货项目 where 产品编号 = '444'; 
  
 /*⑤分别求代理商和客户的总数。*/
   select count(*) from 代理商; select count(*) from 客户;
   
 /* ⑥从订货项目表中,查询编号为0033 的产品定货总数量。*/
   select sum(订购数量) from 订货项目 where 产品编号 = '0033';

/*多表查询*/
/*查询编号为的客户通过的代理商的姓名和地址。*/
SELECT 代理商.姓名,代理商.地址 FROM 代理商,客户
    WHERE 客户.客户编号 = 300 AND 客户.代理商编号 = 代理商.代理商编号
    
/*查询产品编号为、订货数量大于的客户编号及其姓名。*/
SELECT 客户.客户编号,客户.姓名 FROM 客户,订货项目,订单 
    WHERE 订单.订单编号 = 0033 AND 订货项目.订单编号 = 订单.订单编号
    AND 订货项目.订购数量 > 100 AND 订单.客户编号 = 客户.客户编号

/*查询每个客户的订单,显示客户编号、客户名、订单编号及订货日期。*/
select 客户.客户编号,客户.姓名,订单.订单编号,订单.订货日期 from 客户,订单
    where 客户.客户编号=订单.客户编号

/*查询所有年以后订货项目。*/
select 订货项目.* from 订货项目,订单 
    where 订单.订单编号 = 订货项目.订单编号 and 订单.订货日期 >'2000-01-01'

/*查询提成金额为以上(含)的代理商所对应的客户。*/
select 客户.* from 代理商,客户 
    where 代理商.提成金额>= 10000 and 客户.代理商编号 = 代理商.代理商编号

/*嵌套查询*/
/*查询与“刘晨”在同一个专业学习的学生*/
select 学生信息.* from 学生信息 where 学生信息.专业 
    in (select 学生信息.专业 from 学生信息
    where 学生信息.姓名 = '刘晨');

/*    查询选修了课程名为“操作系统”的学生。*/
select 学生信息.* from 学生信息,课程信息 where 学生信息.学号
    in (select 成绩信息.学号 from 成绩信息 where 成绩信息.课程序号 
    in (select 课程信息.课程序号 from 课程信息 where 课程信息.课程名称 = '操作系统'));

/*建立视图*/
/*①建立含有订单号及拥有该订单的客户编号和代理商号三个字段的视图。*/
    create view T1
    as select 订单编号,订单.客户编号 ,客户.代理商编号 
    from 订单,客户  where 订单.客户编号 =客户.客户编号;
 
 ②建立一个含有产品编号、产品库存量及产品在订量三个字段的视图。
    create view T2 
    as select 产品.产品编号 ,库存量,订购数量 
    from 产品,订货项目 where 订货项目.产品编号 =产品.产品编号 ;  

③建立一个含有客户编号、客户所订的产品、该产品的订购价及该产品的描述四个字段的视图。
    create view T3
     as select 订单.客户编号 ,产品.产品编号 ,订货项目 .订购单价 ,产品.描述信息 
     from 订单,订货项目,客户,产品 
     where 订单.客户编号 = 客户.客户编号
      and 订单.订单编号 = 订货项目 .订单编号
      and 订货项目.产品编号 =产品.产品编号 ;  
      
④建立一个含计算机科学系的学生及年龄不大于岁的学生的视图。
    create view T4 
    as select * from student
    where sdept='cs'and sage <=19;

⑤建立一个既选修了课程又选修了课程的学生视图。
    create view T5 
    as select * from student 
        where sno in(select sno from sc where cno='1')
        and sno in (select sno from sc where cno='2');
/*在视图上建立查询*/
/*①查询所有订单的客户和代理商。*/
SELECT * FROM T1;

/*②查询编号为的客户所订的产品以及该产品的单价。*/
select * from T3 where 客户编号='400';

/*③查询选修课程的所有学生。*/
select * from T5 ;
原文地址:https://www.cnblogs.com/tianjintou/p/4615741.html