oracle常用语句

//*************

oracle基本操作语句(适合初学者)

oracle操作语句:

1.创建表

create table 表名(

列名1 类型,

列名2 类型

);

2.修改类属性

alter table 表名 modify(列名 类型);

3.添加列

alter table 表名 add(列名 类型);

4.添加主键约束和非空约束

alter table 表名 add constraint pk_表名 primary key(列名);

alter table 表名 modify(列名 not null);

5.删除主键约束

alter table 表名 drop primary key;

alter table 表名 drop constraint pk_表名;

6.失效约束

alter table 表名 disable primary key;

alter table 表名 disable constraint pk_表名;

7.有效约束

alter table 表名 enable primary key;

alter table 表名 enable constraint pk_表名;

8.删除列

alter table 表名 drop column 列名;

9.设置某列不可用,然后删除

alter table 表名 set unused(列名);

alter table 表名 drop unused columns;

10.修改表名

rename 表名1 to 表名2

alter 表名1 rename to 表名2;

11.截断表

truncate table 表名;

12.截断表保留行空间

truncate table 表名 resue storage;

13.查看表结构

desc table 表名;

14.删除表

drop table 表名;

15.插入记录

例:insert into 表名 values(内容1,内容2,内容3,内容4);

16.带参数对话方式插入行

例:insert into 表名 values(&列名1,&列名2);

insert into 表名 values(内容1,内容2);

17.插入某几列记录

insert into 表名(列名1,列名2) values(内容1,内容2);

18.为列插入空值(其列不能为not null)

insert into 表名 values(内容1,null,null);

19.创建表(包括主键及外键设置)方法一

create table 表名(

列名1 类型

constraint pk_表名 primary key,

列名2 类型 not null,

列名3 类型

constraint fk_表名 reference 表名(列名),

列名3 类型

constraint ck_表名 check(列名3 in(''内容1'',''内容2'',''内容3''))

);

20.查询所有行

select * from 表名;

21.查询某几列

select 列名1,列名2 from 表名;

22.重复行消除

select distict 列名 from 表名;
23.where语句查询

select * from 表名 where 条件 order by 列名;

(注:如number类型查出自动按升序排列,如要按降序排列,则select * from 表名 where 条件 order by 列名 desc;)

24.创建表,方法二

create table 表名(

列名1 类型 primary key,

列名2 类型 not null,

列名3 类型 check(列名3 in('''','''','''')),

列名4 类型 refernce 表名(列名)

);

25.修改 列=‘?’的数据

update 表名 set (列=?) where 列=‘?’;

26.删除行

delete from 表名 where 条件;

27.事务处理

--事务处理

update 表名

set 列名(日期) = ''30-5月-98''

where 条件;

savepoint mark1;

delete from 表名 where 条件;

savepoint mark2;

rollback to savepoint mark1;

rollback;

28.建立用户user1,密码为password

授予用户connect,resource的权限

connect角色用于登录

resource角色用于建表等.

connect system/manager

create user user1 identified by password;

grant connect,resource to username;

29.数据控制语言

connect scott/tiger

30.把对表1查询和修改的权限授予user1

grant select,update on 表1 to user1;

31.把对表表1中列1和列2修改的权限授予user1

grant update(列1,列2) on 表1 to user1;

32.把对表表1查询的权限授予用户user1

并且user1用户还可以把这个权限授予别的用户(with grant option)

grant select on 表1 to user1 with grant option;

33.从用户user1撤销对表1查询和修改的权限

revoke select,update on 表1 from user1;

 

Oracle 导出、导入某用户所有数据(包括表、视图、存储过程...)
前提:在CMD 命令下

 

导出命令:exp 用户名/密码@数据库 owner=用户名 file=文件存储路径(如:F:\abcd.dmp)

测试截图:exp ZM/sql123@ORCL owner=ZM file=F\abcd.dmp

 

导入命令:imp 用户名/密码@数据库 fromuser=用户名 touser=用户名 file=d:\cu.dmp ignore=y

 imp:命令类型  

cu/mycu@db:导入的数据库登陆(用户名/密码@数据库)  

fromuser:文件的指定用户

 touser:指定导入到当前登录的数据库某个用户  

file:需要导入的数据文件  

ignore:是否忽略创建错误

 

测试截图:imp ZM/sql123@ORCL fromuser=ZM touser=SZZM file=F:\test.dmp ignore=

 

oracle导出数据失败的解决方法一:

用SQL拼接一个语句: select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;

使用上面的语句 会拼接出给空表分配Extent的语句,然后执行这些sql。

 

34.创建序列id_plus,从1开始自增,每次加1
CREATE SEQUENCE id_plus
INCREMENT BY 1
START WITH 1 ;

使用序列:id_plus.nextval

35.创建触发器,实现oracle表字段的自增
create trigger AutoID_Trigger
before insert on Table_Name for each row
begin
select AutoID.nextval into :new.ID from dual;
end AutoID_Trigger;

 

posted @ 2018-06-12 09:49  hsyooy  阅读(140)  评论(0编辑  收藏  举报