你的位置:首页 > 数据库

[数据库]初识Oracle数据库的基本操作


SQL> --切换用户SQL> connect practice/123已连接。SQL> --查询学生表信息SQL> select * from stuInfo;STUNO STUNAME         STUAGE   STUID  STUSEAAT                                                                      ------ -------------------- ---------- ---------- ----------                                                                      0   王五             15 5.9876E+15     5                                                                      2   王五             15 5.9876E+15     5                                                                      3   王五             15 5.9876E+15     5                                                                      4   王五             15 5.9876E+15     5                                                                      5   王五             15 5.9876E+15     5                                                                      6   王五             15 5.9876E+15     5                                                                      7   王五             15 5.9876E+15     5                                                                      8   王五             15 5.9876E+15     5                                                                      9   王五             15 5.9876E+15     5                                                                      10   王五             15 5.9876E+15     5                                                                      11   王五             15 5.9876E+15     5                                                                      12   王五             15 5.9876E+15     5                                                                      13   王五             15 5.9876E+15     5                                                                      14   王五             15 5.9876E+15     5                                                                      已选择14行。SQL> --使用ronum从学生表中提取10条记录并显示序号SQL> select stuInfo.* ,rownum from stuInfo where rownum<11;STUNO STUNAME         STUAGE   STUID  STUSEAAT   ROWNUM                                                                 ------ -------------------- ---------- ---------- ---------- ----------                                                                 0   王五             15 5.9876E+15     5     1                                                                 2   王五             15 5.9876E+15     5     2                                                                 3   王五             15 5.9876E+15     5     3                                                                 4   王五             15 5.9876E+15     5     4                                                                 5   王五             15 5.9876E+15     5     5                                                                 6   王五             15 5.9876E+15     5     6                                                                 7   王五             15 5.9876E+15     5     7                                                                 8   王五             15 5.9876E+15     5     8                                                                 9   王五             15 5.9876E+15     5     9                                                                 10   王五             15 5.9876E+15     5     10                                                                 已选择10行。SQL> --往学生表中插入一行记录SQL> insert into stuInfo values('15','李四',12,15665544444,6);已创建 1 行。                                                               SQL> --显示无重复的行SQL> select distinct stuname from stuInfo;STUNAME                                                                                                 --------------------                                                                                          王五                                                                                                  李四                                                                                                  SQL> --按照姓名升序排列,如果姓名相同则按照学号降序排列SQL> select stuInfo.* from stuInfo order by stuname asc,stuno desc;STUNO STUNAME         STUAGE   STUID  STUSEAAT                                                                      ------ -------------------- ---------- ---------- ----------                                                                      15   李四             12 1.5666E+10     6                                                                      9   王五             15 5.9876E+15     5                                                                      8   王五             15 5.9876E+15     5                                                                      7   王五             15 5.9876E+15     5                                                                      6   王五             15 5.9876E+15     5                                                                      5   王五             15 5.9876E+15     5                                                                      4   王五             15 5.9876E+15     5                                                                      3   王五             15 5.9876E+15     5                                                                      2   王五             15 5.9876E+15     5                                                                      14   王五             15 5.9876E+15     5                                                                      13   王五             15 5.9876E+15     5                                                                      12   王五             15 5.9876E+15     5                                                                      11   王五             15 5.9876E+15     5                                                                      10   王五             15 5.9876E+15     5                                                                      0   王五             15 5.9876E+15     5                                                                      已选择15行。SQL> --按照学号降序排列SQL> select stuInfo.* from stuInfo order by stuno desc;STUNO STUNAME         STUAGE   STUID  STUSEAAT                                                                      ------ -------------------- ---------- ---------- ----------                                                                      9   王五             15 5.9876E+15     5                                                                      8   王五             15 5.9876E+15     5                                                                      7   王五             15 5.9876E+15     5                                                                      6   王五             15 5.9876E+15     5                                                                      5   王五             15 5.9876E+15     5                                                                      4   王五             15 5.9876E+15     5                                                                      3   王五             15 5.9876E+15     5                                                                      2   王五             15 5.9876E+15     5                                                                      15   李四             12 1.5666E+10     6                                                                      14   王五             15 5.9876E+15     5                                                                      13   王五             15 5.9876E+15     5                                                                      12   王五             15 5.9876E+15     5                                                                      11   王五             15 5.9876E+15     5                                                                      10   王五             15 5.9876E+15     5                                                                      0   王五             15 5.9876E+15     5                                                                      已选择15行。SQL> --查询学号,使用别名SQL> select stuno as 姓名 from stuInfo;姓名                                                                                                  ------                                                                                                 0                                                                                                    2                                                                                                    3                                                                                                    4                                                                                                    5                                                                                                    6                                                                                                    7                                                                                                    8                                                                                                    9                                                                                                    10                                                                                                   11                                                                                                   12                                                                                                   13                                                                                                   14                                                                                                   15                                                                                                   已选择15行。SQL> select stuno as "学 号" from stuInfo;学 号                                                                                                  ------                                                                                                 0                                                                                                    2                                                                                                    3                                                                                                    4                                                                                                    5                                                                                                    6                                                                                                    7                                                                                                    8                                                                                                    9                                                                                                    10                                                                                                   11                                                                                                   12                                                                                                   13                                                                                                   14                                                                                                   15                                                                                                   已选择15行。SQL> --创建一个新的表SQL> create table stuInfo2 2 as 3 select stuInfo.* from stuInfo;表已创建。SQL> --查询创建的新表SQL> select stuInfo2.* from stuInfo2;STUNO STUNAME         STUAGE   STUID  STUSEAAT                                                                      ------ -------------------- ---------- ---------- ----------                                                                      0   王五             15 5.9876E+15     5                                                                      2   王五             15 5.9876E+15     5                                                                      3   王五             15 5.9876E+15     5                                                                      4   王五             15 5.9876E+15     5                                                                      5   王五             15 5.9876E+15     5                                                                      6   王五             15 5.9876E+15     5                                                                      7   王五             15 5.9876E+15     5                                                                      8   王五             15 5.9876E+15     5                                                                      9   王五             15 5.9876E+15     5                                                                      10   王五             15 5.9876E+15     5                                                                      11   王五             15 5.9876E+15     5                                                                      12   王五             15 5.9876E+15     5                                                                      13   王五             15 5.9876E+15     5                                                                      14   王五             15 5.9876E+15     5                                                                      15   李四             12 1.5666E+10     6                                                                      已选择15行。SQL> --删除表stuInfo3SQL> drop table stuInfo3;表已删除。SQL> --创建只有表结构的表SQL> create table stuInfo3 2 as 3 select stuInfo.* from stuInfo 4 where 1=2;表已创建。SQL> --查看SQL> select stuInfo3.* from stuInfo3;未选定行SQL> --查看stuInfo表中的数据SQL> select stuInfo.* from stuInfo;STUNO STUNAME         STUAGE   STUID  STUSEAAT                                                                      ------ -------------------- ---------- ---------- ----------                                                                      0   王五             15 5.9876E+15     5                                                                      2   王五             15 5.9876E+15     5                                                                      3   王五             15 5.9876E+15     5                                                                      4   王五             15 5.9876E+15     5                                                                      5   王五             15 5.9876E+15     5                                                                      6   王五             15 5.9876E+15     5                                                                      7   王五             15 5.9876E+15     5                                                                      8   王五             15 5.9876E+15     5                                                                      9   王五             15 5.9876E+15     5                                                                      10   王五             15 5.9876E+15     5                                                                      11   王五             15 5.9876E+15     5                                                                      12   王五             15 5.9876E+15     5                                                                      13   王五             15 5.9876E+15     5                                                                      14   王五             15 5.9876E+15     5                                                                      15   李四             12 1.5666E+10     6                                                                      已选择15行。SQL> --修改一行记录SQL> update stuInfo set stuname='哈哈' where stuno=13;已更新 1 行。SQL> --查询SQL> select stuInfo.* from stuInfo;STUNO STUNAME         STUAGE   STUID  STUSEAAT                                                                      ------ -------------------- ---------- ---------- ----------                                                                      0   王五             15 5.9876E+15     5                                                                      2   王五             15 5.9876E+15     5                                                                      3   王五             15 5.9876E+15     5                                                                      4   王五             15 5.9876E+15     5                                                                      5   王五             15 5.9876E+15     5                                                                      6   王五             15 5.9876E+15     5                                                                      7   王五             15 5.9876E+15     5                                                                      8   王五             15 5.9876E+15     5                                                                      9   王五             15 5.9876E+15     5                                                                      10   王五             15 5.9876E+15     5                                                                      11   王五             15 5.9876E+15     5                                                                      12   王五             15 5.9876E+15     5                                                                      13   哈哈             15 5.9876E+15     5                                                                      14   王五             15 5.9876E+15     5                                                                      15   李四             12 1.5666E+10     6                                                                      已选择15行。SQL> --查询stuname列不存在重复数据的记录SQL> select stuname from stuInfo group by stuname having(count(stuname)<2);STUNAME                                                                                                 --------------------                                                                                          李四                                                                                                  哈哈                                                                                                  SQL> --删除名字重复的记录保留学号最大的那个SQL> delete stuInfo where stuno not in(select max(stuno) from stuInfo group by stuname);已删除12行。SQL> --查看数据SQL> select stuInfo.* from stuInfo;STUNO STUNAME         STUAGE   STUID  STUSEAAT                                                                      ------ -------------------- ---------- ---------- ----------                                                                      9   王五             15 5.9876E+15     5                                                                      13   哈哈             15 5.9876E+15     5                                                                      15   李四             12 1.5666E+10     6                                                                      SQL> --插入测试数据SQL> insert into stuInfo values('1','66',10,5566554666,5);已创建 1 行。SQL> select stuInfo.* from stuInfo;STUNO STUNAME         STUAGE   STUID  STUSEAAT                                                                      ------ -------------------- ---------- ---------- ----------                                                                      9   王五             15 5.9876E+15     5                                                                      13   哈哈             15 5.9876E+15     5                                                                      15   李四             12 1.5666E+10     6                                                                      1   66              10 5566554666     5                                                                      1   66              10 5566554666     5                                                                      1   66              10 5566554666     5                                                                      1   66              10 5566554666     5                                                                      1   66              10 5566554666     5                                                                      1   66              10 5566554666     5                                                                      1   66              10 5566554666     5                                                                      1   66              10 5566554666     5                                                                      1   66              10 5566554666     5                                                                      1   66              10 5566554666     5                                                                      已选择13行。SQL> --查看自然顺序的第五条记录SQL> select * from (select stuInfo.* ,rownum as rn from stuInfo )where rn=5;STUNO STUNAME         STUAGE   STUID  STUSEAAT     RN                                                                 ------ -------------------- ---------- ---------- ---------- ----------                                                                 1   66              10 5566554666     5     5                                                                 SQL> --嵌套分页,查询第5到第八条的数据SQL> --两层嵌套分页SQL> select * from (select stuInfo.*,rownum as rn from stuInfo where rownum<=8) where rn >=5;STUNO STUNAME         STUAGE   STUID  STUSEAAT     RN                                                                 ------ -------------------- ---------- ---------- ---------- ----------                                                                 1   66              10 5566554666     5     5                                                                 1   66              10 5566554666     5     6                                                                 1   66              10 5566554666     5     7                                                                 1   66              10 5566554666     5     8                                                                 SQL> --三层嵌套SQL> select * from (select stu.* ,rownum as rn from (select stuInfo.* from stuInfo) stu where rownum<=8) where rn>=5;STUNO STUNAME         STUAGE   STUID  STUSEAAT     RN                                                                 ------ -------------------- ---------- ---------- ---------- ----------                                                                 1   66              10 5566554666     5     5                                                                 1   66              10 5566554666     5     6                                                                 1   66              10 5566554666     5     7                                                                 1   66              10 5566554666     5     8                                                                 SQL> spool off