oracle学习总结(四)

创建表
建表的统一格式
CREATE TABLE [schema.]table(
column datatype [DEFAULT expr]
[column_constraint],

[table_constraint]
);
create table student_demo(
id number(7),
name varchar2(50),
gender varchar2(10)
);
这里写图片描述

default 是在列后面默认值
如;
create table student(
id number(7),
name varchar2(50),
gender varchar2(10) default ‘male’
);
命名规则 表名 列名
i 必须以字母开头
ii 最多长30个字符长
iii 必须只包含A–Z,a–z,0–9,_,$和#
iv 不能复制同一用户所拥有的另一个对象的名称
v 不能是Oracle10g服务器保留字
约束:
i not null
只能写为列级约束,
ii primary key
主键
联合主键设置在表级上。
iii unique
唯一性约束
可以列级约束,可以表级约束。
foreign key
声明在列级别
dept_id number(7) constraint emp_deptid_fk (把关键字省略) references dept(id)
create table w(
id number(7) primary key ,
wc_id number(7) references wc(id)
);
声明在表级别
create table c(
id number(7) primary key,
c number ,
foreign key(c) references wc(id)
);
constraint emp_deptid_fk foreign key(列名) references dept(id)
联合外键只能建立到表级别上
constraint leo_id_fk foreign key (aid,aname) references b (id,name) ON DELETE CASCADE
ON DELETE CASCADE 级联删除行内 内容
删除父表中的数据,把关联的子表数据一同删除
如果没有设置级联删除,需要先删除外键所在的表中的内容,再删除主表中的内容
否则会出现以下错误:
这里写图片描述
CHECK
用来验证插入列中的值是否符合规则
check(逻辑表达式)
通过使用子查询创建表
create table 表名[(列名1,列名2,列名3…)]
as
子查询
create table emp1
as
select id,last_name,salary,dept_id
from s_emp
where 1=2;
DML语句 data manipulating language
insert delete update
执行DML语句的时候会产生事务(commit后修改的数据才会生效)
insert语句:
insert into table_name(col1,col2,col3,..,colN) values(val1,val2,val3,…,valN);

insert into table_name values(表中有几个列这里就要插入几个值顺序也要和表中的列的顺序一致)

使用子查询向test表中插入数据
insert into test(id,last_name,salary)
select id,last_name,salary
from s_emp
where id<6;

update语句

update table_name
set col1=val1,col2=val2 …
where …

s_emp 张三 —-> 李四

update s_emp
set last_name=’李四’
where last_name=’张三’

delete语句

delete from table_name
where …

删除表中last_name是李四的数据。
delete from s_emp
where last_name=’李四’;

删除test表中所有数据
delete from test;

删除test表中id大于3的数据
delete from test
where id>3;

TRUNCATE
truncate和delete作用一样,也是删除表中数据

delete是DML语句,删除数据后需要自己手动的提交事务或者回滚事务

truncate是DDL语句,删除数据后会自动的帮我们提交事务

例如:
truncate table test;
相当于:
delete from test;
commit

事务:
是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行
事务的特点:ACID(原子性、一致性、隔离性和持久性)
commit 事务完成 提交
rollback; 回滚事务:让前面的DML操作都撤销
注意:事物回滚是在没有提交的情况下,可以回滚到相应的位置,如果提交,回滚不回去。
savepoint 保存回滚点
rollback to 保存点 :回滚到保存点。
回滚事务:让前面的DML操作都撤销
例如:
insert into ….
savepoint a;
insert into ….
rollback to a
注意:执行DDL语句会让当前存在并且还没提交的事务进行提交
(DDL语句) data define language
修改表结构
alter 表名 对应的操作

在表中添加一个新的列
alter table table_name
add(column_name datatype constraint)

alter table w add(name varchar(20) not null);
添加列时,如果列的约束是not null 约束,则表中必须为空,否则会出现以下错误

这里写图片描述

在表中删除一列
alter table table_name
drop column column_name;

alter table wc
drop column name;
这里写图片描述

修改表中列的数据类型

alter table table_name
modify(column_name datatype);

添加或修改列的约束:
alter table w add(hello varchar(20) unique);

alter table w modify(hello not null);

创建序列
CREATE SEQUENCE name
[INCREMENT BY n] 步长
[START WITH n] 起始值 1
[{MAXVALUE n | NOMAXVALUE}] 最大值 10
[{MINVALUE n | NOMINVALUE}] 最小值1
[{CYCLE | NOCYCLE}] 序列循环
[{CACHE n | NOCACHE}]

create sequence myseq
increment by 2
start with 1;

每个序列对象有俩个属性:
nextval 序列中的下一个值
currval 序列中的当前的值

视图(view):
视图是一条查询的sql语句,用于显示一个或多个表或其他视图中的相关数据。
视图将一个查询的结果作为一个表来使用,因此视图可以被看作是一个虚拟表.

创建视图:
create view view_name
as
subquery

删除视图:

drop view view_name

索引 index
作用:加快数据查询的速度

主键列上面默认会加入索引
由数据库系统自行维护

CREATE INDEX index
ON table_name (column_name);

drop index index_name;
操作用户的语句

创建用户:
CREATE USER 用户名
IDENTIFIED BY 密码;

create user wc identified by wc;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值