### Oracle学习笔记知识点详解 #### 一、Oracle基础概念与常用命令 1. **`desc` 命令**:用于描述表结构。通过输入 `desc 表名` 可以查看该表的所有列信息,包括列名、数据类型、是否为空等。 2. **`dual` 表**:`dual` 是一个特殊表,通常只包含一行记录,主要用于测试或演示 SQL 语句。例如,可以通过 `select 1 from dual;` 来获取数字 1。 3. **字符串拼接**:在 SQL 中,可以使用 `||` 符号来连接两个字符串。例如:`select 'Hello ' || 'World' from dual;` 将返回 "Hello World"。 4. **字符串处理函数** - **`substr()`**:用于提取字符串的一部分。语法为 `substr(字符串, 开始位置, 长度)`。例如,`select substr('HelloWorld', 1, 5) from dual;` 将返回 "Hello"。 - **`chr()`**:将 ASCII 数值转换为对应的字符。例如:`select chr(65) from dual;` 将返回 "A"。 - **`ascii()`**:将字符转换为其对应的 ASCII 数值。例如:`select ascii('A') from dual;` 将返回 65。 5. **数值处理函数** - **`round()`**:用于四舍五入。例如:`select round(123.456, 2) from dual;` 将返回 123.46。 - **`to_char()`**:将数值或日期转换为指定格式的字符串。例如:`select to_char(123, '000') from dual;` 将返回 "123"。 - **`to_date()`**:将字符串转换为日期。例如:`select to_date('2023-09-01', 'YYYY-MM-DD') from dual;` 将返回对应的日期值。 - **`to_number()`**:将字符串转换为数值。例如:`select to_number('123') from dual;` 将返回数值 123。 6. **SQL 语句执行顺序**: 1. FROM 子句 2. WHERE 子句 3. GROUP BY 子句 4. HAVING 子句 5. SELECT 子句 6. ORDER BY 子句 7. **`rownum`**:用于限制查询结果的行数。例如:`select * from 表 where rownum <= 10;` 只会返回前 10 行数据。 #### 二、表的创建与管理 1. **创建表**: - 基本语法:`create table 表名 (列名 数据类型 [约束], ...);` - 示例:`create table stu (id number(6), name varchar2(20) constraint stu_name_notNull not null, sex number(1), age number(3), sdate date, grade number(2) default 1, class number(4), email varchar2(50) unique);` 2. **修改表**: - 添加列:`alter table 表名 add (列名 数据类型);` 例如:`alter table stu add (addr varchar2(100));` - 修改列:`alter table 表名 modify (列名 新的数据类型);` 例如:`alter table stu modify (addr varchar2(200));` - 删除列:`alter table 表名 drop (列名);` 例如:`alter table stu drop (addr);` - 删除约束:`alter table 表名 drop constraint 约束名;` 例如:`alter table stu drop constraint stu_class_foreignKey;` 3. **删除表**:`drop table 表名;` 例如:`drop table stu;` #### 三、数据库字典与索引 1. **数据库字典**:用于存储关于数据库对象的信息,如表、视图、索引等。 - 查看用户拥有的所有表:`select table_name from user_tables;` - 查看用户拥有的所有视图:`select view_name from user_views;` - 查看用户所有的约束:`select constraint_name from user_constraints;` 2. **创建索引**:索引可以提高数据检索的速度。 - 创建索引:`create index 索引名 on 表名 (列名);` 例如:`create index ind_stu_email on stu (email);` #### 四、序列与PL/SQL 1. **序列**:用于自动产生唯一编号。 - 创建序列:`create sequence 序列名;` - 获取序列的下一个值:`select 序列名.nextval from dual;` 2. **PL/SQL**(程序化 SQL):是一种过程化的编程语言,用于增强 SQL 的功能。 - 数据类型: - `binary_integer`:整数类型 - `number`:数值类型 - `char` 和 `varchar2`:字符类型 - `date`:日期类型 - `long`:最大可达到 2GB 的文本类型 - `boolean`:布尔类型 - 示例代码: - 输出 Hello World:```plsql set serveroutput on; begin dbms_output.put_line('Hello World!'); end; ``` - 使用变量:```plsql declare v_name varchar2(20); begin v_name := 'myName'; dbms_output.put_line(v_name); end; ``` - 异常处理:```plsql declare v_num number := 0; begin v_num := 2 / v_num; dbms_output.put_line(v_num); exception when others then dbms_output.put_line('Error'); end; ``` 以上是根据提供的文件内容整理出的 Oracle 学习笔记中的关键知识点,希望对您有所帮助。
1.desc + 表名称;描述表的结构;
2.dual; Oracle 提供的一张表,只有一条记录;
3.如果给查询出来的字段取别名用到多个单词,需要用 "";
4.任何含有空值的数学表达式,最后的结果都是空值;
5.||; 字符串连接符;
6.SQL 里的字符串用'',如果字符串里还有 ' ,需要用两个('') ;否则报错;--'abcd''efghi''jklmn'
7.substr();取子串;
8.chr(); 把一个数字转换为字符;
9.ascii();把一个字符转换为数字;
10.round();四舍五入;
11.to_char(); 把数字或日期转换为特定格式的字符串;
12.to_date(); 把字符串转换为日期;
13.to_number(); 把字符串转换为数字;
14.SQL 语句执行顺序:
1).FROM clause
2).WHERE clause
3).GROUP BY clause
4).HAVING clause
5).SELECT clause
6).ORDER BY clause
15.rownum;
16.create a table;
create table stu
(
id number(6),
name varchar2(20) constraint stu_name_notNull not null,
sex number(1),
sdate date,
grade number(2) default 1,
class number(4),
email varchar2(50) unique
);
create table stu
(
id number(6) primary key,
name varchar2(20) constraint stu_name_notNull not null,
sex number(1),
age number(3),
sdate date,
grade number(2) default 1,
class number(4),
email varchar2(50),
constraint stu_class_foreignKey foreign key (class) references class(id),
constraint stu_name_email_unique unique(name, email)
);
create table class
(
id number(4) primary key,
name varchar2(20) not null
);
17.alter;修改表结构;
alter table stu add(addr varchar2(100));
alter table stu modify(addr varchar2(200));
剩余17页未读,继续阅读
- 粉丝: 0
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言-leetcode题解之70-climbing-stairs.c
- C语言-leetcode题解之68-text-justification.c
- C语言-leetcode题解之66-plus-one.c
- C语言-leetcode题解之64-minimum-path-sum.c
- C语言-leetcode题解之63-unique-paths-ii.c
- C语言-leetcode题解之62-unique-paths.c
- C语言-leetcode题解之61-rotate-list.c
- C语言-leetcode题解之59-spiral-matrix-ii.c
- C语言-leetcode题解之58-length-of-last-word.c
- 计算机编程课程设计基础教程