oracle 一些sql用法

1、创表

语法:create table 表名(列名1 列的类型(大小),列名2 列的类型(大小)…)

create table student(
    id  number(10) primary key, --主键  primary key
    name varchar2(100) not null, --不能为空  not null
    age number(10) not null default(18) --默认值  default
);

--创建一个已存在的表一样结构的表
--没有之前表的数据
create table studentA as select * from student where 1 = 0;
--保留之前表的数据(可以用作备份数据)
create table studentA as select * from student where 1 = 1;

2、给表添加备注

语法:comment on column 表名.列名 is ‘备注’;

comment on column student.rank is '学生排名';

3、给表添加字段

语法:alter table 表名 add 新增字段名(类型+长度);

alter table student add rank varchar2(50);

4、删除表的字段

alter table student drop column rank;

5、修改表字段的长度

语法:alter table 表名 modify 字段名 类型长度;

alter table student modify rank varchar2(100);

6、修改表的数据

语法:update 表名 set 列名= 修改的值 where 条件;

update student p set p.rank = '2' where p.student_id = '100011373';

7、插入数据

语法:insert into 表名(列名) values(数据);
列名可以不用写,代表表中全部的列都需要插入数据,列名和数据要一一对应

insert into student (rank) values(1);

8、删除数据

语法:delete from 表名 where 条件;
delete不带where代表整个表的数据全部删掉,可以进行回滚
delete删除数据不会释放表空间,要释放表空间的话用TRUNCATE。
语法:TRUNCATE table 表名;删掉表中全部的数据也会释放表空间,不会删除表结构
drop table 表名;删掉整个表,表的结构都会删掉

--删除一条数据
delete from student t where t.student_id = '100011373';
--删除整表数据
delete from student t;
--truncate
truncate table student;
--dorp
drop table student;

9、序列

  • 创建序列
    语法:
    create sequence 序列名 [可选参数]
    序列名:一般是以"seq_xxx"的形式进行命名
    可选参数说明:
    increment by:序列每次增加的值,负数表示递减,缺省值为1;
    start with:序列的初始值,缺省值为1;
    maxvalue:序列可生成的最大值,默认就是不设置,为nomaxvalue,最大值为10^27;
    minvalue:序列可生成的最小值,默认就是不设置,为nominvalue;
    cycle(循环)/nocycle(不循环):定义当序列达到最大/小值后是否循环,缺省值为不循环;如果不使用循环达到限制值后继续产生新值就会出错;使用循环达到最大值后的下一个值为1,和start with设置的值无关,递增还是increment by设置的值;
    cache:定义缓存序列的个数,缺省值为20,nocache表示不设置缓存;使用缓存可以提高序列的性能,但当发生异常时可能会造成数据丢失导致序列不连续;
create sequence seq_student
increment by 1
start with 1
maxvalue 999999
minvalue 1
cycle
nocache;
  • 删除序列:
    语法:drop sequence 序列名;
drop sequence seq_student;
  • 修改序列
    语法: alter sequence 序列名 [可选参数]
alter sequence seq_student
increment by 2
start with 2
maxvalue 1000000
minvalue 2
cycle
nocache;
  • 序列使用
    语法:序列名.currval/nextval
--查询序列的当前的值
select seq_student.currval from daul;
--查询序列的下一个值
select seq_student.nextval from daul;
  • 查看序列
--查询当前用户的序列
select * from user_sequences;
--查询所有用户的序列
select * from all_sequences;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值