1、样表:先创建下面三个表:(book 表)(borrow 表)(reader 表)1) 找出姓李的读者姓名(NAME) 和所在单位(COMPANY)。 2) 列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。 3) 查找“高等教育出版社” 的所有图书名称(BOOK_NAME)及单价(PRICE) ,结果按单价降序排序。 4) 查找价格介于 10 元和 20 元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。 5) 查找书名以”计算机”开头的所有图书和作者(WRITER)。6) 检索同时借阅了总编号(BOOK_ID)为 112266
2、 和 449901 两本书的借书证号(READER_ID)。7)* 查找所有借了书的读者的姓名(NAME) 及所在单位 (COMPANY)。 8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。 9)* 无重复地查询 2006 年 10 月以后借书的读者借书证号(READER_ID)、姓名和单位。 10)* 找出借阅了一书的借书证号。 11) 找出与 ”赵正义”在同一天借书的读者姓名、所在单位及借书日期 。 12) 查询 2006 年 7 月以后没有借书的读者借书证号、姓名及单位。13) 求 ”科学出版社”图书的最高单价、最低单价、平均单价。14)* 求”信息系” 当前借阅
3、图书的读者人次数。15) 求出各个出版社图书的最高价格、最低价格和总册数。16) 分别找出各单位当前借阅图书的读者人数及所在单位。17)* 找出当前至少借阅了 2 本图书( 大于等于 2 本)的读者姓名及其所在单位。18) 分别找出借书人次数多于 1 人次的单位及人次数。19) 找出藏书中各个出版单位的名称、每个出版社的书籍的总册数(每种可能有多册)、书的价值总额。20) 查询经济系是否还清所有图书。如果已经还清,显示该系所有读者的姓名、所在单位和职称。附录:建表语句创建图书管理库的图书、读者和借阅三个基本表的表结构:创建 BOOK:(图书表)CREATE TABLE BOOK (BOOK_I
4、D NUMBER(10),SORT VARCHAR2(10),BOOK_NAME VARCHAR2(50),WRITER VARCHAR2(10),OUTPUT VARCHAR2(50),PRICE NUMBER(3);创建 READER:(读者表)CREATE TABLE READER (READER_ID NUMBER(3),COMPANY VARCHAR2(10),NAME VARCHAR2(10),SEX VARCHAR2(2),GRADE VARCHAR2(10),ADDR VARCHAR2(50);创建 BORROW:(借阅表)CREATE TABLE BORROW (READER
5、_ID NUMBER(3),BOOK_ID NUMBER(10),BORROW_DATE DATE);插入数据:BOOK 表:insert into book values(445501,TP3/12,数据库导论, 王强,科学出版社,17.90);insert into book values(445502,TP3/12,数据库导论, 王强,科学出版社,17.90);insert into book values(445503,TP3/12,数据库导论, 王强,科学出版社,17.90);insert into book values(332211,TP5/10,计算机基础, 李伟,高等教育出版
6、社,18.00);insert into book values(112266,TP3/12,FoxBASE,张三,电子工业出版社,23.60);insert into book values(665544,TS7/21,高等数学,刘明,高等教育出版社,20.00);insert into book values(114455,TR9/12,线性代数,孙业, 北京大学出版社,20.80);insert into book values(113388,TR7/90,大学英语,胡玲, 清华大学出版社,12.50);insert into book values(446601,TP4/13,数据库基
7、础, 马凌云,人民邮电出版社,22.50);insert into book values(446602,TP4/13,数据库基础, 马凌云,人民邮电出版社,22.50);insert into book values(446603,TP4/13,数据库基础, 马凌云,人民邮电出版社,22.50);insert into book values(449901,TP4/14,FoxPro 大全,周虹,科学出版社,32.70);insert into book values(449902,TP4/14,FoxPro 大全,周虹,科学出版社,32.70);insert into book value
8、s(118801,TP4/15,计算机网络, 黄力钧,高等教育出版社,21.80);insert into book values(118802,TP4/15,计算机网络, 黄力钧,高等教育出版社,21.80);READER 表:insert into reader values(111,信息系,王维利,女,教授,1 号楼 424);insert into reader values(112,财会系,李 立, 男,副教授,2 号楼 316);insert into reader values(113,经济系,张 三, 男,讲师,3 号楼 105);insert into reader valu
9、es(114,信息系,周华发,男,讲师,1 号楼 316);insert into reader values(115,信息系,赵正义,男,工程师,1 号楼 224);insert into reader values(116,信息系,李 明, 男,副教授,1 号楼 318);insert into reader values(117,计算机系,李小峰,男,助教,1 号楼 214);insert into reader values(118,计算机系,许鹏飞,男,助工,1 号楼 216);insert into reader values(119,计算机系,刘大龙,男,教授,1 号楼 318)
10、;insert into reader values(120,国际贸易,李 雪, 男,副教授,4 号楼 506);insert into reader values(121,国际贸易,李 爽, 女,讲师,4 号楼 510);insert into reader values(122,国际贸易,王 纯, 女,讲师,4 号楼 512);insert into reader values(123,财会系,沈小霞,女,助教,2 号楼 202);insert into reader values(124,财会系,朱 海, 男,讲师,2 号楼 210);insert into reader values(
11、125,财会系,马英明,男,副教授,2 号楼 212);BORROW 表:insert into borrow values(112,445501,19-3 月-2006);insert into borrow values(125,332211,12-2 月-2006);insert into borrow values(111,445503,21-8 月-2006);insert into borrow values(112,112266,14-3 月-2006);insert into borrow values(114,665544,21-10 月-2006);insert into
12、borrow values(120,114455,02-11 月-2006);insert into borrow values(120,118801,18-10 月-2006);insert into borrow values(119,446603,12-11 月-2006);insert into borrow values(112,449901,23-10 月-2006);insert into borrow values(115,449902,21-8 月-2006);insert into borrow values(118,118801,10-9 月-2006);Order 排序
13、:select *from book2 order by price; 默认升序;select *from book2 order by price desc; 倒序联合查询 union在 包 括 多 个 查 询 的 UNION 语 句 中 , 其 执 行 顺 序 是 自 左 至 右 , 使 用括 号 可 以 改 变 这 一 执 行 顺 序 。 例 如 : 查 询 1 UNION (查 询 2 UNION 查 询 3)防止重复 distinct用法例子:select distinct reader.reader_id,name,company from reader,borrow where
14、borrow_date to_date(2006.10.1,yyyy.mm.dd) and reader.reader_id = borrow.reader_id模糊查询:例子: select name,company from reader where name like 李%; /找出姓李的;区间查询:where price 10 and price to_date(2006.9.30,yyyy.mm.dd);Order 排序:select *from book2 order by price; 默认升序;select *from book2 order by price desc; 倒序
15、联合查询 union在 包 括 多 个 查 询 的 UNION 语 句 中 , 其 执 行 顺 序 是 自 左 至 右 , 使 用括 号 可 以 改 变 这 一 执 行 顺 序 。 例 如 : 查 询 1 UNION (查 询 2 UNION 查 询 3)防止重复 distinct用法例子:select distinct reader.reader_id,name,company from reader,borrow where borrow_date to_date(2006.10.1,yyyy.mm.dd) and reader.reader_id = borrow.reader_id将该
16、用户下的表让别的用户使用(赋予它可以使用的权限)格式:grant 权限 on 表名 to 用户;update 表名 set 修改内容 where 条件;(更新内容的格式)delete from 表名 where 条件;( 删除格式)insert into 表名 values(内容);( 添加格式)select 字段 from 表名 1,表名 2 where 条件 ;(查看格式)(1)授权:grant 语法:grant 权限 on 对象名 to user(2)创建表空间create tablespace zylspace datafile d:zylspace.dbf size 100m aut
17、oextend on next 5m;创建临时表空间:create temporary tablespace zyltempspace tempfile d:zyltempspace.dbf size 100m autoextend on next 10m;(3 )创建用户同时指定表空间:create user zyl identified by zyl default tablespace zylspace temporary tablespace zyltempspace;(4 )查看用户名:Show user;(5 )用户连接服务器:Connect/conn 用户名 /密码;(6 )将表
18、空间使用权授予某个用户:Grant unlimited tablespace to 用户名;(7 )创建角色:Create role 角色名;(8 )删除角色:Drop role 角色名;(9 )回收权限:Revoke 权限名或角色名 from 用户名;(10)修改表:1.编辑表的字段修改一个列的数据类型(一般限于修改长度,修改为一个不同类型时有诸多限制):语法:ALTER TABLE 表名 MODIFY(列名,数据类型);eg1:alter table skate_test modify (author number(10,0) )2.增加一个列语法:ALTER TABLE 表名 ADD(列
19、名,数据类型 );eg1:ALTER TABLE skate_test ADD(author NUMBER(38,0) not null);3.删除一个列语法:ALTER TABLE 表名 DROP COLUMN 列名;eg1:alter table skate_test drop column author(11)数据字典的使用总的数据字典名为 dict ,可以通过查看 dict 查看有哪些数据字典表,然后再去相应的数据字典表里去查询(12)查看某个表的结构为:desc 表名(13)查看、修改数据库日期格式:查看:Select * from nls_session_parameters;查看nls_date_format 字段修改数据库日期格式:alter session set nls_date_format=yyyy-mm-dd(14)distinct 作用目标是行级别(15)对字段取别名的方法:(a):字段名 as 别名 (b)字段名 别名(16)对表取别名:表名 别名 。不可以使用 as 对表取别名(17)关于空值函数:a. NVL(参数 1,参数 2):参数 1 取字段