1、表
a.表的结构 : 类似于java类
表由记录组成 : 类似于java类的对象实例
记录由字段组成 : 类似于java类的对象实例的属性
字段内存储数据
b.创建表
create table person
(
id number(9),
name varchar2(20),
age number(3),
tall number(3,2),
sex char(2)
);
c.创建临时表
create global temporary table t_temp
(
tempid number(9),
tempName varchar2(20)
)
on commit delete rows; //在提交时删除表内的数据
on commit PRESERVE rows; //在登录用户退出时删除数据
d.表操作
1)重命名表:
alter table table_name rename to new_table_name;
2)重命名列:
alter table table_name rename column old_column_name to new_column_name;
3)添加新列:
alter table table_name add column_name data_type [default value][null/not null],...;
4)更改列的数据类型:
alter table table_name modify column_name data_type [default value][null/not null],...;
5)删除列:
alter table table_name drop column_name;
6)删除表:
drop table table_name;
7)创建好表后,查看表结构
select * from user_tab_columns where table_name='大写表名';
2、类型
char(n) --> n=1 to 2000字节(不变长度) char(10)
nchar(n) --> 字符(中文占两个字节)
varchar2(n) --> n=1 to 4000字节(可变长度)
nvarchar2(n)
number(m,n) --> m=1 to 38 n=-84 to 127
date
long
raw(n) --> n=1 to 2000字节 (两进制, )
long raw 2G
blob 4G * block size
clob 4G * block size
bfile 4G * block size(文本二进制)
3、约束
创建班级信息表,classes(cid int 主键,cname varchar2(100) 非空 唯一,intro varchar2(1000));
create table classes(
cid int primary key , --标识列 主键
cname varchar2(100) not null unique, --非空唯一约束
intro varchar2(1000)
) [tablespace users];
创建学生信息表,stuInfo(sid int 主键,sname varchar2(100) 非空,sex char(2) 男或者女 偶然为男,
age int 15到30之间,address varchar2(200) 默认地址不详,cid int 外键);
create table stuinfo(
sid int primary key,
sname varchar2(100) not null,
sex char(2) default '男' --默认为男
constraint CK_sex check(sex in('男','女')), --取值只能为男或女
age int
constraint CK_age check(age between 15 and 30),--年龄必须在15之30岁之间
address varchar2(200) default '地址不详',
cid int
constraint FK_classid references classes(cid)
);
创建用户信息表 表级约束
create table users(
usid int primary key,
uname varchar2(100) not null,
age int default 18
constraint CK_uage check (age between 20 and 30),
pwd varchar2(20),
tel varchar2(20),
addr varchar(200),
constraint CK_info check (tel is not null and tel!='' or addr is not null and addr!='') --表级约束
);
a.创建主键约束
alter table [table_name] add constraint [主键约束名] primary key(列名);
alter table sales add constraint PK_sid primary key(sid);
b.创建外建约束
alter table [table_name] add constraint [外键约束名] foreign key(列名) references 表名(列名)
alter table stuinfo add constraint FK_classid foreign key(cid) references classes(cid);
c.创建检查约束
alter table stuinfo add constraint s_age check (age between 18 and 30);
alter table stuinfo add constraint CK_sex check(sex in('男','女'));
d.添加非空约束
alter table stuinfo modify sname not null; --modify:修改
e.查看约束
select * from user_constraints [where table_name='大写表名'];
f.禁用或启动约束
alter table stuInfo disable|enable constraint FK_classid;
g.删除约束
alter table stuInfo drop constraint FK_classid;
a.表的结构 : 类似于java类
表由记录组成 : 类似于java类的对象实例
记录由字段组成 : 类似于java类的对象实例的属性
字段内存储数据
b.创建表
create table person
(
id number(9),
name varchar2(20),
age number(3),
tall number(3,2),
sex char(2)
);
c.创建临时表
create global temporary table t_temp
(
tempid number(9),
tempName varchar2(20)
)
on commit delete rows; //在提交时删除表内的数据
on commit PRESERVE rows; //在登录用户退出时删除数据
d.表操作
1)重命名表:
alter table table_name rename to new_table_name;
2)重命名列:
alter table table_name rename column old_column_name to new_column_name;
3)添加新列:
alter table table_name add column_name data_type [default value][null/not null],...;
4)更改列的数据类型:
alter table table_name modify column_name data_type [default value][null/not null],...;
5)删除列:
alter table table_name drop column_name;
6)删除表:
drop table table_name;
7)创建好表后,查看表结构
select * from user_tab_columns where table_name='大写表名';
2、类型
char(n) --> n=1 to 2000字节(不变长度) char(10)
nchar(n) --> 字符(中文占两个字节)
varchar2(n) --> n=1 to 4000字节(可变长度)
nvarchar2(n)
number(m,n) --> m=1 to 38 n=-84 to 127
date
long
raw(n) --> n=1 to 2000字节 (两进制, )
long raw 2G
blob 4G * block size
clob 4G * block size
bfile 4G * block size(文本二进制)
3、约束
创建班级信息表,classes(cid int 主键,cname varchar2(100) 非空 唯一,intro varchar2(1000));
create table classes(
cid int primary key , --标识列 主键
cname varchar2(100) not null unique, --非空唯一约束
intro varchar2(1000)
) [tablespace users];
创建学生信息表,stuInfo(sid int 主键,sname varchar2(100) 非空,sex char(2) 男或者女 偶然为男,
age int 15到30之间,address varchar2(200) 默认地址不详,cid int 外键);
create table stuinfo(
sid int primary key,
sname varchar2(100) not null,
sex char(2) default '男' --默认为男
constraint CK_sex check(sex in('男','女')), --取值只能为男或女
age int
constraint CK_age check(age between 15 and 30),--年龄必须在15之30岁之间
address varchar2(200) default '地址不详',
cid int
constraint FK_classid references classes(cid)
);
创建用户信息表 表级约束
create table users(
usid int primary key,
uname varchar2(100) not null,
age int default 18
constraint CK_uage check (age between 20 and 30),
pwd varchar2(20),
tel varchar2(20),
addr varchar(200),
constraint CK_info check (tel is not null and tel!='' or addr is not null and addr!='') --表级约束
);
a.创建主键约束
alter table [table_name] add constraint [主键约束名] primary key(列名);
alter table sales add constraint PK_sid primary key(sid);
b.创建外建约束
alter table [table_name] add constraint [外键约束名] foreign key(列名) references 表名(列名)
alter table stuinfo add constraint FK_classid foreign key(cid) references classes(cid);
c.创建检查约束
alter table stuinfo add constraint s_age check (age between 18 and 30);
alter table stuinfo add constraint CK_sex check(sex in('男','女'));
d.添加非空约束
alter table stuinfo modify sname not null; --modify:修改
e.查看约束
select * from user_constraints [where table_name='大写表名'];
f.禁用或启动约束
alter table stuInfo disable|enable constraint FK_classid;
g.删除约束
alter table stuInfo drop constraint FK_classid;