欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle 4~ 增删改查

程序员文章站 2022-05-07 08:01:01
...

Oracle表的简单查询是通过select语句实现的,但既然要查询,表里肯定要先有数据

之前在数据库的student用户下已经创建了表stuinfo,向表中插入数据后就可以进行查询了。

1.查看表结构,即查看表中有哪些字段,可以通过以下语句进行查看。

desc 表名;

Oracle 4~ 增删改查

以上是我在创建表时设定的字段及字段对应的数据类型。

2.向表中插入几条数据,插入数据的语句结构如下:

insert into 表名(列名1,列名2,列名3,...) values(值1,值2,值3,...);

列名可以省略,当列名省略时,默认是表中所有的列,列的顺序是按照建表的顺序进行排列。

向表中插入李四和龙七两条数据,如下所示:

Oracle 4~ 增删改查

Oracle 4~ 增删改查

一个insert命令可以把一个select结果集一次性插入到一张表中。

insert into 表名 select 子句;

Oracle 4~ 增删改查

3.查询表中数据

  select查询语句的结构为

select */列名/表达式 from 表名 where 条件 order by 列名;

(1)查询学生信息表stuinfo中李四的基本信息

select t.* from stuinfo t where t.stuname = '李四';

(2)查询李四的学号、班级、年级和地址

select t.stuid,t.classno,t.grade,t.stuaddress from stuinfo t where t.stuname = '李四';

(3)查询班级‘c201801’所有同学的信息,按年龄进行升序展示

select t.* from stuinfo t where t.classno = 'c201801' order by t.age asc;

4.用select语句进行数据备份

create table 表名 as select 语句;

例如,备份学生信息表的数据

create table stuinfo_2018 as select * from stuinfo; 

Oracle 4~ 增删改查

除了这些基本的查询语句,Oracle还有很多复杂的条件查询。

5.条件查询

为了进行条件查询,除了stuinfo,我还创建了表class,course和score,并在这些表中插入数据。

Oracle 4~ 增删改查

Oracle 4~ 增删改查

Oracle 4~ 增删改查

Oracle 4~ 增删改查

Oracle 4~ 增删改查

(1)= 操作符:表示列值等于一个固定值所查询出的结果。

  例如,查询性别为男的学生姓名

select t.stuname from stuinfo t where t.sex = '1';

Oracle 4~ 增删改查

例如,查询课程编号为‘c001’的所有学生的学号、分数、姓名、性别和班级号。

select t.stuid, t.courseid, t.score, b.stuname, b.sex, b.classno 
from score t, stuinfo b 
where t.courseid='c001' and t.stuid = b.stuid;

(2)in 操作符:在 where 子句中可以使用 in 操作符来查询其列值在指定的列表中的查询结果。

 例如,查询成绩表 score 中 courseid 为 ‘c001’ , 成绩为 ‘90’,‘80’ 的同学信息。

  如果用逻辑运算符 or 和 ‘=’ 查询

select b.stuname, b.stuid, t.score
from score t , stuinfo b
where t.stuid = b.stuid and t.courseid = 'c001' and (t.score = '80' or t.score = '90');

Oracle 4~ 增删改查

为了让结果显示得整齐点,我修改了stuname的数据长度~

修改语句为

alter table stuinfo
modify(stuname varchar2(10));

如果用操作符 ‘in’,同样能得到这一查询结果

select b.stuid, b.stuname, t.score
from stuinfo b, score t
where t.courseid = 'c001' and t.stuid = b.stuid and t.score in ('80','90');

Oracle 4~ 增删改查

(3)between and:在where子句中,可以使用between and来查询列值包含在指定区间内的数据。

  例如,查询成绩表中,课程‘c001’成绩在85-100之间的学生信息。

select t.stuid, t.stuname, b.score
from stuinfo t, score b
where t.stuid = b.stuid and b.courseid = 'c001' and b.score between '85' and '100';

Oracle 4~ 增删改查

(4)like 模糊查询:通过字符匹配检索出所需要的数据行。

         字符匹配操作可以使用通配符:‘%’—表示0个或多个任意字符、

                                                           ‘_’—代表一个任意字符、

                                                           ‘\’—转义字符,‘\%’在字符串中表示一个字符“%”。

   例如,查询stuinfo中姓龙的学生信息。

select * from stuinfo where t.stuname like '龙%';

Oracle 4~ 增删改查

6.update语句:更新/修改数据

update 表名 set 列名1=值1, 列名2=值2, 列名2=值3,...where 条件;

例如,更新学生张三的身份证信息

update stuinfo t
set t.idnumber = '3503011992xxxxxxxx'
where t.stuname = '张三';

Oracle 4~ 增删改查

7.delete语句:删除表数据。

delete from 表名 where 子句;

 例如,删除stuinfo_2018中学生张三的数据

Oracle 4~ 增删改查

 不加where子句时就是删除表中所有的数据。

8.用连接符 '||' 来连接查询结果。

例如,输出学生的姓名,课程和成绩。

Oracle 4~ 增删改查

9.关键字 DISTINCT:对查询结果进行重复数据的消除。

select distinct 列1,列2,列3,... from 表名;

若当前score表中两位同学的成绩都为90,普通查询会显示两条记录。

Oracle 4~ 增删改查

使用关键字distinct,则只显示一条数据

Oracle 4~ 增删改查