oracle sql基础_2018/7/31

  • oracle 数据类型
Char(10)            固定长度字符串
varchar2(10)      可变长度字符串
number(m,n)        m:数字的位数 n:小数位
date                时间(日-月-年)
blob                二进制
  • 创建表
create table [表名](
    列1 数据类型 约束,
    列2 数据类型 约束,
    ...
    列n 数据类型 约束);
例:create table student(
    id number primary key,
    name char(5) not null,
    sex char(5),
    age number,
    birthday date);
  • 删除表
drop table [表名];

注意:在oracle中当表被删除后会进入回收站

查看回收站
show recyelebin;

清空回收站
purge recyclebin;

彻底删除某张表
purge table [表名];

从回收站中还原
flashback table [表名] to before drop;

删除表并从回收站删除
drop table [表名] purge;
  • 插入数据
1.严格按照表中列的顺序插入
insert into [表名](列1,列2,...,列n) values(值1,值2,...,值n);

例:insert into student (id,name,sex,age,birthday)
 values(1,'张三','男',18,to_date('1997-1-1','yyyy-mm-dd'));

2.如果所有列都需要插入,则可以省略表名后的列名,但是必须严格按照表中列的顺序进行赋值
insert into [表名] values(值1,值2,...,值n);

例:insert into student 
values(1,'张三','男',18,to_date('1997-1-1','yyyy-mm-dd'));

注意:如果插入时间类型,注意插入语法
  • 表的复制
表结构与表中数据都复制
create table [表名] as select * from [被复制表名];

只复制表结构
create table [表名] as select * from [被复制表名] where 1=2;

选择性复制1(复制部分行)
create table [表名] as select [列1],[列2],...,[列2] from [被复制表名];

选择性复制2(复制部分列)
create table [表名] as select * from [被复制表名] where [满足条件];
  • 表结构的修改
向表中增加一列
alter table [表名] add(列名 数据类型);

修改某一列的数据类型
alter table [表名] modify(列名 数据类型);

删除表中的列
alter table [表名] drop column [列名];

修改列名
alter table [表名] rename column [列名] to [新的列名];
  • 约束

非空约束 not null (nk)

数据表中某个列中不希望出现null值,则可以给该列加上not null约束

创建表的时候添加约束
create table [表名] (列名 数据类型 not null);

例:create table student(id number not null,name char(20) not null);

建表后,使用alter追加约束
alter table [表名] modify [列名] [数据类型] not null;

例:alter table student modify id number not null;

唯一约束 unique (uk)

每一列上的数据不允许重复的时候使用唯一约束

创建表的时候添加约束
create table [表名] (列名 数据类型 unique);

建表后,使用alter追加约束
alter table [表名] add constraint [约束名] unique(约束的列名);

例:alter table student add constraint uk_id unique(id);

主键约束 primary key (pk)

主键约束 = 非空约束 + 唯一约束

主键约束作为数据的唯一标记

添加主键的3种写法

1.create table [表名](列名 数据类型 primary key);

例:create table student (id number primary key);

2.create table [表名](列名 数据类型,constraint 约束名 primary key(列名));

例:create table student (id number constraint pk_id primary key(id));

3.alter table [表名] add constraint 约束名 primary key(列名);

例:alter table student add constraint pk_id primary key(id);
  • 复合主键
一张表多个列设置主键

复合主键在使用过程中,只有主键的所有字段的值都与已存在的一行数据重复时
才会被认为是重复数据,违反唯一约束

create table [表名] (列名1 数据类型,列名2 数据类型, 
constraint 约束名 primary key(列名1,列名2));
  • 检查约束
为表中某些列添加数据时限制条件

例如设置性别必须填写 男 或 女 

create table student (id number,name char(10),age char(2),
constraint ck_age check(age between 18 and 30));

例如年龄范围 18-30

create table student (id number,name char(10),sex char(2),
constraint ck_sex check(sex in('男','女'));
  • 外键约束 foreign key (fk)
外键约束是建立在多个表上的约束(本例中采用2张表)

两张表之间是存在父子关系的,即子表中的某个列的取值范围由父表决定

Student学生表(子)    class班级表(父)   

建表(先建立父表,然后子表)

在子表中写外键约束

创建表时添加约束

create table [表名] (列名1 数据类型,列名2 数据类型,
constratin [约束名] foreign key(列名1) refereneces [父表名](父表主键) )

已创建表后追加约束

alter table [表名] add constraint [约束名] foreign key(列名) 
references [父表名](父表主键);

在添加数据的时候要严格按照先父后子的顺序

必须使父表主键先存在 才可插入子表中外键的相关数据
  • 约束的其他操作
查询约束

select owner,constraint_name,table_name from user_constraints;

删除约束

alter table [表名] drop constraint [约束名];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值