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