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> --删除表stuInfo3 SQL> 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
时间: 2024-10-06 22:43:40