oracle实验 表的插入、修改和删除的原理

合集下载

oracle insert delete update 执行逻辑 -回复

oracle insert delete update 执行逻辑 -回复

oracle insert delete update 执行逻辑-回复Oracle是一种关系型数据库管理系统(RDBMS),广泛应用于许多企业和组织中。

在使用Oracle时,常见的操作有插入(Insert)、删除(Delete)和更新(Update)数据。

本文将逐步解释这些操作的执行逻辑,为读者提供实用的指导和理解。

首先,让我们从插入数据开始。

插入操作是将新数据添加到数据库表中的过程。

要执行插入操作,首先需要选择要插入数据的目标表。

可以使用SQL 语句中的INSERT INTO命令来指定要插入数据的表。

然后,通过指定插入的值,将数据添加到表的一个或多个列中。

例如,以下是一个插入数据的示例SQL语句:INSERT INTO 表名(列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);在执行插入操作时,需要考虑几个关键方面。

首先,要确保插入的值与表定义中定义的数据类型相匹配。

如果插入的数据类型不匹配,将导致插入操作失败。

其次,插入操作可能会违反表上的某些约束,如主键约束、唯一约束和外键约束。

在插入数据之前,要确保不会违反这些限制,否则插入操作将失败。

在插入数据之后,可能需要删除已存在的数据。

删除操作是从数据库表中删除数据的过程。

使用SQL语句中的DELETE FROM命令可以执行删除操作。

可以通过指定删除数据的目标表,并使用WHERE子句指定要删除的行的条件来执行删除操作。

以下是一个删除数据的示例SQL语句:DELETE FROM 表名WHERE 条件;在执行删除操作时,必须谨慎操作。

请确保提供的WHERE条件正确,以便删除预期的行。

如果没有提供WHERE条件,将删除表中的所有行。

在删除操作之前,最好先进行备份,以防不小心删除了错误的数据。

最后,我们来讨论更新操作。

更新操作是修改数据库表中的数据的过程。

使用SQL语句中的UPDATE命令可以执行更新操作。

可以通过指定要更新数据的目标表,并使用SET子句指定要更新的列和新值,使用WHERE 子句指定要更新的行的条件来执行更新操作。

实验三添加修改和删除

实验三添加修改和删除

任务一:
1.启动DBMS服务器,视情况决定是否附加实验用数据库。

2.利用对象资源管理器,对指定数据库中的表进行数据的添加、修改和删除。

尝试去做一些违反数据库定义中的约束的操作,分析反馈操作信息,并回答思考问题。

3.在查询编辑器中,利用INSERT、DELETE、UPDA TE语句在指定的数据库的相关表中进行如下数据的添加、修改和删除。

对操作中出现的问题进行分析,并加以解决。

在已经创建好的学生选课数据库中的各表中添加样例数据,并更新“学生—课程”数据库。

(1)向学生表S中插入一行数据。

(分析插入数据的学号与已有学号相同或不同时的反馈信息)。

学号相同时:
学号不同时:
(2)根据学生表和课程表生成一个“计算机”系学生的成绩临时表CGRADE,表中包括SN、CNO、GRADE三个属性。

(3)将王玲所学的高等数学成绩改为86.0.
(4)删除成绩低于所有课程平均成绩的选课元组。

(5)设置数据修改和删除的处理策略。

(要求选课表中有S04的选课信息)a.将学生表中学号为S04的学生学号修改为S28。

b.删除学生表中学号为S28的学生信息。

查看执行操作后表SC的变化情况或不能执行操作的反馈信息,并加以分析。

第11讲 数据的插入,更新,合并,删除

第11讲 数据的插入,更新,合并,删除

第11讲数据的插入,更新,合并,删除目的:1.掌握Oracle中的SQL DML语句。

2.掌握如何向表中加入数据insert into语句。

3.掌握修改表中的数据的update语句。

4.掌握删除表中数据的delete from 语句。

授课内容:11.1表中数据的插入:insert into 语句1. 作用:向表中增加记录,或通过视图向视图的基表增加记录。

2. 执行insert的前置条件:(1)表在你的方案中。

(2)其他方案中的表,你有此表的insert对象权限。

(3)你有INSERT ANY TABLE 系统级权限,3. 执行insert into 语句,会触发在表中定义的insert 触发器。

1.insert into 的类型:2.单行插入的insert into 语句:(1)单行插入语法:每次只插入一个记录insert into [schema.]table_name [(列名1,列名2,列名3,。

列n)] values (值1,值2,值3,。

值n)(2)如果省略(列名列表),values()中的值必须与表字段个数相同,且每个值与对应的字段的数据类型要相同。

注:根据oracle9i的数据类型自动转换原则,可以自动根据列类型的要求自动转换。

如:insert into dept values('60',50,50) 是可以的。

insert into dept values('aa',50,50) 是不行的。

