🌈个人主页:小新_-
🎈个人座右铭:"成功者不是从不失败的人,而是从不放弃的人!"🎈
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
🏆所属专栏**:Oracle网络数据库** 欢迎订阅,持续更新中~~~
✨让小新带着你快乐的学习吧~✨
目录
[二、以界面方式操作数据库(采用SQL Developer)](#二、以界面方式操作数据库(采用SQL Developer))
[三、以命令方式操作数据库(采用SQL *Plus)](#三、以命令方式操作数据库(采用SQL *Plus))
一、以界面方式创建数据库(采用DBCA)
在Oracle 11g中,以界面方式创建数据库主要使用数据库配置向导DBCA(Database Configuration Assistant)来完成。下面使用DBCA创建学生成绩管理数据库XSCJ,步骤如下。 (1)启动DBCA,出现"欢迎使用"界面,如图所示,单击"下一步"按钮进入创建数据库的向导。
(2)在"操作"窗口中,用户可以选择要执行的操作,这里选中"创建数据库"选项,如图所示,单击"下一步"按钮。
3)在"数据库模板"窗口中,选择相应选项后单击"显示详细资料"按钮可查看该数据库模板的各种信息。这里选择"一般用途或事务处理"选项,如图所示,单击"下一步"按钮。
4)在"数据库标识"窗口中输入"全局数据库名"和"SID",如图所示,单击"下一步"按钮。
说明:SID是数据库实例的唯一标识符,创建系统服务和操作数据库时都要用到。SID在同一数据库服务器中必须是唯一的。
(5)在"管理选项"窗口中可以选择配置Enterprise Manager企业管理器或者配置Database Control管理本地数据库,这里保持默认设置,如图所示,单击"下一步"按钮。
(6)在"数据库身份证明"窗口中,将所有账户设置为同一管理口令(Mm123456),如图所示,单击"下一步"按钮。
(7)在"数据库文件所在位置"窗口中,选择"所有数据库文件使用公共位置",单击"浏览"按钮选择数据库文件的存放路径,如图所示,单击"下一步"按钮。
(8)在"恢复配置"窗口中采取默认的配置,单击"下一步"按钮继续。
(9)在"数据库内容"窗口中勾选"示例方案",如图3.8所示,这样就可以在学习的过程中参考标准设置,也可了解基础的数据库创建方法和SQL语言。如果你有SQL脚本,还可以在这一步加载,系统会根据脚本在这个数据库中创建用户、表空间、表、权限等,但要注意,加载SQL脚本的先后顺序一定要正确。这里暂不加载脚本,直接单击"下一步"按钮。
(10)在"初始化参数"和"数据库存储"窗口中也保持默认配置,两次单击"下一步"按钮。
(11)在"创建选项"窗口中选择"创建数据库"选项,如图3.9所示,单击"完成"按钮,之后会弹出确认创建的对话框,单击"确定"按钮开始创建数据库。
(12)创建数据库期间显示的创建进度窗口如图3.10所示,过程较为漫长,读者要耐心地等待......
(13)创建数据库完毕后,系统会弹出窗口显示相关的提示信息,如图3.11所示,需要在这一步解锁SCOTT、SYSTEM、SYS账户并设置其口令,单击窗口中的"口令管理"按钮,弹出"口令管理"对话框。
找到以上三个用户账户,将"是否锁定账户?"一栏里的"J"去掉,口令均设为 Mm123456,
该口令用于后面登录和操作数据库,请读者务必牢记!单击"确定"按钮返回后单击"退出"按钮。
至此,所有步骤都已全部完成。现在,系统服务中应该已经有 SID 为 XSCJ 的服务选项并已置为"自动"启动,服务正在运行,如图3.12 所示,访问 XSCJ 数据库前必须保证已启动了这两个系统服务:OracleOraDbllg homeITNSListener 和 OracleServiceXSCJ。
二、以界面方式操作数据库(采用SQL Developer)
(一)表操作
表是Oracle系统中最主要的数据库对象,每个数据库都包含了若干个表。表是用来存储数据的一种逻辑结构,由行和列组成,故也称为二维表。
1.表的概念
表是日常工作和生活中经常使用的一种表示数据及其关系的形式,表3.1就是用来表示学生信息的一个学生表。
|--------|-----|-----|------------|------|-------|-------------|
| 学 号 | 姓 名 | 性 别 | 出 生 时 间 | 专 业 | 总 学 分 | 备 注 |
| 151101 | 王林 | 男 | 1997-02-10 | 计算机 | 50 | |
| 151103 | 王燕 | 女 | 1996-10-06 | 计算机 | 50 | |
| 151108 | 林一帆 | 男 | 1996-08-05 | 计算机 | 52 | 已提前修完一门课 |
| 151202 | 王林 | 男 | 1996-01-29 | 通信工程 | 40 | 有一门课不及格,待补考 |
| 151204 | 马琳琳 | 女 | 1996-02-10 | 通信工程 | 42 | |
关系数据库使用表(即关系)来表示实体及其联系。表包含下列概念。
- 表结构:每个表都包含一组固定的列,而列由数据类型(DATATYPE)和长度(LENGTH)两部分组成,以描述该表所代表的实体的属性。
- 记录:每个表包含了若干行数据,它们是表的"值",其中的一行称为一个记录,因此,表是记录的有限集合。
- 字段:每个记录由若干个数据项构成,将构成记录的数据项称为字段。
- 关键字:若表中记录的某个字段或字段组合能唯一标识记录,则称该字段(字段组合)为候选关键字(Candidate key)。若一个表有多个候选关键字,则选定其中一个为主关键字(Primary key),也称为主键。当一个表仅有唯一一个候选关键字时,该候选关键字就是主关键字。这里的主关键字与第1章中介绍的主码所起的作用是相同的,都用来唯一标识记录行。
2.数据类型
在设计表的列时,必须为其指定数据类型,它决定了该列数据的取值、范围和存储格式。列的数据类型可以是Oracle提供的系统数据类型,其中主要的类型列于表中。除了表中所列外,Oracle还提供可作为ANSI标准数据类型的替代类型。对于ANSI的CHARACTER及CHAR,使用Oracle的CHAR类型;对于ANSI的CHARACTER VARYING及CHAR VARYING,使用Oracle的VARCHAR2类型;对于ANSI的NUMERIC、DECIMAL、DEC、INTEGER、INT和SMALLINT类型,使用Oracle的NUMBER类型。用户还可以创建自己的抽象数据类型,也可以使用特定的REF数据类型,这些REF类型引用数据库其他地方的行对象。
3.表结构设计
创建表的实质就是定义表结构以及设置表和列的属性。在创建表之前,先要确定表的名字、表的属性,同时确定表所包含的列名、列的数据类型、长度、是否可为空值、约束条件、默认值设置、规则以及所需索引、哪些列是主键、哪些列是外键等属性,这些属性构成表结构。 这里要使用到的学生成绩管理系统的三个表,即学生表(表名为XSB)、课程表(表名为KCB)和成绩表(表名为CJB)为例介绍如何设计表的结构。 基础部分使用的学生表(XSB)包含的列有学号、姓名、性别、出生时间、专业、总学分、备注。为便于理解,使用中文的列名(实际开发应使用英文字母表示列名)。其中,"学号"列的数据是学生的学号,其值有一定的意义,例如"151101"中"15"表示该生所在年级,"11"表示所属班级,"01"表示该生在班级中的序号,故"学号"列的数据类型是6位的定长字符型;"姓名"列记录学生的姓名,一般不超过4个中文字符,所以可以用8位定长字符型数据;"性别"列有"男"、"女"两种取值,用2位定长字符型数据,默认是"男";"出生时间"是日期时间类型数据,列的数据类型定为date;"专业"列为12位定长字符型数据;"总学分"列是整数型数据,列的数据类型定为number,长度为2(故值在0~100之间,默认是0);"备注"列需要存放学生的备注信息,备注信息的内容在0~200个字之间,所以应该使用varchar2类型。
在XSB表中,只有"学号"列能唯一标识一个学生,所以将该列设为主键。最终设计出XSB的表结构如表所示。
|------|---------------|---------|-------|------------------|
| 列 名 | 数 据 类 型 | 是 否 可 空 | 默 认 值 | 说 明 |
| 学号 | char(6) | × | 无 | 主键 |
| 姓名 | char(8) | × | 无 | |
| 性别 | char(2) | × | "男" | |
| 出生时间 | date | × | 无 | |
| 专业 | char(12) | √ | 无 | |
| 总学分 | number(2) | √ | 0 | 0 ≤ 总学分<100 |
| 备注 | varchar2(200) | √ | 无 | |
参照XSB表结构的设计方法,同样可以设计出其他两个表的结构,如所示是KCB和CJB的表结构。
|------|-----------|---------|-------|--------|
| 列 名 | 数 据 类 型 | 是 否 可 空 | 默 认 值 | 说 明 |
| 课程号 | char(3) | × | 无 | 主键 |
| 课程名 | char(16) | × | 无 | |
| 开课学期 | number(1) | √ | 1 | 只能为1~8 |
| 学时 | number(2) | √ | 0 | |
| 学分 | number(1) | × | 0 | |
4.创建表
用Oracle 11g自带的SQL Developer工具可以十分灵活地创建表。这里以创建XSB表为例,操作的步骤如下。
(1)启动SQL Developer,在"连接"节点下打开数据库连接myorcl(已创建)。右击"表"节点,选择"新建表"菜单项。
(2)进入"创建表"窗口,在"名称"栏中填写表名XSB,在"表"选项卡的"列名"、"类型"、"大小"、"非空"、"主键"栏中分别填入(选择)XSB表中"学号"列的列名、数据类型、长度、非空性和是否为主键等信息,完成后单击"添加列"按钮输入下一列,直到输入完所有的列为止,如图所示。
说明:如果数据类型当中没有char类型可选,可在"高级"选项中将varchar2修改为char类型。
5.修改表
使用SQL Developer工具修改表的方法很简单。XSB表创建完成后,在主界面的"表"目录下可以找到该表。右击XSB表选择"编辑"菜单项,进入"编辑表"窗口,在该窗口中的"列"选项页右侧单击 按钮可以添加新列,单击 按钮可以删除列,在"列属性"选项页的各栏中可以修改列的属性。 表的主键列不能直接删除,要删除必须先取消主键。单击窗口左侧"主键"选项,在窗口右边的"所选列"栏中会显示已被设为主键的列,如图所示。双击该列即可取消主键,如果要设某一列为主键,在"可用列"栏中双击该列或单击 按钮即可添加该列为主键。
6.删除表
以删除XSB表为例,在"表"目录下右击XSB表选择"表"菜单下的"删除"子菜单项,如图所示,之后弹出"删除"对话框,选中"级联约束条件"复选框,单击"应用"按钮,弹出表已删除的提示消息,单击"确定"按钮即可。
(二)表数据操作
创建数据库和表后,需要对表中的数据进行操作,包插插入、删除和修改,这些操作可以直接在 SQL Developer 中实现。下面使用已创建的XSCJ 数据库中的XSB 表为例说明表数据操作的方法。
1、插入记录
首先,启动SQL Developer,打开myorcl连接(需要输入SCOTT用户口令),展开"表"目录,单击"XSB"表,在右边窗口中单击"数据"选项卡,切换到表数据窗口,如图3.17所示。在此窗口中,表中的记录按行显示,每个记录占一行,因为此时表中尚没有数据,故只能看到一行列标题。
单击 (插入行)按钮,表中将增加一个新行,在新行中双击一列空白处后输入数据,一行数据输完后单击表数据窗口左边的行号,即选中该行,使之成为当前行。 说明:在输入"出生时间"列数据时,Oracle 11g默认的日期格式为"DD-MM 月-YY",例如,日期"1997-02-10"应该输入"10-2月-97"。为能使用我们所习惯的输入方式,这里先要修改一下数据库默认的日期格式,在SQL Developer命令窗口中执行如下语句
ALTER SESSION SET NLS_DATE_FORMAT = "YYYY-MM-DD";
注意:
该语句只能在当前会话中起作用,在下一次再打开 SOL Developer窗口时,还需要重新执行该语句。
输入完一行数据后,单击 (提交)按钮将数据保存到数据库中,同时下方的"Data Editor - 日志"子窗口列出用于插入数据的INSERT语句,如图3.18所示。如果保存成功,还会显示"提交成功"信息;如果保存出错,则显示错误信息。接着再单击"插入行"按钮录入下一行,直到全部数据录完为止。
2、修改记录
修改记录的方法与插入类似,在"数据"选项页找到要修改的记录所在行,修改后该行的行号前会出现一个"*"号,如图所示,更改完成单击"提交"按钮保存修改的数据。
3、删除记录
如果要删除一行记录,选中该行,单击 (删除所选行)按钮,之后该行的行号前会出现一个"-"号,如图所示,单击"提交"按钮确认删除。
4、撤销操作
如果需要撤销之前对表中记录所做的操作,只需在单击"提交"按钮之前单击 (回退)按钮即可,如图所示,为撤销上一步的删除操作。
(三)执行SQL命令
使用SQL Developer不仅可以以图形界面方式操作数据库表中的记录,还可以直接编辑和运行SQL语句。启动SQL Developer,单击工具栏 按钮的右下箭头选择"myorcl",界面上将出现命令编辑区,如图所示,在其中输入要运行的SQL语句,如下:
这里是以执行创建表的CREATE TABLE命令(稍后在3.3节中详细介绍)为例,操作前须先删除之前已创建的XSB表,输完命令后单击窗口上方的 或 按钮即可执行该SQL语句重新创建XSB表。表建好后,往其中录入样本数据(见图)以备后用
三、以命令方式操作数据库(采用SQL *Plus)
1、创建表
在以自己的模式创建表时,必须拥有CREATE TABLE系统权限;在其他用户模式中创建表时,必须拥有CREATE ANY TABLE系统权限。Oracle创建表使用CREATE TABLE语句,基本的语法格式为:
sql
CREATE TABLE [<用户方案名>.] <表名>
(
<列名1> <数据类型> [DEFAULT <默认值>] [<列约束>]
<列名2> <数据类型> [DEFAULT <默认值>] [<列约束>]
[,...n]
<表约束>[,...n]
)
[AS <子查询>]
说明:
(1)<用户方案名>:用户方案是指该表所属的用户,如果省略则默认为当前登录的用户。
(2)DEFAULT:关键字DEFAULT指定某一列的默认值。默认值的数据类型必须与该列的数据类型相匹配,列的长度必须足以容纳这一表达式值。
(3)<列约束>:定义一个完整性约束作为列定义的一部分,该子句的语法为:
sql
[NOT] NULL
[UNIQUE]
[ PRIMARY KEY]
[ REFERENCES [<用户方案名>.] <表名>(<列名>)]
[CHECK(<条件表达式>)]
(4)<表约束>:定义一个完整性约束作为表定义的一部分,有关完整性约束的内容会在后面详细介绍。
(5)AS <子查询>:表示将由子查询返回的行插入到所创建的表中,子查询的使用将在后面具体介绍。使用AS子句时,要注意以下事项。
- ① 表中的列数必须等于子查询中的表达式数。
- ② 列的定义只能指定列名、默认值和完整性约束,不能指定数据类型。
- ③ 不能在含有AS子句的CREATE TABLE语句中定义引用完整性。
相反,必须先创建没有约束的表,然后再用ALTER TABLE语句来添加约束。 Oracle从子查询中推导出数据类型和长度,同时也遵循下列完整性约束规则。
- ① 如果子查询选择列而不是包含列的表达式,Oracle自动地为新表中的列定义任何NOT NULL约束,该列与被选表中的列相一致。
- ② 如果CREATE TABLE语句同时包含AS子句和CONSTRAINT子句,Oracle就忽略AS子句。
如果子查询中的全部表达式是列,则在表定义中可完全忽略这些列。在这种情况下,表的列名和子查询中的列名相同。
【例】 利用CREATE TABLE命令为XSCJ数据库建立表KCB。表结构参照表KCB。
sql
CREATE TABLE KCB
(
课程号 char(3) NOT NULL PRIMARY KEY,
课程名 char(16) NOT NULL,
开课学期 number(1) NULL,
学时 number(2) NULL,
学分 number(1) NOT NULL
);
创建完毕,用命令"DESCRIBE KCB;"可查看KCB表结构,如图所示
如果表的主键由两个或多个列构成,则必须使用PRIMARY KEY关键字定义为表的完整性约束,语法格式如下:
sql
CREATE TABLE <表名>
(
<列名1> <数据类型> [DEFAULT <默认值>] [<列约束>] [,...n]
PRIMARY KEY(<列名1>, <列名2>[,...n])
)
【例】 利用CREATE TABLE命令为XSCJ数据库建立表CJB。表结构参照表CJB。
sql
CREATE TABLE CJB
(
学号 char(6) NOT NULL,
课程号 char(3) NOT NULL,
成绩 number(2) NULL,
PRIMARY KEY(学号, 课程号)
)
【例】 创建XSB表中计算机专业学生的记录备份表,表名为XS_JSJ。
sql
CREATE TABLE XS_JSJ
AS SELECT *
FROM XSB
WHERE 专业= '计算机' ;
创建完毕,可用SQL Developer查看结果,如图3.25所示,可以看到XS_JSJ表中存储(备份)了XSB表中计算机专业全部11名学生的记录。
2、修改表
修改表结构使用ALTER TABLE语句,语法格式为:
sql
ALTER TABLE [<用户方案名>.] <表名>
[ ADD(<新列名> <数据类型> [DEFAULT <默认值>][列约束],...n) ] /*增加新列*/
[ MODIFY([ <列名> [<数据类型>] [DEFAULT <默认值>][列约束],...n) ] /*修改已有列属性*/
[<DROP子句> ] /*删除列或约束条件*/
说明:
(1)ADD子句:用于向表中增加一个新列,新的列定义和创建表时定义列的格式一样,一次可添加多个列,中间用逗号隔开。
(2)MODIFY子句:用于修改表中某列的属性(数据类型、默认值等)。在修改数据类型时需要注意,如果表中该列所存数据的类型与将要修改的列类型冲突,则会发生错误。例如,原来char类型的列要修改为number类型,而原来列值中有字符型数据"a",则无法修改。
(3)DROP子句:该子句用于从表中删除指定的字段或约束,语法格式为:
sqlDROP { COLUMN <列名> ∣PRIMARY [KEY] ∣UNIQUE (<列名>,...n) ∣CONSTRAINT <约束名> ∣[ CASCADE ] }
其中各个关键字的含义如下:
- PRIMARY:删除表的主键。
- CONSTRAINT:删除完整性约束。
- CASCADE:删除其他所有的完整性约束,这些约束依赖于被删除的完整性约束。
- UNIQUE:删除指定列上的UNIQUE约束。
- COLUMN:删除指定的列
下面通过例子说明ALTER TABLE语句的使用,为了不破坏XSB表结构,这里只对它的备份XS_JSJ表执行修改操作。
【例】 使用ALTER TABLE语句修改XSCJ数据库中的XS_JSJ表。
(1)在XS_JSJ表中增加两列:奖学金等级、等级说明。
sql
ALTER TABLE XS_JSJ
ADD (奖学金等级 number(1),
等级说明 varchar2(40) DEFAULT '奖金1000元');
(2)在XS_JSJ表中修改"等级说明"列的默认值。
sql
ALTER TABLE XS_JSJ
MODIFY (等级说明 DEFAULT '奖金800元' );
运行语句后,打开SQL Developer的"编辑表"窗口查看XS_JSJ表的列属性,可见"等级说明"列的默认值已改为"奖金800元",如图所示。
(3)在XS_JSJ表中删除"奖学金等级"和"等级说明"列。
sql
ALTER TABLE XS_JSJ
DROP COLUMN 奖学金等级;
ALTER TABLE XS_JSJ
DROP COLUMN 等级说明;
(4)为XS_JSJ表添加主键。
sql
ALTER TABLE XS_JSJ
ADD (CONSTRAINT "PK_JSJ" PRIMARY KEY(学号) );
3、删除表
语法格式为:
sql
DROP TABLE [<用户方案名>.] <表名>
例如要删除表XS_JSJ,使用如下语句:
sql
DROP TABLE XS_JSJ;
4、插入记录
1.INSERT语句
插入记录一般使用INSERT语句,语法格式为:
sql
INSERT INTO <表名>[(<列名1>,<列名2>,...n)]
VALUES(<列值1>,<列值2>,...n)
该语句的功能是向指定的表中加入一行,由VALUES指定各列的值。
相关参数说明如下:
- 在插入时,列值表必须与列名表顺序和数据类型一致。如果不指定表名后面的列名列表,则在VALUES子句中要给出每一列的值,VALUES中的值要与原表中字段的顺序和数据类型一致,而且不能缺少字段项。
- VALUES中描述的值可以是一个常量、变量或一个表达式。字符串类型的字段必须用单引号括起来,字符串转换函数TO_DATE把字符串形式的日期型数据转换成Oracle 11g规定的合法的日期型数据。
- 如果列值为空,则值必须置为NULL。如果列值指定为该列的默认值,则用DEFAULT。这要求定义表时必须指定该列的默认值。
- 在对表进行插入行操作时,若新插入的行中所有可取空值的列值均取空值,则可以在INSERT语句中通过列表指出插入的行值中所包含非空的列,而在VALUES中只要给出这些列的值即可。
【例】 向XSCJ数据库的表XSB中插入如下一行:
151114 周何骏 计算机 男 1998-09-25 90 可以使用如下SQL语句:
sql
INSERT INTO XSB(学号, 姓名, 性别, 出生时间, 专业, 总学分)
VALUES('151114', '周何骏', '男',TO_DATE('19980925','YYYYMMDD'), '计算机', 90);
//或者下面这样,也是一样的效果
INSERT INTO XSB
VALUES('151114', '周何骏', '男', '1998-09-25', '计算机', 90, NULL);
【例】 向具有默认值字段的表中插入记录。 创建一个具有默认值字段的表test:
sql
CREATE TABLE test
(
姓名 char(20) NOT NULL,
专业 varchar2(30) DEFAULT('计算机'),
年级 number NOT NULL
);
用INSERT向test表中插入一条记录:
sql
INSERT INTO test(姓名, 年级) VALUES('周何骏', 3);
利用INSERT语句还可以把一个表中的部分数据插入到另一个表中,但结果集中每行数据的字段数、字段的数据类型要与被操作的表完全一致,语法格式为:
sql
INSERT INTO <表名>
<结果集>
其中,<结果集>是一个由SELECT语句查询所得到的新表。利用该参数,可把一个表中的部分数据插入指定的另一表,有关结果集的使用在后面还会介绍。
【例】 用如下的CREATE语句建立XSB1表:
sql
CREATE TABLE XSB1
(
num char(6) NOT NULL,
name char(8) NOT NULL,
speciality char(12) NULL
);
然后用INSERT语句向XSB1表中插入数据,如下:
sql
INSERT INTO XSB1
SELECT 学号, 姓名, 专业
FROM XSB
WHERE 姓名= '王林';
这条INSERT语句将XSB表中姓名为"王林"的所有学生的学号、姓名和专业名列的值插入到XSB1表的各行中。运行结果如图所示。
2.MERGE语句
在Oracle 11g中有MERGE语句,用于根据与源表连接的结果,对目标表执行插入、更新或删除操作。例如,根据在一个表中找到的差异在另一个表中插入、更新或删除行,这种方法可以对两个表进行信息同步。语法格式如下:
sql
MERGE INTO <目标表名>
USING <源表名> ON (<条件表达式>)
WHEN MATCHED THEN { UPDATE SET...| DELETE...}
WHEN NOT MATCHED THEN INSERT(...) VALUES(...)
说明:
- USING子句:指定用于更新的源数据表。
- ON子句:指定在源表与目标表之间进行连接时所遵循的条件。
- WHEN MATCHED子句:这个子句表示在应用了ON子句的条件后,目标表存在与源表匹配的行时,对这些行在THEN子句中指定修改或删除的操作。其中THEN子句中,UPDATE SET用于修改满足条件的行,DELETE关键字用于删除满足条件的行。
- WHEN NOT MATCHED子句:WHEN NOT MATCH子句指定对于源表中满足了ON子句中条件的每一行,如果该行与目标表中的行不匹配,则向目标表中插入这行数据。要插入的数据在THEN关键字后的INSERT子句中指定。
【例】 创建表a,将XSB表中的数据添加至该表。 创建表a的语句如下:
sql
CREATE TABLE a
(
XH char(6) NOT NULL PRIMARY KEY,
XM char(8) NOT NULL,
XB char(2) NOT NULL,
CSSJ date NOT NULL,
ZY char(12) NULL,
ZXF number(2) NULL,
BZ varchar(200) NULL
);
//进行信息同步使用如下语句:
MERGE INTO a
USING XSB ON (a.XH=XSB.学号)
WHEN MATCHED
THEN UPDATE SET a.XM=XSB.姓名, a.XB=XSB.性别, a.CSSJ=XSB.出生时间,
a.ZY=XSB.专业, a.ZXF=XSB.总学分, a.BZ=XSB.备注
WHEN NOT MATCHED
THEN INSERT VALUES(XSB.学号,XSB.姓名,XSB.性别,XSB.出生时间,XSB.专业,
XSB.总学分, XSB.备注);
运行上述语句后查看表a中的数据,如图所示,表a中已经添加了XSB表中的全部数据。
5、删除记录
1.DELETE语句
语法格式为:
sql
DELETE FROM <表名>
[WHERE <条件表达式>]
该语句的功能为从指定的表中删除满足条件的行,若省略WHERE子句,则表示删除所有行。
【例】 将XSCJ数据库的表a中ZXF(总学分)值小于50的行删除,使用如下SQL语句。
sql
DELETE FROM a
WHERE ZXF < 50;
运行结果如图所示,可以看到,此时表a中只剩下12条ZXF值大于等于50的学生记录,所有小于50的记录都已被删除。
2.TRANCATE TABLE语句
如果确实要删除一个大表里的全部记录,可以用TRUNCATE TABLE语句,它可以释放占用的数据块表空间,此操作不可回退。语法格式为:
sql
TRUNCATE TABLE <表名>
由于TRUNCATE TABLE语句删除表中的所有数据且不能恢复,所以使用时要谨慎。使用TRUNCATE TABLE删除了指定表中的所有行,但表的结构及其列、约束、索引等保持不变。TRUNCATE TABLE在功能上与不带WHERE子句的DELETE语句相同,二者均删除表中的全部行。但TRUNCATE TABLE执行的速度比DELETE快。
6、修改记录
UPDATE语句可以用来修改表中的数据行,语法格式为:
sql
UPDATE <表名>
SET <列名>={<新值>|<表达式>} [,...n]
[WHERE <条件表达式>]
该语句在指定表的满足条件的记录中,由SET指定的各列的列值设置为SET指定的新值。若不使用WHERE子句,则更新所有记录的指定列值。
【例】 将XSCJ数据库的XSB表中学号为"151114"的学生备注列值置为"辅修计算机专业",使用如下SQL语句:
sql
UPDATE XSB
SET 备注='辅修计算机专业'
WHERE 学号='151114';
【例】 将表a中的所有学生的ZXF(总学分)都增加5。
sql
UPDATE a
SET ZXF = ZXF + 5;
【例】 将XSB中姓名为"周何骏"的同学的专业改为"通信工程",学号改为"151242"。
sql
UPDATE XSB
SET 专业='通信工程',
学号='151242'
WHERE 姓名= '周何骏';
最后,感谢大家的观看!Oracle网络数据库