oracle基础入门总结

本文档详细介绍了Oracle数据库的安装、新用户创建与授权,以及基础的表操作如创建、修改和删除。涵盖了字符型、数值型、日期型等数据类型,还涉及到数据的增删改查和各种查询技巧,包括精准查询、模糊查询、范围查询等。此外,还讨论了日期处理、聚合函数和分组查询等高级操作。
摘要由CSDN通过智能技术生成

oracle基础入门总结

学习结束,来实战试试吧~.


提示:还在陆续更新中,如有问题,请指出,感谢!



安装

没啥可说的

创建新用户并授权

1.1 打开并登录

普通登录我们看不到密码容易出错,我们直接管理员登录

sqlplus 用户名/密码 as sysdba

1.2 创建新用户

eg: 使用以下 CREATE USER 语句创建一个新用户:ot

sql> CREATE USER OT IDENTIFIED BY Orcl1234;

1.3授权

通过使用GRANT语句授权ot用户权限

sql> GRANT CONNECT, RESOURCE, DBA TO OT;

orcle基础知识

创建表

1.字符型

(1)CHAR : 固定长度的字符类型,最多存储 2000 个字节
(2)VARCHAR2 :可变长度的字符类型,最多存储 4000 个字节
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
(3)LONG : 大文本类型。最大可以存储 2 个 G

2.数值型

NUMBER : 数值类型
例如:NUMBER(5) 最大可以存的数为 99999
NUMBER(5,2) 最大可以存的数为 999.99

3.日期型

(1)DATE:日期时间型,精确到秒
(2)TIMESTAMP:精确到秒的小数点后 9 位

4.二进制型(大数据类型)

(1)CLOB : 存储字符,最大可以存 4 个 G
(2)BLOB:存储图像、声音、视频等二进制数据,最多可以存 4 个 G

5.例子:
CREATE TABLE 表名称(
字段名 类型(长度) primary key,
字段名 类型(长度),
.......
);
create  table t_pricetable
(
id number primary key,
price number(10,2),
ownertypeid number,
minnum number,
maxnum number
);

修改表

增加字段:
ALTER TABLE 表名称 ADD(列名 1 类型 [DEFAULT 默认值],列名 1 类型
[DEFAULT 默认值]...)
ALTER TABLE T_OWNERS ADD
(
REMARK VARCHAR2(20),
OUTDATE DATE
)
修改字段
ALTER TABLE 表名称 MODIFY(列名 1 类型 [DEFAULT 默认值],列名 1 类型
[DEFAULT 默认值]...)
ALTER TABLE T_OWNERS MODIFY
(
REMARK CHAR(20),
OUTDATE TIMESTAMP
)
修改字段名
ALTER TABLE 表名称 RENAME COLUMN 原列名 TO 新列名
ALTER TABLE T_OWNERS RENAME COLUMN OUTDATE TO EXITDATE
删除字段
-- 删除一个字段
ALTER TABLE 表名称 DROP COLUMN 列名
-- 删除多个字段
ALTER TABLE 表名称 DROP (列名 1,列名 2...)
ALTER TABLE T_OWNERS DROP COLUMN REMARK
ALTER TABLE T_OWNERS DROP(REMARK,EXITDATE,KUA)

删除表

DROP TABLE 表名称

数据增删改

插入数据
INSERT INTO 表名[(列名 1,列名 2...)]VALUES(1,值 2...)
INSERT INTO T_OWNERS
VALUES
	( 1, ' 张 三 丰', 1, '2-2', '5678', SYSDATE, 1 );
INSERT INTO T_OWNERS
VALUES
	( 2, '赵大侃', 1, '2-3', '9876', SYSDATE, 1 );
commit;
修改数据
UPDATE 表名 SET 列名 1=1,列名 2=2....WHERE 修改条件;
需求:将 ID 为 1 的业主的登记日期更改为三天前的日期
UPDATE T_OWNERS 
SET adddate = adddate - 3 
WHERE
	id = 1;
commit;
删除数据
DELETE FROM 表名  WHERE  删除条件;
需求:删除业主 ID 为 2 的业主信息
DELETE 
FROM
	T_OWNERS 
WHERE
	id = 2;

### 查询

精准查询
需求:查询水表编号为 30408 的业主记录

SELECT
	* 
FROM
	T_OWNERS 
WHERE
	WATERMETER = '30408'
模糊查询
需求:查询业主名称包含“刘”的业主记录

SELECT
	* 
FROM
	T_OWNERS 
WHERE
	NAME LIKE '%刘%'
and运算符
需求:查询业主名称包含“刘”的并且门牌号包含 5 的业主记录

