Create Table

本文详细介绍了Oracle数据库中的数据结构,包括表结构、视图、sequence和index,并着重讲解了如何创建表结构,包括建表语句、数据类型、约束条件(如NOT NULL、UNIQUE、PRIMARY KEY和FOREIGN KEY)及其用法,以及创建时间的两种方式。通过实例解析了各种约束的创建和使用规范。

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

1.oracle 数据库中的多种数据结构
1.表结构 存储数据
2.视图 一张表或多张表中数据的子集
3.sequence 主要用来生成主键值
4.index 提高检索性能

2.定义表结构
1.可以再任何时刻被定创建
2.表结构不需要预先申请空间
3.表可在线修改
3.创建语法:
创建表得方式有两种:基本操作 子查询
4.建表语句
CREATE TABLE [schema.] tb_name
(column datatype [default expr]
[column_constrain],
…,
[table_constraint]);
note:
1.create table 关键字 ,固定写法
schema ,在oracle数据库中代表用户名.
2.tb_name 代表表名,可以自定义,需要遵循命名规则
3.列名也要遵循命名规则
4.datatype ,列所属的数据类型
5.default :设置默认值
1.作用:设置往表中插入数据时,如果没有指定该列的值,默认插入的值。
2.默认值可以是合法的字面值(根据定义的列的数据类型来赋值),表达式,或者sysdate和user等合法的sql函数。
例:create table test (start_date date default sysdate);
3.默认值不能使用其他表的列或者不存在的列/伪列。
5命名规则
1.字母开头
2.长度为1-30
3.只能有大小写英文,数字和_ $ #
4.同一个用户下的对象名不能重复
5.不能使用关键词作为表名,如select group
6oracle支持数据类型

类型名描述
VARCHAR2(SIZE)定长字符串
CHAR(SIZE)定长字符串
NUMBER数字类型
NUMBER(p,s)数字类型
DATE日期类型
CLOB字符大数据对象
BLOB二进制大数据对象

注释:
1.char ,varchar2,varchar
用法:
char(size),varchar2(size),
varchar(size)
size用来指明能保存字符值的上限。
2.number(p,s):
p:确定数字的有效位数
s:确定数字的小数点位数
3.date 日期类型
系统默认日期类型:“DD-MON-YY”
操作字符类型和日期类型数据的时候,一定要放到’'中间

**7约束**
   定义:所谓约束就是强制表中的数据列必须遵循一些规则。
              而且表中存在依赖约束,可以阻止一些不合理的删除操作。
   分类:
             表级约束:定义在表级别的约束(即在列的完整定义完成后,才定义的约束);
             column   dataType,
             unique   (column)
             列级约束:直接跟在列完整性定义后边的约束。
             column   dataType    unique,
种类:
约束名描述分类
NOT NULL非空列级
UNIQUE唯一列级,表级
PRIMARY KEY主键列级,表级
FOREIGN KEY外键列级,表级
CHECK自定义列级,表级

创建时间:
1.创建表的同时创建
2.表创建完成之后,通过修改表结构
创建语法:
列级 :column [CONSTRAINT constraint_name]
constraint_type,
表级 :column ,…(列完整定义结束)
[CONSTRAINT constrain_name]

详细介绍:
1.NOT NULL :值不允许为null,阻止null值输入
note:只能是列级约束
例如:CREATE table test(id number constraint test_nn_id not null);
在这里插入图片描述
使用constraint 时候会明确提示错误原因。
CREATE TABLE test (id number not null )
2.unique:值唯一约束,要求值必须唯一,不能重复。
note :
1.可以设置单列唯一,或者组合此列唯一
2.如果unique约束单列,此列可以为null
3.可以是列级,也可以是表约束
例:create table test1 (
id number constraint test1_uq_id unique,
name varchar2(20),
unique(name));
3.Primary key :主键
1.主键用来给表中的每一行数据设置唯一一个标识。主键只有一个。
2.主键可以是单列,也可以是组合列。
3.强制非空且唯一,如果由多列组成,
4.可以表级,可以列级。
5.自动创建唯一值的索引。
例如:
create table test(id number constraint test_pk_id primary key);列级约束
create table test(id number ,constraint test_pk_id primary key(id));表级约束
create table test(id number primary key);列级约束
create table test(id number,
name varchar2(10),
constraint test_pk_id_name
primary key (id,name)); 联合主键
create table test (
id number,
name varchar2(10),
primary key(id,name));
4.Foreign key :外键 foreign key references table_name(colname);
一般在设计表与表之间关系式,为了减少数据冗余,一般做的操作是在其中一张表中设置一列(组合列),这一列(组合列)的值可以唯一确定另外一张表中和当前表相关联的一行数据,那么这个列称为外键。
note:
1.可以是单列,也可以是组合列
2.引用当前表或其他表中(只要想和当前表建立关系的表)的主键列或者unique列。
3.可以是表级别/列级别
4.值必须引用列得值或者为null
5.有外键约束,如果想要删除的父表(被引用的表)中的某一条数据时,必须保证在子表(引用表)中的这条数据相关联的数据存在。
6.ON DELETE CASCADE,指明在删除父表中数据时可以级联删除子表数据。
create table test(id number constraint test_pk_id
foreign key(id) references emp(id) );
create table emp(
id number ,
name varchar2(10),
primary key (id ,name));

删除表用drop   table table_name;
插入语句:
select  into  表名(列名) values (值);
select  into 表名 values (值1,值2,);//省略列名时候,值和列名要一一对应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值