### Oracle 数据库基础查询与操作知识点 #### 一、数据基本查询回顾 1. **单行插入** - 在Oracle数据库中,实现单行插入主要使用`INSERT`语句。 - **语法**: ```sql INSERT INTO 表名 (列1, 列2, ..., 列n) VALUES (值1, 值2, ..., 值n); ``` - **注意事项**: - 插入的数据类型必须与对应的列数据类型匹配。 - 如果不指定列名,则必须为表的所有列提供值。 2. **数据修改** - **语法**: ```sql UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件; ``` - 可以同时修改多个列,只需在`SET`后面列出需要修改的列及其新的值即可。 - **注意**:如果省略`WHERE`子句,将更新表中所有行。 3. **序列的作用** - 序列是一种自动产生唯一编号的对象,常用于为主键或其他唯一标识字段自动生成值。 - **创建序列**: ```sql CREATE SEQUENCE 序列名 START WITH 起始值 INCREMENT BY 步长 MAXVALUE 最大值 MINVALUE 最小值 NOCYCLE; ``` - **使用序列**: - 获取序列下一个值:`序列名.NEXTVAL` - 获取序列当前值:`序列名.CURRVAL` 4. **插入重复的序列值** - **不能**插入重复的序列值。序列的目的是生成唯一的值,因此不会允许重复。 5. **DELETE FROM 和 TRUNCATE 的区别** - `DELETE FROM`:逐行删除记录,可以结合`WHERE`子句指定条件;会触发删除触发器。 - `TRUNCATE`:快速删除表中所有记录,不支持`WHERE`子句,不会触发删除触发器;执行速度更快,占用资源少。 #### 二、数据查询详解 1. **基本查询** - **语法**: ```sql SELECT * FROM 表名 WHERE 条件; SELECT 列1, 列2, ..., 列n FROM 表名 WHERE 条件; ``` - **示例**:查询性别为'MALE'的学生信息 ```sql SELECT * FROM STUDENT WHERE SEX = 'MALE'; ``` 2. **指定列查询** - 可以选择性地查询某些列,提高查询效率。 - **示例**:查询学号为1005的学生信息 ```sql SELECT * FROM STUDENT WHERE STUID = '1005'; ``` 3. **列名别名** - **语法**: ```sql SELECT 列名 AS 显示列名 FROM 表名; ``` - **示例**:查询学生信息,并将性别列显示为“Gender” ```sql SELECT SEX AS Gender FROM STUDENT; ``` 4. **表名别名** - **语法**: ```sql SELECT * FROM 表名 新表名; ``` - **示例**:查询学生信息,并将表名显示为“S” ```sql SELECT * FROM STUDENT S; ``` 5. **排序查询** - **升序**:默认排序方式 ```sql SELECT * FROM 表名 ORDER BY 列名 ASC; ``` - **降序** ```sql SELECT * FROM 表名 ORDER BY 列名 DESC; ``` #### 三、Oracle 函数 1. **字符函数** - `UPPER()`: 将字符转换为大写。 - `LOWER()`: 将字符转换为小写。 - `CONCAT()`: 连接两个字符串。 - `TRIM()`: 删除字符串两端的空格。 2. **日期函数** - `SYSDATE`: 返回当前系统日期和时间。 - `ADD_MONTHS()`: 向日期添加月份。 - `NEXT_DAY()`: 返回指定日期的下一天。 3. **数值函数** - `ROUND()`: 四舍五入。 - `TRUNC()`: 截断小数部分。 - `MOD()`: 求余数。 4. **转换函数** - **日期转换格式** - **YYYY**: 完整年份 - **MM**: 月份 - **DD**: 天数 - **HH24**: 24小时制小时 - **MI**: 分钟 - **SS**: 秒 - **YEAR**: 年份拼写 - **RR**: 数值年份的最后两位 - **MON**: 月份字母缩写 - **DAY**: 星期 - **数值转换格式** - **9**: 任意数值 - **0**: 以0显示 - **L**: 本地系统货币符号 - **.**: 小数点 - **,**: 千位符 - **$**: 以$显示 #### 四、案例分析 假设表`LIST`中有字符`LISTNUM`,其值的格式为“A-105,C-87,E-194”,要求查询表中`LISTNUM`,优先对字母进行顺序排列,然后对数字进行降序排列: ```sql SELECT LISTNUM FROM LIST ORDER BY SUBSTR(LISTNUM, 1, INSTR(LISTNUM, '-')-1), -TO_NUMBER(SUBSTR(LISTNUM, INSTR(LISTNUM, '-')+1)); ``` 以上知识点涵盖了Oracle数据库中的基本查询操作、数据插入和修改、序列的使用以及常见的函数应用等核心内容。这些技术是进行数据库管理和开发的基础,对于深入理解和掌握Oracle数据库至关重要。
剩余20页未读,继续阅读
- 粉丝: 0
- 资源: 21
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助