您的位置:首页 > 数据库 > Oracle

初识Oracle数据库的基本操作

2016-07-30 11:57 656 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: