Oracle 创建库和创表、操作表相关
一、Oracle建库实际上是创建一个表空间,用于归类一系列数据表的集合;
-- 创建表空间 create tablespace mirthdb datafile 'D:/db/202210/mirthdb01.dbf' --表空间文件 size 50M --空间大小 autoextend on; --自增设置
二、一个独立的表空间,建议创建其专有的用于表与数据的管理;
--新建用户mirthdb,密码是Mirth123 create user mirthdb identified by Mirth123; --授权表空间创建权限 grant create tablespace to mirthdb; --授予mirthdb查询表的权限 grant select on 表 to mirthdb; --请使用DBA用户赋予其权限 grant connect to mirthdb; grant RESOURCE to mirthdb; --修改用户默认表空间 alter user mirthdb default tablespace mirthdb; --将空间配额分配给指定用户 ALTER USER mirthdb QUOTA UNLIMITED ON mirthdb; --赋予新用户连接权限 grant create session to mirthdb; --以下位拓展知识点 --查询数据库中的所有用户 select * from dba_users; --将表的所有权限给新建的用户 grant all on 表 to mirthdb; --使用用户mirthdb conn mirthdb/Mirthdb123;
三、创建表
创建数据库表一般有两种方式:
1、使用一个数据库客户端。可用于交互的创建和管理数据库表;
2、直接利用ORACLE PL/SQL语句操作表
注意:当使用交互式工具时,实际上使用的是ORACLE SQL语句。不过,无需编写这些语句,界面将为你无缝的生成和执行SQL。
3、以下是相关语句的示例
3.1 创建表格语句示例
--列名 变量类型 是否为空; CREATE TABLE mirthdbtable ( mirth_id int NOT NULL , mirth_name char(50) NOT NULL , mirth_address char(50) NULL , mirth_city char(50) NULL , mirth_state char(5) NULL , mirth_zip char(10) NULL , mirth_country char(50) NULL , mirth_contact char(50) NULL , mirth_email char(255) NULL );
创建表格用到关键字CREATE TABLE,后方跟着指定的新表的名称,用圆括号括住所有列,列本身用逗号隔开。
不要把NULL值与空字符串混淆。NULL值意指缺少值,它不是空字符串。如果指定“’ '”(两个单引号之间没有任何内容),这在NOT NULL列中是允许的。空字符串是一个有效值,它不是没有值。
3.2 指定默认值
在插入行时,如果没有指定值,Oracle允许指定默认值。默认值是在CREATE TABLE语句中的列定义中使用DEFAULT关键字指定的。
使用示例:
CREATE TABLE mirthdbtable ( order_num int NOT NULL, order_item int NOT NULL, prod_id char(10) NOT NULL, quantity int DEFAULT 1 NOT NULL, item_price decimal(8,2) NOT NULL );
许多数据库开发人员都使用DEFAULT值代替NULL列,尤其是将在计算或数据分组中使用的列中。
四、更新表
可以使用ALTER TABLE语句更新表,但是理想情况下,在表包含数据之后永远也不应该改变它们。要使用ALTER TABLE更改表,必须指定以下信息:
<1>、在关键字ALTER TABLE后面指定要改变的表的名称(表必须存在,否则将会生成一个错误);
<2>、要执行的更改列表。
1、使用示例:
ALTER TABLE mirthdbtable ADD vend_phone CHAR(20);
1.1 主键
主键值必须是唯一的。也就是说,表中的每一行都必须具有唯一的主键值。如果把单独一列用于主键,那么它必须是唯一的。如果使用多个列,那么它们的组合必须是唯一的。
可以在CREATE TABLE语句内定义主键。不过,许多开发人员更喜欢先创建表,然后添加所有的键。添加键就是在进行表更新,因此要使用ALTER TABLE命令。
下面给出了一个示例:
ALTER TABLE mirthdbtable ADD CONSTRAINT pk_customers PRIMARY KEY (cust_id);
1.2 定义外键
ALTER TABLE也可用于定义外键。
ALTER TABLE mirthdbtable ADD CONSTRAINT fk_orderitems_orders FOREIGN KEY (order_num) REFERENCES orders (order_num);
要极其小心地使用ALTER TABLE,在执行该操作前确保具有一组完整的备份(包括模式和数据)。数据库表的改变不能被撤销——如果添加了不需要的列,也许不能移除它们。类似地,如果删除了需要的列,也许就会丢失该列中所有的数据。
五、删除表
删除表(实际上是指删除整个表,而不仅仅是内容)。
DROP TABLE mirthdbtable;
六、重命名表
要重命名表,可以使用ALTER TABLE语句,如下:
ALTER TABLE mirthdbtable RENAME TO mirthdbtable2;