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命令,只能在命令行输出

浙公网安备 33010602011771号