AI智能
改变未来

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记录

//方法1create table school_stu2 as select * from school_stu;//方法2create 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 setwhen not matched then insertwhere 条件;

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

merge into school_stu2using school_stuon (school_stu2.学号=school_stu.学号)when not matched theninsert(学号,姓名,专业名,性别,出生时间,总学分,备注)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_stuset 总学分=总学分+5where 学号=\'061102\';

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

update school_stuset 总学分=总学分+5

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

update school_stuset专业名=\'通信工程\',备注=\'转专业学习\',学号=\'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_stumodify 备注 default \'123\';//方法二:alter table school_stuadd(备注2 nvarchar2(250))
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Oracle实验