初识Oracle数据库的基本操作

时间:2023-03-09 02:57:45
初识Oracle数据库的基本操作
SQL> --切换用户
SQL> connect practice/
已连接。
SQL> --查询学生表信息
SQL> select * from stuInfo; STUNO STUNAME STUAGE STUID STUSEAAT
------ -------------------- ---------- ---------- ----------
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15 已选择14行。 SQL> --使用ronum从学生表中提取10条记录并显示序号
SQL> select stuInfo.* ,rownum from stuInfo where rownum<; STUNO STUNAME STUAGE STUID STUSEAAT ROWNUM
------ -------------------- ---------- ---------- ---------- ----------
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15 已选择10行。 SQL> --往学生表中插入一行记录
SQL> insert into stuInfo values('','李四',,,); 已创建 行。 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
------ -------------------- ---------- ---------- ----------
李四 1.5666E+10
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15 已选择15行。 SQL> --按照学号降序排列
SQL> select stuInfo.* from stuInfo order by stuno desc; STUNO STUNAME STUAGE STUID STUSEAAT
------ -------------------- ---------- ---------- ----------
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
李四 1.5666E+10
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15 已选择15行。 SQL> --查询学号,使用别名
SQL> select stuno as 姓名 from stuInfo; 姓名
------ 已选择15行。 SQL> select stuno as "学 号" from stuInfo; 学 号
------ 已选择15行。 SQL> --创建一个新的表
SQL> create table stuInfo2
as
select stuInfo.* from stuInfo; 表已创建。 SQL> --查询创建的新表
SQL> select stuInfo2.* from stuInfo2; STUNO STUNAME STUAGE STUID STUSEAAT
------ -------------------- ---------- ---------- ----------
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
李四 1.5666E+10 已选择15行。 SQL> --删除表stuInfo3
SQL> drop table stuInfo3; 表已删除。 SQL> --创建只有表结构的表
SQL> create table stuInfo3
as
select stuInfo.* from stuInfo
where =; 表已创建。 SQL> --查看
SQL> select stuInfo3.* from stuInfo3; 未选定行 SQL> --查看stuInfo表中的数据
SQL> select stuInfo.* from stuInfo; STUNO STUNAME STUAGE STUID STUSEAAT
------ -------------------- ---------- ---------- ----------
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
李四 1.5666E+10 已选择15行。 SQL> --修改一行记录
SQL> update stuInfo set stuname='哈哈' where stuno=; 已更新 行。 SQL> --查询
SQL> select stuInfo.* from stuInfo; STUNO STUNAME STUAGE STUID STUSEAAT
------ -------------------- ---------- ---------- ----------
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
王五 5.9876E+15
哈哈 5.9876E+15
王五 5.9876E+15
李四 1.5666E+10 已选择15行。 SQL> --查询stuname列不存在重复数据的记录
SQL> select stuname from stuInfo group by stuname having(count(stuname)<); 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
------ -------------------- ---------- ---------- ----------
王五 5.9876E+15
哈哈 5.9876E+15
李四 1.5666E+10 SQL> --插入测试数据
SQL> insert into stuInfo values('','',,,); 已创建 行。 SQL> select stuInfo.* from stuInfo; STUNO STUNAME STUAGE STUID STUSEAAT
------ -------------------- ---------- ---------- ----------
王五 5.9876E+15
哈哈 5.9876E+15
李四 1.5666E+10 已选择13行。 SQL> --查看自然顺序的第五条记录
SQL> select * from (select stuInfo.* ,rownum as rn from stuInfo )where rn=; STUNO STUNAME STUAGE STUID STUSEAAT RN
------ -------------------- ---------- ---------- ---------- ---------- SQL> --嵌套分页,查询第5到第八条的数据 SQL> --两层嵌套分页
SQL> select * from (select stuInfo.*,rownum as rn from stuInfo where rownum<=) where rn >=; STUNO STUNAME STUAGE STUID STUSEAAT RN
------ -------------------- ---------- ---------- ---------- ---------- SQL> --三层嵌套 SQL> select * from (select stu.* ,rownum as rn from (select stuInfo.* from stuInfo) stu where rownum<=) where rn>=; STUNO STUNAME STUAGE STUID STUSEAAT RN
------ -------------------- ---------- ---------- ---------- ---------- SQL> spool off