oracle从入门到精通(PDF格式)-第5部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
第 7 页,共 106 页
…………………………………………………………Page 8……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
一、SQL
1。1、基本概念:
数据库对象:
1。 表
2。 约束条件:保证数据完整性。
3。 视图:虚表,命名的查询语句。
4。 索引:加速查询(加快查询的速度)。
5。 序列:一串连续递增或递减的数字,步长相同,(代理键)。
6。 同义词:一个对象的另外一个叫法(对象的别名)。
7。 存储过程:用于操作
8。 函数:用作复杂运算的。用于计算。
9。 触发器:由事件触发的存储过程。
10。 包
1。2、数据库安全:
1、用户
2、方案或模式(Schema):是用户所对应的对象的集合。用户名等于方案名
3、权限
4、角色:权限组,一组权限。
5、配额(quota):允许被使用的空间。用户可以在表空间上可以使用的空间。
端口:2030
环境变量
…ORACLE_BASE 基本目录
…ORACLE_NAME 当前的主目录
…ORACLE_NLS33 使用 US7ASCLL 字符集时不用设
…PATH 路径
1。3、基本的 SQL SELECT 语句
口令中的第一个字符不能为数字。
语句类型:
(一)查询:SELECT
数据操作语句:DML(数据的插入 INSERT、删除 DELETE、修改UPDATE、合并MERGE)
(二)合并:把一个表中的数据合并到另一个表中去,如果数据在原表中存在做 UPDATE,否则INSERT
(9I 独有)。
(三)事务控制语句:MIT 提交、ROLLBACK 回滚、
SAVEPOINT 存储点(与 ROLLBACK 搭配使用)在回滚的时候可以回滚到某个存储点上。否则回滚到
最初起点上。
(四)数据定义语句:对对象操作。TRUNCATE 清除表中所有数据 /CREATE 创建 /DROP 删除 /ALTER
第 8 页,共 106 页
…………………………………………………………Page 9……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
修改
(五)权限控制语句(DCL):GRANT 授予权限 /REVOKE 移除权限
1。4、SELECT 语句
1、语法:
SELECT 查询列表 FROM 数据源;
*&* SQL 命令必须加分号。
ALTER USER HR IDENTIFIED BY HR ACCOUNT UNLOCK;
修改用户 解锁
给 HR 解锁
CONNECT(conn) HR/HR(密码) 用 HR 用户连接数据库。
*&*(不是 SQL 命令 是 SQLPLUS 命令)不用加分号
DESCRIBE(desc) DEPARTMENTS
关键字 表名
描述表命令(SQLPLUS 命令)
2、SQL 语句说明:
(1)语句文本的书写不区分大小写。(但字符串在作为值的时候要注意大小写)
(2)语句可以写单行也可以写多行。
(3)关键字不能缩写或跨行。
(4)语句通常被分多行书写。
(5)缩进被用于提高语句的可读性。
3、数字和日期都可以使用数学运算符建立表达式。
+,…,*,/ 不等于
日期可以加减数字,数字默认为天。
日期不能加日期,但日期可以减日期。
字符不能加减。
4、定义空(NULL)值
空值出现在表达式中会导致整个表达式的值为空。
NVL(字段名,将要赋予的值)函数
作用:将空值转换成其他有 ASCLL码的值。
annual_salary 年薪
5、别名
可以加中文的字段别名。
如果想强制地改变列名的大小写,可以在别名的定义时加上双引号;列名有空格时也要在列名上加双
引号。
例:select lastname as 〃employees name〃 from employees;
第 9 页,共 106 页
…………………………………………………………Page 10……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
6、spool +路径
保存命令(将显示保存)
7、连接操作符: ||
select lastname || 'work in' || department_id from tablename;
select last_name || '''s salary is ' || salary 员工月薪 from employees;
~~~
注:在单引号中还要使用单引号的话,就必须使用两个单引号来实现一个单引号的功能。
8、文本字符串
*可以代表字符、数字或是日期。
*当代表字符或日期的时候用单引号括起来,数字不需要。
9、DISTINCT
在查询时默认显示所有的行,包括有重复值的行。
DISTINCT 消除重复行关键字,放在整查询列表的最前面。
作用范围:整个查询列表的组合。
消除重复行后会按字段的特性,做升序排列。(执行过程:先排序,再消除重复)
select distinct department_id;job_id from employees;
1。5、SQLPLUS 与 SQL 的关系
SQL *是一种语言
*ANSI 标准
*关键字不能缩写
*用于操作数据库中的数据和表的定义
1、SQLPLUS命令的功能:
*描述表的结构
*编辑 SQL 语句
2、查询 SQLPLUS 命令
help + 命令
3、SQLPLUSW 在 WINDOWS 下运行的分析器。
登陆 ISQLPLUS
(1)先到服务中启动 OracleOraHome92HTTPServer
(2)在浏览器中输入:http://wnj:7778/isqlplus
URL(网页中的地址)
第 10 页,共 106 页
…………………………………………………………Page 11……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
4、SQLPLUS 命令:
4。1、与文件相关的命令:
4。1。1、 spool + 路径
。
。
spool off
4。1。2、save
把当前内存中的语句保存为文本文件。
4。1。3、run 或 /
运行当前内存中的语句
4。1。4、clear buffer(cl buff)
清空当前内存中的语句
4。1。5、start @ 读取并执行
4。1。6、get 读取不执行
4。2编辑命令:
z List 列出一条语句
*表示当前行
z Change 修改命令
原来 c/jj/kk
c/jjj/xxx
z input 在当前行之后插入一行新的数据
z append 在当前行中插入新的东西
n 写数字显示对应行
z delete
del + 回车 删除当前行
del 1 3 删除第一到第三行
z edit l;c;i;a;n;d;e
z 查看当前用户
SHOW USER
z 默认的日期格式:DD…MON…RR 日…月…年
z 日期可以进行比较;
z 字符可以进行比较(以字母的 ASCLL 码比较);
z IN(set)或NOT IN 匹配任何列表中的值;
z LIKE 模糊匹配字符串值;
z IS NULL 是否空值;
z IS NOT NULL 是否不为空;
z BETWEEN 可以做数字、日期和字符的比较。
z 通配符 %、_
S_mith
WHERE first_name like 's/_%'escape'/';
解释这个符号后的下划线为正常的字符。如果不加,将被视为通配符作用的下划线。
'_'只能通配一个字符
主要用于通配固定位数的字符。例如查询月收入五位数以上的员工。五位就可以用'_'来查询。
第 11 页,共 106 页
…………………………………………………………Page 12……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
z 逻辑操作符(用在 WHERE 子句中)
1。 AND
2。 OR
3。 NOT
先执行 NOT ,再执行 AND 最后执行 OR。
z ORDER BY
ORDER BY 子句在 SELECT 语句的最后。
z ASC:升序 DESC:降序
z 空值作为无穷大来处理。
z rownum 显示行数量约束的关键字(在结果中可以做代理键使用);
可以按照查询列表中序号进行排序。
系统在用户写出查询列表的同时就赋予每个列名一个序号,升序赋予。
例: SELECT name;phone;adress from。。。。。。。。。;
1 2 3
1。6、单行函数
单行函数:对单行数据进行计算并返回一个值的函数。
*修改数据项
*接受参数返回一个值。
*对每行进行操作。
*每行返回一个结果。
*可以修改数据类型
*可以嵌套
1、character 字符类型函数:
z LOWER()强制小写
z UPPER()强制大写
z INITCAP()每个单词首字母大写;可以用在 WHERE子句中。
z CONCAT(‘’,‘’)连接函数
z SUBSTR(string;a';b')返回 string 的一部分,a和 b 以字符为单位。
z SUBSTRB(string;a';b')返回 string的一部分,a和 b 是以字节为单位。
z SUBSTRC(string;a';b')返回 string的一部分,a和 b 是以UNICODE 完全字符为单位。
z SUBSTR2(string;a';b')返回 string的一部分,a和 b 是以UCS2 代码点为单位。
z SUBSTR4(string;a';b')返回 string的一部分,a和 b 是以UCS4 代码点为单位。
以上函数都是返回 string 的一部分,从字符位置 A 开始,长为 B 个字符。如果 A 是0,那它就
被认为是 1 (字符串的开始位置)。如果 A 是正数,那么字符从左边开始数。如果是负数,则从 STRING
的末尾开始,从右边数。如果 B 不存在,那么缺省是整个字符串。如果 B 小于 1,将返回 NULL。如
果 A 或B 使用了浮点数,那么该数值首先被节取成一个整数,返回类型与 STRING相同。
z LENGTH(string)
z LENGTHB(string)
z LENGTHC(string)
z LENGTH2(string)
第 12 页,共 106 页
…………………………………………………………Page 13……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通
z LENGTH4(string)
以上函数返回 string 的长度。因为 CHAR 类型的值是填充空格的,所以如果 string 是 CHAR 数
据类型,那么末尾的空格算在长度之内。如果 string 是NULL,函数返回NULL。
z INSTR(string1;string2';a'';b') 返回string1中包含string2的位置。a和b以字符为单位。
z INSTRB(string1;string2';a'';b') 返回 string1 中包含 string2 的位置。a 和 b 是以字节为
单位。
z INSTRC(string1;string2';a'';b')返回 string1 中包含 string2 的位置。a 和 b 是以 UNICODE
完全字符为单位。
z INSTR2(string1;string2';a'';b') 返回 string1 中包含string2 的位置。a 和b 是以 UCS2 代
码点为单位
z INSTR4(string1;string2';a'';b') 返回string1中包含string2的位置a和b是以UCS4代码
点为单位。
以上函数返回 string1 中包含 string2 的位置。从左边开始扫描 string1;起始位置是 A。如果
A 为负数那么从右边开始扫描。第 B 次出现的位置将被返回。A 和 B 缺省都为 1,即返回在 string1
中第一次出现 string2 的位置。如果 string2 在 A 和 B 的规定下没有找到那么就返回 0。位置的计
算是相对于 string1 的开始位置的,而不关 A 和B 的取值。
z LPAD(列名;数字;‘要补上的字符’)左补位
z RPAD(列名,数字,‘要补上的字符’)右补位
z TRIM(‘child_str’ FROM ‘parents_str’)将连续子串(只能有一个字符)从主串的两边截
取出来,区分大小写。默认为截取空格。
z LTRIM左截取
z RTRIM右截取
z ascii(x)函数,返回'X'字符的十进制数,即