Oracle --- 创建和管理表

本文详细介绍了在 Oracle 数据库中创建和管理表的各种操作,包括遵循的命名规则、CREATE TABLE 语句的使用、通过子查询复制表结构、ALTER TABLE 语句用于追加、修改、删除列及重命名列的操作。此外,还涵盖了清空表、改变对象名称、数据插入、更新、删除以及回滚等数据处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建和管理表

开发工具与关键技术:Oracle
作者:吴东梅
撰写时间:2019-04-10

命名规则
表名和列名:
•必须以字母开头
•必须在 1–30 个字符之间
•必须只能包含 A–Z, a–z, 0–9, _, $, 和 #
•必须不能和用户定义的其他对象重名
•必须不能是Oracle 的保留字

CREATE TABLE 语句
创建表 (这是根据自己的需求去创建表)
创建了一个名叫test 的表,里面的字段有id,name,hire_date。
create table test(id number(6),name varchar2(10),hire_date date);
执行完上面语句之后,把这张表可以查询出来就证明已经创建成功了,如下图:
在这里插入图片描述
使用子查询创建表(也可以在子查询加上where条件,复制自己想要的数据或表结构)
例如:
复制现有的表:
1、创建一个名叫emp1 的表,里面的列名和数据是从employees表复制过去的。
create table emp1 as select * from employees;
执行上面的语句成功之后,再把这张新表的数据查询出来,你便会发现这张表的数据跟employees 表的所有表结构和数据是一样的。
在这里插入图片描述
2、如果要创建一个表名为emp2,要其表结构跟employees表一样,就用子查询创建,如下:
create table emp2 as select * from employees where 1=2;
执行完上面的语句成功之后,在查询出这张表,你会发现这张表拥有着和employees 表的一模一样的表结构,因为在后面加了一个无须有的条件。
在这里插入图片描述
ALTER TABLE 语句
使用 ALTER TABLE 语句可以:
•追加新的列
•修改现有的列
•为新追加的列定义默认值
•删除一个列
•重命名表的一个列名
•使用 ADD 子句追加一个新列
往test这张表里面增加(追加)名为sex ,类型为char(1) 的列。
alter table test add sex char(1);
执行成功之后,再查询这张表就会新增了一个列,可以跟前面刚创建表的截图进行对比一下。
在这里插入图片描述
在新增一个新列的时候,也可以给新增的这个列用default设置一个默认值。前面我们创建了一个命名为emp1的表,我们现在往这张表里面新增一个列,并设置一个默认值。
alter table emp1 add test2 number(10) default 100;
在这里插入图片描述
修改一个列 MODIFY(修改)
•可以修改列的数据类型, 尺寸和默认值。
•对默认值的修改只影响今后对表的修改。
1、把test表里面的sex列的类型由char(1)修改成char(2);
alter table test modify sex char(2);
在这里插入图片描述
删除一个列 DROP COLUMN
1、把test表里面的sex列删除掉。
alter table test drop column sex;
执行完之后,那么test表里面的sex列便会消失。
重命名一个列 rename column 原列名 to 新列名。
1、把test里面的id 列的列名重命名为 test_id 。
alter table test rename column id to test_id;
执行完成之后,名字也已经更换了,可以和前面的截图进行对比。
在这里插入图片描述
清空表
•TRUNCATE TABLE 语句: truncate table
–删除表中所有的数据
–释放表的存储空间
•TRUNCATE语句不能回滚
可以使用 DELETE 语句删除数据,可以回滚。
commit; --提交语句。 rollback;–回滚语句。
语法:
truncate table + 表名;
改变对象的名称 (可以修改表名)
1、把表的名称用rename to 重新命名.就是把表名为test 用(rename to 新表名) 把原来的表名修改成新的表名。
alter table test rename to test0;
执行完成之后,你会发现在命令窗口执行test 是不存在的(图一),执行test0 的表结构是原来test的,这就意味着修改成功了。也可以在SQL窗口里面去查询,修改成功之后,再查原来的表名,即会报图二的错。
图一:
在这里插入图片描述
图二:
在这里插入图片描述
数 据 处 理
插入数据 INSERT
使用这种语法一次只能向表中插入一条数据。
INSERT INTO + 表名
VALUES + (需要插入表的数据,顺序和数据类型要跟表对应)
1、往test0 里面添加一条数据为values 括号里面的值。(添加进去的数据除了数字类型可以不用单引号,其他的都要。)
insert into test0
values (1,‘梅子’,‘13-3月-19’,‘女’);
刚开始这张表是空白的,新增进去之后就可以查这张表的时候显示出来刚刚新增进去的数据。
在这里插入图片描述
创建脚本
•在SQL 语句中使用 & 变量指定列值。
•& 变量放在VALUES子句中。
如果在插入数据的时候,不想把数据写在values括号里面,那么在values括号里面把表的列名全部列出来,不是数字类型要用单引号框起来,然后在每个列的前面加一个 & 变量指定列值,这样在运行的时候就会弹出一个框,让你在对应的文本框里面输入你想要插入的数据。如上就是这种方法的写法。
1、INSERT INTO DEPT1
VALUES (&id, ‘&name’,’&hire_date’);
在这里插入图片描述
从其它表中拷贝数据
•在 INSERT 语句中加入子查询。
•不必书写 VALUES 子句。
•子查询中的值列表应与 INSERT 子句中的列名对应。(表结构要一样)
例如:1、从employees里面查出department_id是90的数据复制到emp2 表里面。因为没有表明要复制哪个列名下的数据,所以默认是整张表的数据,所以emp2 的表结构要跟employees 的表结构和字段数量和列名都要一样(如图一),如果不对应就会报对应的值过多或过少(如图二)。
INSERT INTO emp2
SELECT *
FROM employees
WHERE department_id = 90;
成功之后,图一:
在这里插入图片描述
图二:
在这里插入图片描述
UPDATE 语句语法 update …set…
•可以一次更新多条数据。
1、update test2 set name = ‘lili’
where name = ‘梅子’;
在这里插入图片描述
再使用更新语句的时候,一定要在后面加上where条件,否则将会把整张表的那一列的数据全部修改。
在进行Update语句之后,在没有进行commin 提交时,还是可以用rollback 回滚语句进行回滚,把数据还原回来。

DELETE 语句 删除数据
使用WHERE字句删除指定的记录。
•如果省略 WHERE 子句,则表中的全部数据将被删除
回滚到保留点
•使用 SAVEPOINT 语句在当前事务中创建保存点。
•使用 ROLLBACK TO SAVEPOINT 语句回滚到创建的保存点。

如果修改数据没有进行提交操作,那么这个语句只对本窗口有用,对其他窗口无效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值