(3)如果有(列名列表),则values()中的值与列名中的个数相同。

并且值的类型与列要求的类型对应。

(4)所有要插入的数据,要满足表的约束,才能插入成功。

(5)一般情况下,字符串用单引号括起来,数字直接写数字,日期用一般使用to_date()函数把字符串转换为日期。

(6)经常使用DA TA函数sysdate, 或current_date来执行日期的插入数据。

不让用户手动输入。

oracle 增删改查

oracle 增删改查

Oracle的crud操作Crud操作就是c (create) r (retrieve/read) u (update) d(delete)Insert添加操作1、插入的数据应与字段的数据类型相同Create table test10(id number);insert into test10(id)values(12);2、数据的大小应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中Create table test11(name varchar2(2));insert into test11(name)values(‘ssss’);错误3、在values中列出的数据位置必须与被加入的列的排列位置相对应Create table test12( id number, name varchar2(64));Insert into test12 (id,name) values (‘shunping’,12);错误4、字符和日期数据应包含在单引号中Create table test13 (name varchar2(64),birthday);Insert into test13(name ,birthday)values(shunping,11-may-11);错误5、插入空值,不指定或insert into table value(null)Create table test14(name varchar2(64),age number);Insert into test14(name,age) values(‘shunping’,null);正确6、如果给表的每一列都添加值的话,则可以不带列名Insert into 表名values(列值...);向students中添加数据insert into students values(1,'zs','n','11-may-13',23.34,'hello'); insert into students values(2,'ls','n','11-may-13',23.34,'hello2'); insert into students values(3,'ww','s','11-july-13',23.34,'hello3'); Update 操作1、基本语法Update 表名set 列名=表达式[列名=表达式,....] where 条件2、使用的注意事项(1)update语法可以新值更新原有表行中的各列把zs这个人的性别改成supdate students set sex='s' where name='zs';Set 字句指示要修改哪些列和要修改哪些值把zs这个人的奖学金改为 10update students set fellowship=10 where name='zs';把所有学生的奖学金都提高10%update students set fellowship=fellowship*1.1;Where字句指定应更新哪些行。

ORACLE如何使用存储过程实现添加、修改、删除、查询

ORACLE如何使用存储过程实现添加、修改、删除、查询
-----------------------------------
-- 创建
CREATE OR REPLACE PROCEDURE P_EMP_INSERT
(V_ID NUMBER,V_NAME IN VARCHAR2) -- 定义输入变量
IS
BEGIN
INSERT INTO EMP(EMPNO,ENAME) VALUES(V_ID,V_NAME);
-- ORACLE如何使用存储过程实现添加、修改、删除、查询?
--现在我以scott用户中的EMP表给大家详细讲解。
SELECT * FROM EMP;
-----------------------------------
-- * 添加 *--
(RESULTLIST OUT SYS_REFCURSOR,V_ID IN NUMBER,V_NAME IN VARCHAR2)
IS
SQL_STR VARCHAR2(500);
BEGIN
SQL_STR:='SELECT * FROM EMP WHERE 1=1 ';
DBMS_OUTPUT.put_line('V_ID='||V_ID || ' V_NAME='||V_NAME); Байду номын сангаас
(V_ID IN NUMBER, -- 定义输入变量
V_NAME OUT VARCHAR2) -- 定义输出变量
IS
BEGIN
SELECT ENAME INTO V_NAME FROM EMP WHERE EMPNO=V_ID;
END;
-- 执行条件查询 只返回一条数据

Oracle表的增删改查

Oracle表的增删改查

