oracle表操作

16 篇文章 0 订阅
6 篇文章 0 订阅

-----------------------------------mysql创建表---------------------------------
创建user表(id整型,name字符串,createtime日期型,默认今天)
DROP TABLE IF EXISTS USERS;
CREATE TABLE IF NOT EXISTS USERS(
USERID INT(5) PRIMARY KEY AUTO_INCREMENT,
USERNAME VARCHAR(255),
CREATETIME DATETIME DEFAULT CURRENT_TIMESTAMP
);
----------------------------------ORACLE创建表---------------------------------
创建用户表ID,NAME,SALARY,CREATETIME
CREATE TABLE USERS(
ID NUMBER(5) PRIMARY KEY,
NAME VARCHAR2(8) NOT NULL UNIQUE,
SALARY NUMBER(6,2) NOT NULL,
CREATETIME DATE DEFAULT SYSDATE
)
删除表(进入回收站)
DROP TABLE USERS;
查看回收站中的对象
SHOW RECYCLEBIN;
闪回,即将回收站还原
flashback table 表名 to before drop;
flashback table 表名 to before drop rename to 新表名;
彻底删除表
drop table 表名 purge;
清空回收站
purge recyclebin;
------------------------------------------数据类型-------------------------------
1)number(5)
5表示最大存储99999
2)number(6,2)
2表示小数点后保留几位,四舍五入
6表示整数位+小数位不得多于6位
3)varchar2(8)
8表示字节,字母一个一字节,汉字一个2-3字节
4)date:默认格式 yyyy-mm-dd hh:mm:ss
5)CLOB:大文本对象,即超过65565字节的数据对象,最多存储4G
6)BLOB:大二进制对象,图片,音频等,最多4G
------------------------------------------修改表---------------------------------
添加age列
alter table 表名 ADD (列名 类型)
例如:alter table USERS ADD (AGE NUMBER(3));

修改NAME列长度为20字节
alter table 表名 modify 列名 类型
例如:ALTER TABLE users MODIFY NAME varchar2(20);

删除age列
alter table 表名 drop column 列名
例如:alter table users drop column age;

重命名NAME列为username
alter table 表名 rename column 原列名 to 新列名
例如:alter table users rename column name to username;

将users表重命名为person
alter table 原表名 rename to 新表名
例如:alter table users rename to person;
添加新约束
alter table 表名 add constraint 约束名 约束(列名);
alter table PERSON add constraint nn_per_time unique(CREATETIME);
添加非空约束
alter table 表名 modify 列名 not null;
思考:
如果表中有1000亿条会员记录,使用最快的方式将薪水列清零,其他字段内容不变

外键级联
创建表customers(单)和orders(多),使用primary key/not null/unique/default/foreign key约束

需求:删除客户,级联删除他所有的订单
需求:删除客户,不级联删除他所有的订单,只是将外健设置为NULL

create table customers(
id number(3) primary key,
name varchar2(4) not null unique
);
insert into customers(id,name) values(1,‘A’);
insert into customers(id,name) values(2,‘B’);
create table orders(
id number(3) primary key,
isbn varchar2(6) not null unique,
price number(3) not null,
cid number(3),
–constraint cid_FK foreign key(cid) references customers(id) on delete cascade
–constraint cid_FK foreign key(cid) references customers(id) on delete set null
);
insert into orders(id,isbn,price,cid) values(1,‘isbn10’,10,1);
insert into orders(id,isbn,price,cid) values(2,‘isbn20’,20,1);
insert into orders(id,isbn,price,cid) values(3,‘isbn30’,30,2);
insert into orders(id,isbn,price,cid) values(4,‘isbn40’,40,2);

check约束
创建表students,包括id,name,gender,salary字段,使用check约束【性别只能是男或女,薪水介于6000到8000之间】
create table students(
id number(3) primary key,
name varchar2(8) not null unique,
gender varchar2(6) not null check ( gender in (‘男’,‘女’) ),
salary number(6) not null check ( salary between 6000 and 8000 )
);
insert into students(id,name,gender,salary) values(1,‘哈哈’,‘中’,6000);错
insert into students(id,name,gender,salary) values(2,‘呵呵’,‘男’,5000);错
insert into students(id,name,gender,salary) values(3,‘嘻嘻’,‘女’,7000);对

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阁下大名

您的鼓励就是我前进的动力,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值