Orale常用语句
1:查询指定表名的字段
select * from sys.user_tab_columns where table_name=表名 //查询指定表名的字段
2: 查询数据库参数
show parameter db;
3:查询数据库的实例名
select instance_name from v$instance;
3:数据库安装结束后,如果要知道正在运行额数据库是否有域名以及数据库域名名称可以用
select value from v$parameter where name='db_domain'
show parameter domain
4:数据库安装结束后,如果要知道正在运行额数据库是否有域名以及数据库域名名称可以用
select value from v$parameter where name='db_domain'
show parameter domain
5:数据库安装结束后,如果要知道正在运行额数据库是否有域名以及数据库域名名称可以用
select value from v$parameter where name='db_domain'
show parameter domain
6: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 password;
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
关于日期
1、 日期转换:to_char(日期,”yyyy-mm-dd”)
2、Oracle中直接查询出年,这里是十年
select to_char(Add_months(sysdate,(1-rownum)*12),'yyyy') 年月 from dual connect by rownum<11 order by 年月 desc
(1- rownum)*12:一减行号乘以12个月
结果如图:
oracle连接查询
SELECT
a.农事记录员,
a.合作社,
a.乡镇,
a.村名称,
b.地块号,
b.种植编号,
季茬,
年度,
品名,
种植面积,
种子用量,
(select count(id) from YJZX_农事记录_整地 where 种植编号=b.种植编号) as 整地,
(select count(id) from YJZX_农事记录_播种 where 种植编号=b.种植编号) as 播种,
(select count(id) from YJZX_农事记录_育苗 where 种植编号=b.种植编号) as 育苗,
(select count(id) from YJZX_农事记录_培肥 where 种植编号=b.种植编号) as 培肥
FROM (SELECT
农事记录员,
地块号,
YJZX_合作社及村信息.村名称,
YJZX_合作社及村信息.合作社,
YJZX_合作社及村信息.乡镇
FROM YJZX_地块信息,
YJZX_合作社及村信息
WHERE YJZX_地块信息.村 = YJZX_合作社及村信息.村名称) a,
YJZX_农事季茬种植记录 b
WHERE a.地块号 = b.地块号 and a.农事记录员=’冉贞’
查询结果如图:
SELECT
ID,
仓库编号,
仓库地址,
所属公司,
仓库建筑,
内部仓号,
库容 "库容(吨)", //将列的显示名修改为库容(吨)
管理员ID,
管理员姓名,
(select nvl(sum(当前库存)/1000,0) from YJZX_库存信息 where YJZX_库存信息.仓库编号=YJZX_仓库基本信息.仓库编号) "当前库存(吨)",
库容-(select nvl(sum(当前库存)/1000,0) from YJZX_库存信息 where YJZX_库存信息.仓库编号=YJZX_仓库基本信息.仓库编号) "剩余库容(吨)"
FROM YJZX_仓库基本信息 WHERE 管理员ID=20316
nvl(sum(当前库存)/1000,0):单位换算,换成吨