表的增删改查创建表CREATE TABLE [用户名.]表名(列名数据类型 [default 默认值] [,...]...);SQL> create table t1 (2 id number(10),3 name varchar2(20),4 password varchar2(30));SQL> create table tab1 as select * from emp where sal>2000; SQL> create table tab2 as select * from emp where 1=2;增加修改删除列增加一列ALTER TABLE [用户名.]表名ADD (列名1 数据类型[DEFAULT 表达式],[列名2 数据类型],...)SQL> desc t1;名称是否为空? 类型------------- -------- ---------------ID NUMBER(10)NAME VARCHAR2(20)PASSWORD VARCHAR2(30)SQL> alter table t1 add (sal number(10));SQL> desc t1;名称是否为空? 类型--------------- -------- --------------------ID NUMBER(10)NAME VARCHAR2(20)PASSWORD VARCHAR2(30)SAL NUMBER(10)SQL> alter table t1 add (job varchar(10));SQL> desc t1;名称是否为空? 类型------------------ -------- ----------------ID NUMBER(10)NAME VARCHAR2(20)PASSWORD VARCHAR2(30)SAL NUMBER(10)JOB VARCHAR2(10)修改表已存列的数据类型与列名重命名语法格式:ALTER TABLE 表名MODIFY (列名1,数据类型 [DEFAULT 表达式],列名2,数据类型,...)SQL> desc t1;名称是否为空? 类型-------------------- -------- ---------------ID NUMBER(10)NAME VARCHAR2(20)PASSWORD VARCHAR2(30)SAL NUMBER(10)JOB VARCHAR2(10)SQL> alter table t1 modify (sal varchar2(20));SQL> desc t1;名称是否为空? 类型--------------------- -------- ---------------ID NUMBER(10)NAME VARCHAR2(20)PASSWORD VARCHAR2(30)SAL VARCHAR2(20)JOB VARCHAR2(10)SQL> alter table t1 rename column job to comm;SQL> desc t1;名称是否为空? 类型-------------------- -------- ---------------ID NUMBER(10)NAME VARCHAR2(20)PASSWORD VARCHAR2(30)SAL VARCHAR2(20)COMM VARCHAR2(10)SQL> alter table t1 modify (comm number(10));SQL> desc t1;名称是否为空? 类型------------------------ -------- ---------------ID NUMBER(10)NAME VARCHAR2(20)PASSWORD VARCHAR2(30)SAL VARCHAR2(20)COMM NUMBER(10)删除表里的某列ALTER TABLE 表名 DROP COLUMN 列名;SQL> desc t1;名称是否为空? 类型------------------------------ -------------------ID NUMBER(10)NAME VARCHAR2(20)PASSWORD VARCHAR2(30)SAL VARCHAR2(20)COMM NUMBER(10)SQL> alter table t1 drop column comm;SQL> desc t1;名称是否为空? 类型------------------------ -------- -------------------ID NUMBER(10)NAME VARCHAR2(20)PASSWORD VARCHAR2(30)SAL VARCHAR2(20)间接删除表里已存在的列删除表里的列特别是删除大表里的列是特耗资源的所以在删除一个列时可以先把要删除的列打标记,标记成无用列 ,然后等系统不忙时在彻底删除这个列语法格式:ALTER TABLE 表名 SET UNUSED COLUMN 列名;把一个列设置成无用列注意一下事项⎽必需在8i以上版本适用⎽该列被设置成无用列后,并不是删除了而是设置成无用标记而已还需要手工删除这个列⎽设置成无用列后,无法用sqlplus或是sql 语句看到的⎽oracle把设置成无用列当作删除列处理⎽可以适用DROP UNUSED (列名) 选项删除被设置成无用的列⎽因为该语句是DDL语句没有恢复无用列的命令然后等系统不忙时在用ALTER TABLE 表名DROP UNUSED COLUMN;SQL> alter table t1 set unused column sal;SQL> desc t1;名称是否为空? 类型----------------------- -------- --------------ID NUMBER(10)NAME VARCHAR2(20)PASSWORD VARCHAR2(30)SQL> alter table t1 drop unused column;SQL> desc t1;名称是否为空? 类型------------------------ -------- --------------ID UMBER(10)NAME VARCHAR2(20)PASSWORD VARCHAR2(30)truncate table 截断表当一个表里的数据不再需要时,可以适用truncate table 全部删除表里的数据,该语句为DDL语句无法适用rollback 来回滚数据语法格式:TRUNCATE TABLE 表名特点:⎽删除表中的数据行,但保留表的结构⎽truncate 是DDL 语句,如果没有备份数据无法恢复⎽truncate 删除表中的数据行后,立即释放磁盘空间如果只删除数据,而保留数据结构适用truncate 如果既要删除数据,也要删除表结构适用DROP语法格式:DROP TABLE 表名特点:⎽DROP删除表中的所有数据行和表的结构⎽DROP 也删除表的所有索引⎽提交所有挂起事务所有基于被DROP的表的视图别名依然保留但已经无效对象表的重命名语法格式:RENAME 旧表名 TO 新表名SQL> rename t1 to table1;SQL> desc t1;ERROR:ORA-04043: 对象 t1 不存在SQL> desc table1;名称是否为空? 类型---------------------- -------- -------------ID NUMBER(10)NAME VARCHAR2(20)PASSWORD VARCHAR2(30)删除一个表DROP TABLE TABLENAMESQL> drop table tab1;SQL> select * from tab;TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- DEPT TABLEEMP TABLEBONUS TABLESALGRADE TABLEBIN$DCVrueY1SDSmKp/kGnvFpA==$0 TABLETAB2 TABLETABLE1 TABLE清空闪回回收站SQL> purge Recyclebin;回收站已清空。

Oracle实验报告

Oracle实验报告

Oracle数据库实验报告实验一:Oracle 10g安装卸载及相关工具配置一、实验目标:安装Oracle 10g,了解OEM,通过DBCA安装数据库,通过DBCA删除数据库,sqldeveloper连接数据库,卸载oracle 10g。

