### Oracle学习笔记知识点详解 #### 一、基本操作与用户管理 - **显示当前用户名**:`show user;` - 这条命令用于显示当前登录数据库的用户名。 - **连接数据库**:`sqlplus sys/tiger as sysdba;` - 通过SQL*Plus工具连接到Oracle数据库,其中`sys`是用户名,`tiger`是密码,而`as sysdba`表示以系统管理员的身份登录。 - **解锁用户**:`alter user scott account unlock;` - 解锁`scott`用户账户,使其能够登录数据库进行操作。 #### 二、数据查询与展示 - **查看表结构**:`desc emp;` - 显示`emp`表的结构,包括字段名称和数据类型等信息。 - **查询表中的数据**:`select * from salgrade;` - 从`salgrade`表中选取所有列的信息。 - **获取系统当前时间**:`sysdate;` - 返回数据库服务器的当前日期和时间。 - **查询带有当前时间的数据**:`select sysdate from emp;` - 查询`emp`表中的记录,并为每一行附加当前系统的时间戳。 - **自定义列名查询**:`select ename, sal * 12 as annual_sal from emp;` - 选择`emp`表中的`ename`和`sal`字段,其中`sal`乘以12的结果命名为`annual_sal`。 - **字符串连接**:`select ename || sal from emp;` - 将`ename`和`sal`字段的值拼接在一起。 - **字符串拼接与转义**:`select ename || 'as''d' from emp;` - 字符串拼接时可以使用单引号嵌套的方式进行转义处理。 - **去重查询**:`select distinct deptno from emp;` - 查询`emp`表中不重复的`deptno`值。 - **组合去重查询**:`select distinct deptno, job from emp;` - 查询`emp`表中`deptno`和`job`字段组合不重复的记录。 #### 三、条件筛选 - **基本条件查询**:`select * from dept where deptno = 10;` - 从`dept`表中选取`deptno`等于10的所有记录。 - **数值条件查询**:`select ename, sal from emp where sal > 1500;` - 从`emp`表中选择薪水大于1500的员工姓名和薪水。 - **字符比较**:`select ename, sal from emp where ename > 'CBA';` - 按照ASCII码值比较字符串,这里选取`ename`大于`CBA`的所有记录。 - **范围查询**:`select ename, sal from emp where sal between 800 and 1500;` - 选取`sal`在800到1500之间的员工姓名和薪水。 - **空值查询**:`select ename, sal, comm from emp where comm is null;` - 选取`comm`字段为空(NULL)的员工姓名、薪水和佣金。 - **列表查询**:`select ename, sal, comm from emp where sal in (800, 1500, 2000);` - 选取`sal`为800、1500或2000的员工姓名、薪水和佣金。 - **多条件查询**:`select ename, sal, comm from emp where ename in ('KING', 'SMITH');` - 选取`ename`为“KING”或“SMITH”的员工姓名、薪水和佣金。 - **日期条件查询**:`select ename, sal, hiredate from emp where hiredate > '20-2-81';` - 选取雇佣日期晚于1981年2月20日的员工姓名、薪水和雇佣日期。 - **逻辑运算符**:`and` 和 `or` 分别用于表示逻辑与和逻辑或关系。 #### 四、模式匹配 - **模式匹配查询**:`select ename from emp where ename like '_A%';` - 选取`ename`第二个字符为A且后面跟任意字符的所有记录。 - **特殊字符转义**:`select ename from emp where ename like '%\%%';` - 使用反斜杠`\`对百分号`%`进行转义,匹配以百分号`%`结尾的所有记录。 - **自定义转义符**:`select ename from emp where ename like '%$%%' escape '$';` - 使用`$`作为转义字符,匹配以`%`结尾的所有记录。 #### 五、排序操作 - **降序排序**:`select * from dept order by deptno desc;` - 对`dept`表按`deptno`字段进行降序排序。 - **复合排序**:`select empno, ename, deptno from emp order by deptno asc, empno desc;` - 首先按照`deptno`升序排序,对于相同`deptno`的记录再按照`empno`降序排序。 - **复杂条件排序**:`select ename, sal * 12 as annual_sal from emp where ename not like '_A%' and sal > 800 order by sal desc;` - 选取`ename`不以“A”开头且薪水大于800的员工姓名和年薪,并按照薪水降序排列。 #### 六、函数应用 - **大小写转换**:`select lower(ename) from emp;` - 将`ename`字段中的值全部转换为小写。 - **条件大小写转换**:`select ename from emp where lower(ename) like '_a%';` - 选取`ename`第二个字符为小写`a`的所有记录。 - **字符串截取**:`select substr(ename, 1, 3) from emp;` - 截取`ename`字段每个值的前三个字符。 - **字符与ASCII码转换**: - `select chr(65) from dual;` —— 将ASCII码65转换为字符`A`。 - `select ascii('A') from dual;` —— 获取字符`A`对应的ASCII码值。 - **数值四舍五入**: - `select round(23.652) from dual;` —— 将23.652四舍五入为整数。 - `select round(23.652, 2) from dual;` —— 将23.652保留两位小数。 - `select round(23.652, -1) from dual;` —— 将23.652四舍五入到十位。 - **格式化输出**:`select to_char(sal, '$...') from emp;` - 使用`to_char`函数将`sal`字段的数值转换为带有货币符号的字符串形式。 以上内容涵盖了Oracle数据库的基本操作、数据查询、条件筛选、排序以及常用函数的应用等多个方面,旨在帮助初学者快速掌握Oracle数据库的基础知识和常用操作技巧。
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- linuxdeployqt-continuous-x86-64
- 安卓象棋安装包.apk
- 药丸检测36-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- C# OnnxRuntime Gaze-LLE 凝视目标估计.rar
- 草杂草检测19-YOLO9数据集.rar
- 计算机程序设计员 三级考证
- 计算机视觉项目:Swin-Transformer 【tiny、small、base】模型实现的图像识别项目:水稻病害图像分类
- 苹果检测8-YOLO8数据集.rar
- 项目开发全流程解析:阶段、关键技术及应用实践
- 基于 LVM(逻辑卷管理)的 Linux 系统磁盘扩容情况