Oracle实验

操作表数据

增加表记录

//插入记录的语法格式:
insert into [方案名].表名[列名] values ()

【例3.1】建立school_stu,向学生(school_stu)表插入如下记录

学号 姓名 专业名 性别 出生时间 总学分 备注
061102 王平 计算机 1986-09-02 38 NULL
061103 王燕 计算机 1985-10-06 40 NULL
061104 韦严平 计算机 1986-08-26 40 NULL
061105 吴庆红 计算机 1985-12-30 36 有两门不及格
061106 李方方 计算机 1986-11-20 40 NULL
061107 李明 计算机 1986-05-01 40 NULL
061108 林一帆 计算机 1985-08-05 42 已提前修完
061109 张强民 计算机 1984-08-11 40 NULL
061110 张蔚 计算机 1987-07-22 40 NULL
061111 赵琳 计算机 1986-03-18 40 NULL
061112 罗林琳 计算机 1984-01-30 40 NULL
create table school_stu
(
  学号 nvarchar2(20) not null,
  姓名 nvarchar2(20)   not null,
  专业名 nvarchar2(20)   not null,
  性别 nvarchar2(20) ,
  出生时间  DATE,
  总学分 number(2),
  备注 nvarchar2(250),
  CONSTRAINT pk_学号 PRIMARY key(学号)
);
insert into school_stu
(学号,姓名,专业名,性别,出生时间,总学分,备注)
values
('061102','王平','计算机','女',to_date('1986-09-02','yyyy-MM-dd'),38,null);

【例3.2】建立school_stu2,向学生(school_stu2)表中插入school_stu记录

//方法1
create table school_stu2 as select * from school_stu;

//方法2
create table school_stu2
(
  学号 nvarchar2(20) not null,
  专业名 nvarchar2(20)   not null,
  姓名 nvarchar2(20)   not null,
  性别 nvarchar2(20) ,
  出生时间  DATE,
  总学分 number(2),
  备注 nvarchar2(250),
  CONSTRAINT pk_学号2 PRIMARY key(学号)
);
insert into school_stu2
(学号,姓名,专业名,性别,出生时间,总学分,备注)
select 学号,姓名,专业名,性别,出生时间,总学分,备注 from school_stu;

merge语句语法格式:

merge into 要合并的表名
using 要匹配的表名 on(要匹配的字段)
when matched  then update set
when not matched then insert
where 条件;

【例3.4】合并school_stu数据到school_stu2中(school_stu2已经存在的不合并)

merge into school_stu2
 using school_stu
 on (school_stu2.学号=school_stu.学号)
 when not matched then
 insert
 (学号,姓名,专业名,性别,出生时间,总学分,备注)
 values
 (b.学号,b.姓名,b.专业名,b.性别,b.出生时间,b.总学分,b.备注);

删除表记录

1.使用 DELETE删除数据

delete from 表名 where 条件;

2.使用truncate table语句删除表数据

truncate table 表名;

两者区别:使用delete删除表记录是一行一行删除,当数据量大时,效率较低,使用truncate 删除表记录即把整个表的记录删除;两者最终的结果是一样的。

修改表记录

//语法格式:
update 表名或者视图名
set 字段名=字段值
where 条件;

【例3.6】 将school_stu表中学号为“061102”的学生备注列值改为“三好学生”

update school_stu
set 总学分=总学分+5
 where 学号='061102';

【例3.7】将school_stu表中的所有学生的总学分都增加10。

update school_stu
set 总学分=总学分+5

【例3.8】将姓名为“王平”的同学的专业改为“通信工程”,备注改为“转专业学习”,学号改为“061241”。

update school_stu
set 
专业名='通信工程',
备注='转专业学习',
学号='061241'
where 姓名='王平';

默认值约束

1. 默认值约束的定义

//默认值约束定义的一般格式为:
create table 表名
(
列名  列的类型 (长度) default)

【例3.10】在定义表时定义一个字段的默认值约束。

create table school_stu
(
  学号 nvarchar2(20) not null,
  姓名 nvarchar2(20)   not null,
  专业名 nvarchar2(20)   not null,
  性别 nvarchar2(20) default '男',
  出生时间  DATE,
  总学分 number(2) default 0,
  备注 nvarchar2(250),
  CONSTRAINT pk_学号 PRIMARY key(学号)
);

【例3.11】在修改表时定义一个字段的默认值约束。

//方法一:
alter table school_stu
 modify 备注 default '123';

//方法二:
alter table school_stu
add(
  备注2 nvarchar2(250)
 )
发布了5 篇原创文章 · 获赞 0 · 访问量 88

猜你喜欢

转载自blog.csdn.net/qq_44838668/article/details/105078560