二、实验学时数2学时三、实验步骤和内容:1、安装Oracle10g(默认安装数据库)双击,选择基本安装,安装目录D:盘,标准版,默认数据库orcl,口令bhbh。

进入先决条件检查界面时:网络配置需求选项不用打勾,直接下一步,是。

直到安装成功。

2、登陆和了解OEM主要是已网页的形式来对数据库进行管理。

- OraDb10g_home1->配置和移植工具->Database Configuration Assistant->删除数据库->……4、通过DBCA安装数据库xscj程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant->创建数据库->……5、sqldeveloper连接数据库打开sqldeveloper,新建连接连接名:system_ora用户名:system口令:bhbh主机名:本机计算机名SID:xscj测试,显示成功,连接,保存。

6、卸载oracle 10gWindows下1>停止所有Oracle服务,点Universal Installer卸载2>删除注册表中的所有关于Oracle项在HKEY_LOCAL_MACHINE\SOFTWARE下,删除Oracle目录3>删除硬盘上所有Oracle文件。

(1)Oracle安装文件(2)系统目录下,在Program files文件夹中的Oracle文件四、上机作业根据实验步骤完成逐个实验目标中的任务。

五、心得体会通过这次的实验,我了解了oracle数据库的情况。

表数据的插入、修改和删除[总结]

表数据的插入、修改和删除[总结]

表数据的插入、修改和删除一、实验目的1.在数据表中用Insert增加记录。

2.用Update修改数据表中的数据。

3.用Delete删除表中的数据。

4.了解事务处理过程及其命令。

二、实验环境安装了oracle数据库的计算机一台三、实验步骤和内容1.Insert命令1)用来在数据表中增加记录,格式如下:INSERT INTO tablename [(column, column,….)]V ALUES (value, value, ….);命令中[(column, column,….)]是可选的。

一般情况下,为了编程的方便,最好指定字段列表。

该命令每次只能增加一条记录。

注意,CHARACTER和DA TE必须用单引号括起来。

例如:INSERT INTO DEPT (DEPTNO,DNAME,LOC)V ALUES (50,’市场部’,’上海’);在DEPT中增加一个新部门,忽略部门名称,这时字段列表必须指定否则出错,可用如下命令:INSERT INTO DEPT (DEPTNO, LOC)V ALUES (50,’上海’);另外,如果部门名称不能确定,可用NULL代替,如下:INSERT INTO DEPT (DEPTNO,DNAME,LOC)V ALUES (50,NULL,’上海’);增加DA TE类型的数值,常用格式是DD-MON-YY。

默认的世纪是20世纪,ORCALE 已克服了Y2K(千年虫)问题。

如下:INSERT INTO EMP (EMPNO,NAM,JOB,MGR,HIREDA TE,SAL,COMM,DEPTNO)V ALUES (7568,’MASON’,’ANALYST’,7566,TO_DA TE(‘24/06/2084 9:30’,’DD/MM/YYYY HH:MI’),3000,NULL,20);2)增加从其他数据表查询出的数据命令格式:INSERT INTO table [(column, column, ….)]SELECT select-listFROM table(s);2.Update命令在需要修改表中数据时,可使用update命令如下:UPDA TE table[alias]SET column[,column….] = {expression, subquery}[WHERE condition];命令由三部分组成:①update后跟一个或多个要修改的表,这部分是必不可少的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle实验表的插入、修改和删除的原理Oracle实验中,表的插入、修改和删除的原理如下:
1.插入数据:
●当向表中插入数据时,Oracle会根据表的结构(列的数据类型和
约束等)对数据进行验证,确保数据符合表的定义。

●如果要插入的数据与表中的主键或唯一约束冲突,Oracle会抛出
错误。

●插入数据时,可以使用INSERT语句指定要插入的列和对应的数
据值。

如果未指定列名,则必须为表中的每一列提供一个值。

2.修改数据:
●当修改表中的数据时,Oracle会找到要修改的行,并更新相应的
列的值。

●如果修改的数据违反了表中的某些约束(如唯一约束、非空约束
等),Oracle会抛出错误。

●修改数据时,可以使用UPDATE语句指定要修改的列和新值,以
及用于定位要修改的行的条件(通常为WHERE子句)。

3.删除数据:
●当从表中删除数据时,Oracle会找到要删除的行,并将其从表中
删除。

●如果删除的数据违反了表中的某些约束(如外键约束等),
Oracle会抛出错误。

●删除数据时,可以使用DELETE语句指定用于定位要删除的行的条
件(通常为WHERE子句)。

如果要删除表中的所有行,可以使用
TRUNCATE TABLE语句。

这些原理是基于关系数据库管理系统的基本操作,Oracle作为关系数据库管理系统之一,也遵循这些原理。

在实际实验中,需要注意操作的正确性和数据的一致性,以避免数据损坏或错误。

相关文档
最新文档