当前位置: 名正好名网 > 姓名测试 >

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

| 来源:名正起名

 

1.创建数据库

在Oracle 19C安装过程中已经创建了名为ORCL的数据库,我们也可以在Oracle安装完成后重新创建数据库,直接上干货:

step1: 在开始菜单中找到【Oracle-OraDB19Home1】——【Database Configuration Assistant】,鼠标单击打开;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

step2: 打开【数据库操作】窗口默认第一项就是【创建数据库】,直接点击【下一步】;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

step3: 打开【创建数据库】窗口,输入【全局数据库名】、【管理口令】、【Oracle主目录用户口令】(这里是安装数据库时创建的Oracle主目录用户口令,不是新建口令),【数据字符集】选择【GBK 16位简体中文】,取消勾选【创建为容器数据库】,点击【下一步】;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

step4: 进入【概要】窗口,检查数据库详细信息无误后,点击【完成】;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

step5: 开始自动创建数据库,耐心等待即可;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

step6: 【完成】窗口查看创建数据库的最终信息,点击【关闭】完成数据库的创建。

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

2.删除数据库

删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据 也将一同被删除。删除数据库的具体操作步骤如下:

step1: 在开始菜单中找到【Oracle-OraDB19Home1】——【Database Configuration Assistant】,鼠标单击打开;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

step2: 【数据库操作】窗口选择【删除数据库】,点击【下一步】;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

step3: 【选择数据库】窗口,选择要删除的数据库,输入数据库管理员的用户名和口令,点击【下一步】;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

step4: 【管理选项】窗口,直接默认,点击【下一步】;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

step5: 【概要】窗口,检查要删除数据库的详细信息,没有问题的话,直接点击【完成】;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

step6: 弹出警告对话框,选择【是】即可;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

step7: 开始自动删除数据库;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

step8: 数据库删除完毕,点击【关闭】即可。

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

3.创建数据表

在创建完数据库之后,接下来的工作就是创建数据表。所谓创建数据表,指的是在已经创建好的数据库中建立新表。创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整(包括实体完整性、引用完整性和域完整性等)约束的过程。

3.1创建数据表的语法形式

创建数据表的语句为CREATE TABLE,语法规则如下:

CREATE TABLE <表名> ( 字段名1 数据类型 [列级别约束条件] [默认值], 字段名2 数据类型 [列级别约束条件] [默认值], ...... [表级别约束条件] );

例1:创建一个student表,SQL语句如下:

CREATE TABLE student ( id number(11), name varchar2(25), sex char(1), age number(3) )

使用CREATE TABLE创建表时,必须指定以下信息:

①要创建的表的名称,不区分大小写,不能使用SQL语言中的关键字,如DROP、ALTER、INSERT等。

②数据表中每一个列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开。

3.2使用主键约束

主键,又称主码,是表中一列或多列的组合。主键约束(Primary Key Constraint)要求主键列的数据唯一,并且不允许为空。主键能够唯一地标识表中的一条记录,可以结合外键来定义不同数据表之间的关系,并且可以加快数据库查询的速度。主键和记录之间的关系如同身份证和人之间的关系,它们之间是一一对应的。主键分为两种类型:单字段主键和多字段联合主键

1.单字段主键

主键由一个字段组成,SQL语句格式分为以下两种情况:

①在定义列的同时指定主键,语法规则如下:

字段名 数据类型 PRIMARY KEY [默认值]

例2:定义一个student1表,其主键为id,SQL语句如下:

CREATE TABLE student1 ( id number(11) primary key, name varchar2(25), sex char(1), age number(3) );

②在定义完所有列之后指定主键,语法规则如下:

[CONSTRAINT <约束名>] PRIMARY KEY [字段名]

例3:定义一个student2表,其主键为id,SQL语句如下:

CREATE TABLE student2 ( id number(11), name varchar2(25), sex char(1), age number(3), PRIMARY KEY(id) );

例2和例3的执行后的结果是一样的,都会在id字段上设置主键约束。

2.多字段联合主键

主键由多个字段联合组成,语法规则如下:

PRIMARY KEY [字段1,字段2,...,字段n]

例4:创建student3表,因没有id字段,为了唯一确定一个学生,设置name和age为联合主键,SQL语句如下:

CREATE TABLE student3 ( name varchar2(25), sex char(1), age number(3), PRIMARY KEY(name,age) );

3.使用 ALTER TABLE语句为表添加主键约束

在创建表时如果没有添加主键约束,可以在修改表时为表添加主键约束。添加主键约束的语法格式如下:

ALTER TABLE 数据表名称 ADD CONSTRAINTS 约束名称 PRIMARY KEY(字段名称)

例5:创建student4表时不设置主键,通过ALTER TABLE修改主键为id,创建student4表SQL语句如下:

CREATE TABLE student4 ( id number(11), name varchar2(25), sex char(1), age number(3) );

通过ALTER TABLE修改id为主键,SQL语句如下:

ALTER TABLE student4 ADD CONSTRAINTS pk_id PRIMARY KEY(id);

4.移除主键约束

对于不需要的主键约束,可以将其移除,具体的语法格式如下:

ALTER TABLE 数据表名称 DROP CONSTRAINTS 约束名称

例6:移除student4表的主键约束pk_id,SQL语句如下:

ALTER TABLE student4 DROP CONSTRAINTS pk_id;

3.3使用外键约束

外键用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。

外键:首先它是表中的一个字段,它可以不是本表的主键,但对应另外一个表的主键。外键的主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联关系的行。外键的作用是保持数据的一致性、完整性。

主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的那个表即是主表。

从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的那个表即是从表。

1.创建外键

创建外键的语法规则如下:

[CONSTRAINT <外键名>] FOREIGN KEY 字段名1 [,字段名2,…] REFERENCES <主表名> 主键列1 [,主键列2,…]

“外键名”为定义的外键约束的名称,一个表中不能有相同名称的外键;“字段名”表示子表需要添加外键约束的字段列;“主表名”即被子表外键所依赖的表的名称;“主键列”表示主表中定义的主键列,或者列组合。

关联指的是在关系型数据库中,相关表之间的联系。它是通过相容或相同的属性或属性组 来表示的。子表的外键必须关联父表的主键,且关联字段的数据类型必须匹配,如果类型 不一样,则创建子表时,就会出现错误。

2.在修改数据表时添加外键约束

在创建表时如果没有添加外键约束,可以在修改表时为表添加外键约束。添加外键约束的语法格式如下:

ALTER TABLE 从表数据表名称 ADD CONSTRAINTS 约束名称 FOREIGN KEY(外键约束的字段名称) REFERENCE 主表数据表名称(字段名称) ON DELETE CASCADE;

3.移除外键约束

对于不需要的外键约束,可以将其移除,具体的语法格式如下:

ALTER TABLE 数据表名称 DROP CONSTRAINTS 约束名称

3.4使用非空约束

非空约束(Not Null Constraint)指字段的值不能为空。对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统会报错。

1.创建非空约束

非空约束的语法规则如下:

字段名 数据类型 not null

例7:创建student5表,指定学生姓名name字段不能为空,SQL语句如下:

CREATE TABLE student5 ( id number(11) PRIMARY KEY, name varchar2(25) not null, sex char(1), age number(3) );

2.修改表时添加非空约束

在创建表时如果没有添加非空约束,可以在修改表时为表添加非空约束。添加非空约束的语法格式如下:

ALTER TABLE 数据表名称 MODIFY 字段名称 NOT NULL;

例8:student5表,指定学生性别sex字段不能为空,SQL语句如下:

ALTER TABLE student5 MODIFY sex NOT NULL;

3.移除非空约束

对于不需要的非空约束,可以将其移除,具体的语法格式如下:

ALTER TABLE 数据表名称 MODIFY 字段名称 NULL;

例9:移除student5表中性别sex字段的非空约束,SQL语句如下:

ALTER TABLE student5 MODIFY sex NULL;

3.5使用唯一性约束

唯一性约束(Unique Constraint)要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。

1.创建唯一性约束

①在定义完列之后直接指定唯一性约束,语法规则如下:

字段名 数据类型 UNIQUE

例10:创建student6表,指定姓名唯一,SQL语句如下:

CREATE TABLE student6 ( id number(11) PRIMARY KEY, name varchar2(25) UNIQUE, sex char(1), age number(3) );

②在定义完所有列之后指定唯一性约束,语法规则如下:

[CONSTRAINT <约束名>] UNIQUE (<字段名>)

例11:创建student7表,指定姓名唯一,SQL语句如下:

CREATE TABLE student7 ( id number(11) PRIMARY KEY, name varchar2(25), sex char(1), age number(3), CONSTRAINT STH UNIQUE(name) );

UNIQUE和PRIMARY KEY的区别: 一个表中可以有多个字段声明为UNIQUE,但只能 有一个PRIMARY KEY声明;声明为PRIMARY KEY的列不允许有空值,但是声明为UNIQUE的字段允许空值(NULL)的存在。

2.在修改表时添加唯一性约束

修改表时也可以添加唯一性约束,具体SQL语法格式如下:

ALTER TABLE 数据表名称 ADD CONSTRAINT 约束名称 UNIQUE(字段名称);

例12:将student5表中的字段name添加唯一性约束,SQL语句如下:

ALTER TABLE student5 ADD CONSTRAINT unq_name UNIQUE (name);

3.移除唯一性约束

对于不需要的唯一性约束,可以将其移除,具体的语法格式如下:

ALTER TABLE 数据表名称 DROP CONSTRAINTS 约束名称;

例13:移除student5表中字段name的唯一性约束,SQL语句如下:

ALTER TABLE student5 DROP CONSTRAINTS unq_name;

3.6使用默认约束

默认约束(Default Constraint)指定某列的默认值。如男性同学较多,性别就可以默认为“男”。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为“男”。

默认约束的语法规则如下:

字段名 数据类型 DEFAULT 默认值

例14:创建student8表,指定学生的性别默认为"男",SQL语句如下;

CREATE TABLE student8 ( id number(11) PRIMARY KEY, name varchar2(25), sex char(4) DEFAULT , age number(3) );

3.7使用检查约束

检查约束为CHECK约束,规定每一列能够输入的值,从而可以确保数值的正确性。例如,性别字段中可以规定只能输入男或者女,此时可以用到检查约束。

1.创建检查约束

检查约束的语法规则如下:

CONSTRAINT 检查约束名称 CHECK(检查条件)

例15:创建student9表,指定学生的性别只能输入“男”或者“女”,SQL语句如下;

CREATE TABLE student9 ( id number(11) PRIMARY KEY, name varchar2(25), sex varchar2(4), age number(3), CONSTRAINT CHK_sex CHECK (sex=or sex=) );

2.在修改表时添加检查约束

修改表时也可以添加检查约束,具体SQL语法格式如下:

ALTER TABLE 数据表名称 ADD CONSTRAINT 约束名称 CHECK(检查条件);

例16:将student9表上的年龄字段age添加检查约束,规定年龄输入值为15~25之间,SQL语句如下:

ALTER TABLE student9 ADD CONSTRAINT chk_age CHECK (age>=15 and age <=25);

3.移除检查约束

对于不需要的检查约束,可以将其移除,具体的语法格式如下:

ALTER TABLE 数据表名称 DROP CONSTRAINTS 约束名称;

例17:将student9表上的年龄字段age添加检查约束移除,SQL语句如下:

ALTER TABLE student9 DROP CONSTRAINTS chk_age;

3.8设置表的属性值自动增加

在数据库应用中,经常希望在每次插入新记录时,系统自动生成字段的主键值。可以通过为表主键添加GENERATED BY DEFAULT AS IDENTITY关键字来实现。默认,在Oracle中自增值的初始值是1,每新增一条记录,字段值自动加1。一个表只能有一个字段使用自增约束,且该字段必须为主键的一部分。

设置自增约束的语法规则如下:

字段名 数据类型 GENERATED BY DEFAULT AS IDENTITY

例18:创建student10表,指定id自动递增,SQL语句如下:

CREATE TABLE student10 ( id number(11) GENERATED BY DEFAULT AS IDENTITY, name varchar2(25) not null, sex varchar2(4), age number(3) );

4.查看数据表结构

使用SQL语句创建好数据表之后,可以查看表结构的定义,以确认表的定义是否正确。在Oracle中,查看表结构可以使用DESCRIBE语句。DESCRIBE/DESC语句可以查看表的字段信息,其中包括:字段名、字段数据类型、是否为主键、是否有默认值等。语法规则如下:

DESCRIBE 表名; 或者 DESC 表名;

注意:DESCRIBE/DESC语句只能在SQLPlus中使用,在PL/SQL Developer之类的软件中无法使用。

例19:在SQLPlus中分别使用DESCRIBE、DESC查看表student10的表结构;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

5.修改数据表

修改表指的是修改数据库中已经存在的数据表的结构。Oracle使用ALTER TABLE语句修改表。常用的修改表的操作有:修改表名,修改字段数据类型或字段名,增加和删除字段,修改字段的排列位置,更改表的存储引擎,删除表的外键约束等。

5.1修改表名

Oracle是通过ALTER TABLE语句来实现表名的修改的,具体的语法规则如下:

ALTER TABLE <旧表名> RENAME TO <新表名>;

例20:修改表student10的表名为STU,SQL语句如下:

ALTER TABLE student10 RENAME TO STU;

5.2修改字段的数据类型

修改字段的数据类型,就是把字段的数据类型转换成另一种数据类型。在Oracle中修改字段数据类型的语法规则如下:

ALTER TABLE <表名> MODIFY <字段名> <数据类型>

例21:修改STU表中的age字段数据类型为VARCHAR2(6)

ALTER TABLE STU MODIFY age varchar2(6);

5.3修改字段名

Oracle 中修改字段名的语法规则如下:

ALTER TABLE <表名> RENAME COLUMN <旧字段名> TO <新字段名>;

例22:修改STU表中的age字段名为nianling

ALTER TABLE STU RENAME COLUMN age TO nianling;

5.4添加字段

随着业务需求的变化,可能需要在已经存在的表中添加新的字段。一个完整字段包括字段名、数据类型、完整性约束。添加字段的语法格式如下:

ALTER TABLE <表名> ADD <新字段名> <数据类型>

例23:添加无完整性约束条件的字段,在STU表中添加无完整性约束条件的NUMBER类型的字段class

ALTER TABLE STU ADD class number(10);

例24:添加有完整性约束条件的字段,在STU表中添加一个不能为空的数据类型为VARCHAR2(30)的字段address

ALTER TABLE STU ADD address VARCHAR2(30) not null;

注意:给表添加非空字段时,表内不能有数据,否则无法添加非空字段。

5.5删除字段

删除字段是将数据表中的某个字段从表中移除,语法格式如下:

ALTER TABLE <表名> DROP COLUMN <字段名>;

例25:删除STU表中的address字段

ALTER TABLE stu DROP COLUMN address;

在删除表中的列时,常常在列后添加CASCADE CONSTRAINTS,目的是将与该列相关的约束一并删除掉。

6.删除数据表

删除数据表就是将数据库中已经存在的表从数据库中删除。注意,在删除表的同时,表的定义和表中所有的数据均会被删除。因此,在进行删除操作前,最好对表中的数据做个备份,以免造成无法挽回的后果。

6.1删除没有被关联的表

在Oracle中,使用DROP TABLE可以一次删除一个或多个没有被其他表关联的数据表。语法格式如下:

DROP TABLE 表名;

例26:删除名为student1的表

DROP TABLE student1;

6.2删除被其他表关联的主表

数据表之间存在外键关联的情况下,如果直接删除父表,结果会显示失败。原因是直接删除,将破坏表的参照完整性。如果必须要删除,可以先删除与它关联的子表,再删除父表,只是这样同时删除了两个表中的数据。但有的情况下可能要保留子表,这时如要单独删除父表,只需将关联的表的外键约束条件取消,然后就可以删除父表。

例27:创建两个关联表student和tb_class

