Oracle 4~ 增删改查
Oracle表的简单查询是通过select语句实现的,但既然要查询,表里肯定要先有数据
之前在数据库的student用户下已经创建了表stuinfo,向表中插入数据后就可以进行查询了。
1.查看表结构,即查看表中有哪些字段,可以通过以下语句进行查看。
desc 表名;
以上是我在创建表时设定的字段及字段对应的数据类型。
2.向表中插入几条数据,插入数据的语句结构如下:
insert into 表名(列名1,列名2,列名3,...) values(值1,值2,值3,...);
列名可以省略,当列名省略时,默认是表中所有的列,列的顺序是按照建表的顺序进行排列。
向表中插入李四和龙七两条数据,如下所示:
一个insert命令可以把一个select结果集一次性插入到一张表中。
insert into 表名 select 子句;
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还有很多复杂的条件查询。
5.条件查询
为了进行条件查询,除了stuinfo,我还创建了表class,course和score,并在这些表中插入数据。
(1)= 操作符:表示列值等于一个固定值所查询出的结果。
例如,查询性别为男的学生姓名
select t.stuname from stuinfo t where t.sex = '1';
例如,查询课程编号为‘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');
为了让结果显示得整齐点,我修改了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');
(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';
(4)like 模糊查询:通过字符匹配检索出所需要的数据行。
字符匹配操作可以使用通配符:‘%’—表示0个或多个任意字符、
‘_’—代表一个任意字符、
‘\’—转义字符,‘\%’在字符串中表示一个字符“%”。
例如,查询stuinfo中姓龙的学生信息。
select * from stuinfo where t.stuname like '龙%';
6.update语句:更新/修改数据
update 表名 set 列名1=值1, 列名2=值2, 列名2=值3,...where 条件;
例如,更新学生张三的身份证信息
update stuinfo t
set t.idnumber = '3503011992xxxxxxxx'
where t.stuname = '张三';
7.delete语句:删除表数据。
delete from 表名 where 子句;
例如,删除stuinfo_2018中学生张三的数据
不加where子句时就是删除表中所有的数据。
8.用连接符 '||' 来连接查询结果。
例如,输出学生的姓名,课程和成绩。
9.关键字 DISTINCT:对查询结果进行重复数据的消除。
select distinct 列1,列2,列3,... from 表名;
若当前score表中两位同学的成绩都为90,普通查询会显示两条记录。
使用关键字distinct,则只显示一条数据
上一篇: 差分约束系统的建立详解+题集
下一篇: 四、基本的SQL-SELECT语句
推荐阅读
-
webpack4+express+mongodb+vue实现增删改查的示例
-
python cx_Oracle的基础使用方法(连接和增删改查)
-
C#学习--Oracle数据库基本操作(连接、增、删、改、查)封装
-
sql server连接oracle并实现增删改查
-
idea+spring4+springmvc+mybatis+maven实现简单增删改查CRUD
-
Asp.net MVC4 使用EF实现数据库的增删改查
-
webpack4+express+mongodb+vue实现增删改查的示例
-
Oracle查询操作(增删改查,伪表,高级查询)实例讲解
-
SQLSever语句(增、删、改、查)一、增:有4种方法1.使用insert插入单行数据
-
oracle学习之-----------数据库建表、增删改查操作