SELECT
	* 
FROM
	T_OWNERS 
WHERE
	NAME LIKE '%刘%' 
	AND HOUSENUMBER LIKE '%5%'
or运算符
需求:查询业主名称包含“刘”的或者门牌号包含 5 的业主记录

SELECT
	* 
FROM
	T_OWNERS 
WHERE
	NAME LIKE '%刘%' 
	OR HOUSENUMBER LIKE '%5%'
and 与 or 运算符混合使用
需求:查询业主名称包含“刘”的或者门牌号包含 5 的业主记录,并且地址编号
为 3 的记录

SELECT
	* 
FROM
	T_OWNERS 
WHERE
	( NAME LIKE '%刘%' OR HOUSENUMBER LIKE '%5%' ) 
	AND ADDRESSID =3
范围查询
需求:查询台账记录中用水字数大于等于 10000,并且小于等于 20000 的记录
我们可以用>=<=来实现,语句

SELECT
	* 
FROM
	T_ACCOUNT 
WHERE
	USENUM >= 10000 
	AND USENUM <= 20000
空值查询
需求:查询 T_PRICETABLE 表中 MAXNUM 为空的记录

SELECT
	* 
FROM
	T_PRICETABLE 
WHERE
	MAXNUM IS NULL

去掉重复记录

需求:查询业主表中的地址 ID,不重复显示

SELECT DISTINCT
	ADDRESSID 
FROM
	T_OWNERS

排序查询

升序排序
需求:对 T_ACCOUNT 表按使用量进行升序排序

SELECT
	* 

FROM
	T_ACCOUNT 
ORDER BY
	USENUM
升序排序
需求:对 T_ACCOUNT 表按使用量进行升序排序

SELECT
	* 
FROM
	T_ACCOUNT 
ORDER BY
	USENUM DESC
伪列

表中的每一行在数据文件中都有一个物理地址,ROWID 伪列返回的就是该行的
物理地址。使用 ROWID 可以快速的定位表中的某一行。ROWID 值可以唯一的
标识表中的一行。由于 ROWID 返回的是该行的物理地址,因此使用 ROWID 可
以显示行是如何存储的。

select rowID,t.* from T_AREA t
ROWNUM

在查询的结果集中,ROWNUM 为结果集中每一行标识一个行号,第一行返回 1,
第二行返回 2,以此类推。通过 ROWNUM 伪列可以限制查询结果集中返回的行
数。

select rownum,t.* from T_OWNERTYPE t

聚合查询

求和
需求:统计 2012 年所有用户的用水量总和

SELECT
	SUM( USENUM ) 
FROM
	T_ACCOUNT 
WHERE
	YEAR = '2012'
平均
需求:统计 2012 年所有用水量(字数)的平均值

SELECT
	AVG( USENUM ) 
FROM
	T_ACCOUNT 
WHERE
	YEAR = '2012'
求最大值
需求:统计 2012 年最高用水量(字数)

SELECT
	MAX( USENUM ) 
FROM
	T_ACCOUNT 
WHERE
	YEAR = '2012'
统计记录个数 count
需求:统计业主类型 ID 为 1 的业主数量

SELECT
	COUNT( * ) 
FROM
	T_OWNERS T 
WHERE
	OWNERTYPEID =1

分组查询

需求:按区域分组统计水费合计数

SELECT
	AREAID,
	SUM( MONEY ) 
FROM
	T_ACCOUNT 
GROUP BY
	AREAID
分组后条件查询 having
需求:查询水费合计大于 16900 的区域及水费合计

SELECT
	AREAID,
	SUM( MONEY ) 
FROM
	T_ACCOUNT 
GROUP BY
	AREAID 
HAVING
	SUM( MONEY ) > 16900

链接查询

日期

日期添加
INSERT INTO T_ACCOUNT ( METERDATE ,ID)
VALUES
	( TO_DATE( '2008-05-05 13:13:13','YY-MM-DD HH24:MI:SS'),'77' );
//同时添加了id是因为id不能为空
日期增加
分组后条件查询 having
需求:查询水费合计大于 16900 的区域及水费合计

SELECT
	AREAID,
	SUM( MONEY ) 
FROM
	T_ACCOUNT 
GROUP BY
	AREAID 
HAVING
	SUM( MONEY ) > 16900

链接查询

日期

日期添加
INSERT INTO T_ACCOUNT ( METERDATE ,ID)
VALUES
	( TO_DATE( '2008-05-05 13:13:13','YY-MM-DD HH24:MI:SS'),'77' );
//同时添加了id是因为id不能为空
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值