3.Oracle语法建表操作 |
| 创建表空间 |
- create tablespace waterboss
data file 'c:\waterboss.dbf'
size 100m
autoextend on
next 10m
- autoextend on 用于设置自动增长,如果存储量超过初始大小,则开始自动扩容
| 创建用户 |
identified by itcast
default tablespace waterboss
- default tablesapce 用于指定默认表空间名称
| 用户赋权 | | 创建表
| create table 表名(
字段名 数据类型 约束,
字段名 数据类型 约束
)
| 修改表
|
| 增加字段
| ALTER TABLE 表名 ADD(
列名 数据类型 约束
)
| 修改字段语法
| 1.修改属性
ALTER TABLE 表名称 MODIFY(
列名 数据类型 约束
)
区别于增加字段,此语法针对存在的字段
2.修改字段名
ALTER TABLE 表名称 RENAME COLUMN 原名称 TO 新列名
| 删除字段名
| 1.删除一个字段
ALTER TABLE 表名称 DROP COLUMN 列名
2.删除多个字段
ALTER TABLE 表名称 DROP (列名1,列名2...)
| 删除表
|
| 删除表
| DROP TABLE 表名称
| 数据的增删改
| 需要进行commit提交
| 增
|
| 插入数据
| 1.根据字段插入
INSERT INTO 表名(列名1,列名2 ...) VLUAES(值1,值2....)
2.全字段插入
INSERT INTO 表名 VALUES(值1,值2...)
| 删
|
| 删除数据
| 1.delete
DELETE FROM 表名 WEHRE 条件
2.truncate
TRUNCATE TABLE 表名
区别:
delete删除的数据可以rollback
delete删除可能产生碎片,并且不释放空间
truncate是先催毁表结构,在重构造表结构
| 改
|
| 修改数据
| UPDATE 表名 SET 列名1=值1, 列名2=值2,....
| 查
|
| 查询表
|
| 简单查询
|
SELECT * FROM 表名
select * from 表名 where 条件
select * from 表名 where name like '%关键字%'
and>or,改变优先级使用()
select * from 表名 where usenum between 10000 and 20000
is null
is not null
select distinct addressid from T_OWNERS
| 排序查询
|
select * from 表名 order by 字段名 (desc)
| 伪类查询
|
- 实例
- ROWNUM(返回行号),ROWID(返回物理地址)
select rowid,rownum,t.* from T_OWNERTYPE t
| 聚合查询
|
select sum(usenum) from t_account where year='2012'
select avg(usenum) from T_ACCOUNT where year='2012'
select max(usenum) from T_ACCOUNT where year='2012'
select min(usenum) from T_ACCOUNT where year='2012'
select count(usenum) from T_ACCOUNT where year='2012'
select areaid,sum(money) from t_account group by areaid
select areaid,sum(money) from t_account group by areaid havingsum(money)>169000
分组后只能查询分组字段和聚合函数
| 连接查询
|
- 内连接查询
- select o.id 业主编号,o.name 业主名称,ot.name 业主类型 from T_OWNERS o,T_OWNERTYPE ot where o.ownertypeid=ot.id
- 左外连接查询
select ow.id,ow,name,ac.year,ac.month,ac.money from T_OWNERS ow left join T_ACCOUNT ac on ow.id=ac.ownneruuid
select ow.id,ow,name,ac.year,ac.month,ac.money from T_OWNERS ow, T_ACCOUNT ac on ow.id=ac.ownneruuid(+)
select ow.id,ow,name,ac.year,ac.month,ac.money from T_OWNERS ow right join T_ACCOUNT ac on ow.id=ac.ownneruuid
select ow.id,ow,name,ac.year,ac.month,ac.money from T_OWNERS ow, T_ACCOUNT ac on ow.id(+)=ac.ownneruuid
| 子查询
|
- select * from T_ACCOUNT where year='2012' and month='01' and usenum>( select avg(usenum) from T_ACCOUNT where year='2012' and month='01')
(select o.id 业主编号,o.name 业主名称,ot.name 业主类型
from T_OWNERS o,T_OWNERTYPE ot
where o.ownertypeid=ot.id)
where 业主类型='居民'
(select name from t_address where id=addressid) addressname(重命名)
from t_owners
select子查询可以调用外面一层的表字段
select id,name,
( select name from t_address where id=addressid )
addressname,
( select (select name from t_area where id=areaid ) from
t_address where id=addressid )
adrename
from t_owners;
| 分页查询
|
- 简单分页查询
- select rownum,t.* from T_ACCOUNT t where rownum<=10
rownum只能使用<或<=
select * from
(select rownum r,t.* from
(select * from T_ACCOUNT order by usenum desc) t
where rownum<=20 )
where r>10
|
| |
|