Oracle学习笔记 part1

表的增删改查以及创建

Oracle 中的表增删改查与Mysql并无太大差异,在此举几个简单的例子

表的创建


create table HELLO_ORACLE(
    my_id number primary key,
    my_name varchar2(20),
    my_age number,
    my_gender varchar2(10),
    my_birthday date
)

我们可以看到,在Oracle中,数据类型和Mysql略有不同,在Mysql中存在Int, bigInt等属性在Oracle中没有,而是被number所代替,除此之外,Oracle只允许出现一个Long类型的数据。

在mySql中我们通过创建表中加入关键词auto_increment 但在Oracle中却是不行的,我们需要借助一些工具来帮助我们来实现与MySql一样的效果

添加自增序列

create sequence SEQ_HELLO_ORACLE
minvalue 1  --最小值
maxvalue 999999999999999999999999999 --最大值
start with 1 --初始值
increment by 1 --自增值
nocache; --不置入缓存,如果高并发会存在被锁的问题

增加触发器

create or replace trigger tri_hello_oracle
  before insert on HELLO_ORACLE --在每次插入数据前触发
  for each row
declare
  -- local variables here
  v_num number;
begin
  select SEQ_HELLO_ORACLE.Nextval INTO V_NUM FROM DUAL; --触发序列,将序列目前的值添加到v_num变量中
  :NEW.MY_ID:=V_NUM; --将v_num的值赋予给新增的ID中
end tri_hello_oracle;

表的增加

insert into HELLO_ORACLE (NY_NAME, MY_AGE, MY_GENDER, MY_BIRTHDAY)
values ('Sora', 16, 'female', sysdate)
--由于通过触发器自增就不需要注入ID了

视图增加

--创建视图(创建的时候可以在后面自定义列名,如果不写就是默认列表名)
create view vw_hello_oracle as
select MY_NAME, MY_AGE, MY_GENDER, MY_BIRTHDAY from HELLO_ORACLE
​
--增加数据
insert into vw_hello_oracle values ('Sora', 16, 'female', sysdate)

表的删除

--一般删除
delete from HELLO_ORACLE where MY_NAME='Sora'
​
--视图删除
delete vw_hello_oracle where MY_NAME='Sora'

尤其注意删除后面一定要带条件!!!当然idea肯定会在你运行前提醒你的

表的修改

update HELLO_ORACLE set MY_NAME = 'Ven' where MY_NAME = 'Sora'

表的查询

--distinct 去重
select distinct * from HELLO_ORACLE

 

 

 

额外的一些小Tips

1.空值(null)参与运算返回的均为空值

2.desc table_name 属于SQL Plus命令,只能在命令行输出

posted @ 2021-12-08 10:29  二色莲华  阅读(67)  评论(0)    收藏  举报