CREATE TABLE student ( id number(11) primary key, name varchar2(25), sex varchar2(4), age number(3) ); CREATE TABLE tb_class ( id number(11) primary key, class_name varchar2(25), studen_num varchar2(4), studen_id number(11), CONSTRAINT stu_class FOREIGN KEY (studen_id) REFERENCES student(id) );

以上创建student和tb_class两个表,字表有名为stu_class的外键约束,主表student的字段id被子表tb_class的studen_id关联;

通过drop table student命令删除student表时,因存在外键约束,提示下图错误:

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

移除tb_class表的外键约束,SQL语句如下:

ALTER TABLE tb_class DROP CONSTRAINTS stu_class;

此时解除了student和tb_class两个表的关联关系,可以通过drop table student命令删除主表student了。

7.最后分享2个小知识

7.1 SQL Plus中开启复制、粘贴功能

SQL Plus主界面中,鼠标右击最上方,弹出菜单选择【属性】,勾选【快捷编辑模式】和【将Ctrl+Shift+C/V用作复制/粘贴的快捷键】,点击确定,即可在SQL Plus中进行复制粘贴命令了。

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

7.2无法登录SQL Plus,提示ORA-12560: TNS: 协议适配器错误

新建数据库后,再删除此数据库,登录SQL Plus时会提示“ORA-12560: TNS: 协议适配器错误”;

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)

这是因为删除数据库后,ORACLE_SID并没有修改过来,此时需要恢复安装时的默认值为“ORCL”。具体操作方法:在【运行】对话框中输入“regedit”并按【Enter】键,打开系统的注册表页面,依次找到 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDB19Home1 项目下的ORACLE_SID,右击并在弹出的快捷菜单中选择【修改】命令,打开【编辑字符串】对话框,修改数据为“ORCL”,单击【确定】按钮即可。

oracle数据库操作流程(从零开始学习Oracle之数据库和数据表的基本操作)


免费起名工具

出生状态:
姓氏:
出生时间:
出生地点:
期望标签:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至82281456@qq.com 举报,一经查实,本站将立刻删除。

热门排行

宝宝小名大全2024洋气(100个宝宝小名大全,好听不俗气,暖心一辈子,值得收藏)

季节性取小名不仅可以以四季,十二个月为例,还可以以二十四节气名为孩子起名,如立春小春天 雨水 春分 清明 谷雨 立夏 小满 夏至 小暑 立秋 处

男孩和女孩出生日期哪天好(男生女生出生的好日子,按照出生时间如何起名?) 土字旁的字女孩名字小名(2023属兔女宝宝起名:带土字旁的女孩名字大全(收藏)) 姓名如何取好 如诗一般深邃的宝宝名,在不经意间俘获了多少人的心 聊斋3电影免费观看花海(《聊斋志异》蹇涩字词试解(五十五)云萝公主) 男生复古风格穿搭(文艺有韵味的复古男孩名,超级经典) 2021牛宝宝起名宜用字男孩篇-可爱点 新颖少见的男孩名字(300个独特新颖的男孩名字推荐,个个别出心裁,助他决胜千里) 鸡宝宝取什么小名好听男孩(鸡年宝宝起名大全,福泰安康百里挑一的男女宝宝名字)
出生体重
请选择体重
812
确认
省份
城市
区县
北京
天津
河北
山西
内蒙古
辽宁
吉林
黑龙江
上海
江苏
浙江
安徽
福建
江西
山东
河南
湖北
湖南
广东
广西
海南
重庆
四川
贵州
云南
西藏
陕西
甘肃
青海
宁夏
新疆
香港
澳门
台湾
选择期望标签(可选0/6)
确认
爱学习
好奇心
判断力
创造力
洞察力
勇敢
毅力
诚实
善良
情商高
忠诚
正直
领导力
宽容
谦虚
谨慎
自律
欣赏力
感恩
乐观
幽默
信仰
激情
勤俭
选择父母期望标签(可选0/6)
确认
稳重
睿智
自信
阳光
安康
成功
儒雅
内敛
大气
博学
多才
魅力
个性
独立
敏锐