Oracle 学习笔记

博客围绕数据库展开,介绍了增删改查的基本操作,包括数据查询的多种语法、条件及排序、联表、分组查询等;数据增加、更新、删除的基本语句;还提及数据表和数据库的操作命令,如查询表结构、设置别名、备份,以及统计函数和查询结果合并等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库的最基本的东西就是增删改查  主要需要掌握的关键字有 SELECT、 FROM 、WHERE、 GROUP BY 、 HAVING、 ORDER BY、 CREATE、 DROP 、ALTER、 GRANT、 REVOKE

一、数据查询

  1. 基本语法 SELECT [DISTINCT] * | 列名称[别名],列名称[别名],…… FROM 表名称【别名】WHERE 条件 ;
  2. 最基本的语句为 SELECT 列名 FROM 表名 WHERE 条件;
  3. 其中 条件包括 

关系运算符: > ,<,>=,<=,<>,!=

逻辑运算符: AND OR NOT

范围运算符 BETWEEN ... AND  IN 

判断 IS NULL ,IS NOT NULL

模糊查询 LIKE "_","%"

    4. 排序查询

                   在 WHERE 条件 后 添加 ORDER BY 字段 (或是别名)[ASC | DESC ],字段(或是别名) [ASC | DESC ],……  ;(排序在整个过程最后才会处理)

     5.联表查询

         消除笛卡尔积的影响       : 

         selecet * from emp ,dept where emp.eno = dept.eno ;          性能很差 ,特别是数据量大的时候

        内连接(等值连接):所有满足条件的数据都会被显示出来;

                                           where emp.eno = dept.eno ; 

        外连接(左外连接,右外连接,全外连接):控制左表与右表的数据是否全部显示

             |-左外连接     字段 = 字段(+);where emp.eno = dept.eno(+) ;    注:(+)为Oracle特有

              |-右外连接    字段(+)= 字段 ;where emp.eno(+) = dept.eno ; 

       *注 自己发明的   自连接      FROM emp e ,emp m where e.mgr = m.empno ;

1999SQL 标准

SELECT [DISTINCT] * | 列[别名]

from 表名称1

                     [CROSS JOIN 表名称2]    交叉连接(有笛卡尔积)

                     [NATURAL JOIN 表名称2]     自然连接(自动取消笛卡尔积)

[JOIN 表名称      ON (条件)| USING(字段)]

[LEFT | RIGHT | FULL      OUT JOIN 表名称2]

6.分组查询

SELECT [DISTINCT] 分组字段(别名),...  | 统计函数                                        ⑤

FROM                                                                                                                  ①

WHERE             *不可以用统计函数                                                                    ②

GROUP BY   分组字段                                                                                        ③

HAVING        分组后的过滤条件,可以用统计函数 (where可以不用了)         ④ 

ORDER BY 字段 [ASC | DESC]                                                                          ⑥

二、数据增加

  1. 最基本的语句为 INSERT INTO 表名(列1,列2,列3……) VALUE (值1,值2,值3……) ;

三、数据更新

  1. 最基本的语句为 UPDATE 表名 SET 列名=新值 WHERE 列名=旧值 ;

四、数据删除

  1. 最基本的语句为 DELECT  FROM 表名 WHERE 列名称 = 值  ;

五、数据表的操作命令

六、数据库的一些操作命令

1、查询表结构: DESC 表名;

select t.column_name as 字段名,
           t.data_type as 字段类型
from USER_TAB_COLS t where TABLE_NAME ='table_name';

2、设置列的别名  在列或是表后直接加上别名即可。

3、数据库备份

七、其他

1.统计函数    count()、max()min()sum() avg()

函数名称返回类型描述
upper(列 | 字符串)字符串将传人字符串转为大写
lower(列 | 字符串)字符串将传人字符串转为小写
initcap(列 | 字符串)字符串开头首字母大写,其他为小写
length(列 | 字符串)数字

 取得字符串长度

substr(列 | 字符串,开始索引,[长度])字符串字符串截取
replace(列 | 字符串,旧内容,新内容)字符串字符串替换
函数名称返回类型描述
round(列|数字[,小数位])数字四舍五入
trunc(列|数字[,小数位])数字数据截取
mod(列|数字,列|数字)数字求模(余数)
函数名称返回类型描述
add_month(列|日期,月数)日期在指定日期添加N个月后的日期
months_between(列|日期,列|日期)数字

两个日期之间的天数

(注:时间-时间 如果跨度大,天数是不准确的)

last_day(列|日期)日期月最后一天
next_day(列|日期,星期X)日期下一个时间点

 

2.查询结果合并 : UNION 、UNIONALL 、MINUS(差集)、INTERSECT(交集)

创建表空间

--创建表空间
create tablespace 表空间名称 datafile '数据文件路径' size 表大小 autoextend on 开启自动增长 next 1m 自动增长的大小;

create tablespace mid1 datafile '/home/oracle/app/oracle/product/11.2.0/dbhome_2/dbs/mid1.dbf' size 10m autoextend on next 1m;

创建分区表

--创建分区表
--创建分区表
create table 表名(mid int,name varchar2(50),age int ) 
partition by range(mid)
   (partition 分区名 values less than (10) tablespace 表空间名称,
   partition 分区名 values less than (20) tablespace 表空间名称
    );

create table testpartition(mid int,name varchar2(50),age int ) partition
    by range(mid)
   (partition mid1 values less than (10) tablespace mid1,
   partition mids2 values less than (20) tablespace mid2
    );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值