ORACLE数据库sql语言、函数及常用命令444

2019-02-15 22:03

目录

ORACLE结构查询语言-SQL语言 .................................................................................................................................................. 3

一、 概念介绍:................................................................................................................................................................. 3 二、 数据类型:................................................................................................................................................................. 3 三、 列的非空属性NOT NULL: .................................................................................................................................... 3 四、 特殊约定:................................................................................................................................................................. 3 五、 建表或视图语句CREATE ......................................................................................................................................... 3 六、 简单SELECT语句: ................................................................................................................................................ 4 七、 有条件的SELECT语句: ........................................................................................................................................ 4 八、 对查询结果进行排序: ............................................................................................................................................. 4 九、 剔除重复语句DISTINCT: ......................................................................................................................................... 5 十、 集合函数:................................................................................................................................................................. 5 十一、 对查询结果分组GROUP BY ................................................................................................................................ 5 十二、 数据分组深入HAVING ........................................................................................................................................ 6 十三、 连接查询:............................................................................................................................................................. 8 十五、 外连接(+): ...................................................................................................................................................... 11 十六、 子查询:............................................................................................................................................................... 12 十七、 存在测试EXISTS、NOT EXISTS ..................................................................................................................... 13 十八、 子查询、连接查询的区别 ................................................................................................................................... 13 十九、 联合语句 union ................................................................................................................................................... 14 二十、 程序易读要求 ....................................................................................................................................................... 14 二十一、 关于索引使用方法 ........................................................................................................................................... 15 二十二、 From 表的顺序和查询速度相关 .................................................................................................................... 16 二十三、 关于运行速度参考时间 ................................................................................................................................... 16 二十四、 子查询作为select显示数据时的要求 ............................................................................................................ 16 二十五、 插入数据INSERT: ........................................................................................................................................ 17 二十六、 修改数据UPDATE: ...................................................................................................................................... 17 二十七、 利用表连接修改数据UPDATE: .................................................................................................................. 18 二十八、 验证update正确定的方法 .............................................................................................................................. 19 二十九、 同一个表中数据替换的例子 ........................................................................................................................... 19 三十、 删除数据DELETE............................................................................................................................................... 20 三十一、 提交生效COMMIT; ........................................................................................................................................ 20 三十二、 回滚作废ROLLBACK; ................................................................................................................................... 20 三十三、 Sql的递归用法 ................................................................................................................................................ 20 三十四、sql编译执行顺序(假设kh_jbxx有N条记录,kh_dkhxx有n条记录) ........................................................ 21

1、不使用索引的全表扫描 ............................................................................................................................................. 21 2、使用索引..................................................................................................................................................................... 21 3、exists ........................................................................................................................................................................... 21 4、无连接in .................................................................................................................................................................... 21 5、有连接in .................................................................................................................................................................... 21 三十五、说明: ...................................................................................................................................................................... 21 常用命令、技巧、书写格式........................................................................................................................................................... 22

一、 启动数据库(开机时系统自动启动) ........................................................................................................................ 22 二、 initorac.ora(或 intiWG73.ora) ............................................................................................................................ 22 三、 数据导出................................................................................................................................................................... 22

1

四、 数据导入................................................................................................................................................................... 22 五、 系统常用表............................................................................................................................................................... 23 六、 获取汉字拼音码 ....................................................................................................................................................... 23 七、 Sql语句启发方法 .................................................................................................................................................... 24 ORACLE数据库SQL语言常用函数 ............................................................................................................................................ 25

一、 伪列: ...................................................................................................................................................................... 25 二、 伪表dual: ............................................................................................................................................................... 25 三、 运算符:................................................................................................................................................................... 25 四、 日期运算:............................................................................................................................................................... 25 五、 数值函数:............................................................................................................................................................... 25 六、 字符串查找函数:instr............................................................................................................................................ 25 七、 字符函数:............................................................................................................................................................... 25 八、 日期函数:............................................................................................................................................................... 25 九、 判断是否为空函数 ................................................................................................................................................... 26 十、 转化函数:............................................................................................................................................................... 26 十一、 条件函数:........................................................................................................................................................... 26

1.case when .................................................................................................................................................................... 26 2.decode ......................................................................................................................................................................... 26

2

ORACLE结构查询语言-SQL语言

(新增内容为红色)

一、概念介绍:

数据库DATABASE、表TABLE、列COLUMN、行ROW、关键字PRIMARY KEY、索引INDEX 二、数据类型:

LONG RAM:超长大型数据(照片、图形、描述等不定长数据)。 DATE:包含日期和时间。

INTEGER:有符号全长二进制整数(31位精度)。 SMALLINT:有符号半长二进制整数(15位精度)。

DECIMAL (p[,q]): 有符号的封装了的十进制小数,最多有 p 位数,并假设有 q 位在小数点右边。 如果省略 q ,

则认为是 0。

FLOAT:有符号双字浮点数。

CHAR(n): 长度为 n 的定长字符串。

VARCHAR(n): 最大长度为 n 的变长字符串。

CHAR (5) 和 VARCHAR2(5)的区别是 CHAR不足5位后面自动加上空格,VARCHAR2不加

三、列的非空属性NOT NULL:

如果一个列具有非空属性,则在给该表增加、修改数据时必须保证该列有内容,否则会出错。

如果一个列允许为空,该列可以不放任何内容,即空值(在SQL中书写为NULL),空值不是空格。 如果一个列内容为空值,则该列不等于任何值(包括空值)。

例如:列SAGE1、SAGE2的内容为空,列SAGE3内容为20,则下面的逻辑表达式全部为NULL:SAGE1=SAGE2、SAGE1<>SAGE2、SAGE1=SAGE3、SAGE3>SAGE1。下面的逻辑表达式全部为真:SAGE1 IS NULL、SAGE3 IS NOT NULL。下列表达式全为空:sage1+100,sage2+sage3 四、特殊约定:

1. 所有SQL语句以分号结束不是以回车换行结束。 2. 中扩号代表选项,就是其中的内容可有可无。 3. 下面讲的列名在很多情况下也可以是表达式。

4. 表名格式:[用户名.]表名,例如:user001.student,如果不注名用户,则说明是当前登陆的用户的表。 五、建表或视图语句CREATE

格式:

CREATE TABLE 表名

(列名 类型 长度 [NOT NULL], 列名 类型 长度 [NOT NULL], 列名 类型 长度 [NOT NULL], 列名 类型 长度 [NOT NULL], 列名 类型 长度 [NOT NULL]);

CREATE VIEW 视图名 AS SELECT ……; CREATE TABLE 表名 AS SELECT ……;

Create table as 经常在修改一个表前备份该表,而且运行速度很快且不用提交 例如:Select table a_student as select * from student; Create table as 还可以用来复制表结构

例如:假设有三个表

3

Student(sno,sname,ssex,sage,sdept) 学生表 Sno:学号 Sname:姓名 Ssex:性别 Sage:年龄 Sdept:所在系

Course(cno,cname,cpno,credit) Cno:课程号

Cname:课程名称 Cpno:先行课号 Credit:学分 Sc(sno,cno,grade) Sno:学号 Cno:课程号 Grade:成绩

Create table student1 as select sno,name from student; //利用student创建一个仅仅有两个列的student1。 六、简单SELECT语句:

格式:SELECT [表名.]列名 [列别名],[表名.]列名 [列别名],…… FROM表名 [表别名],表名 [表别名],表名 [表别名], ……;

SELECT * FROM 表名 [表别名],表名 [表别名],表名 [表别名];//*代表所有列 例如:1.SELECT SNO,SNAME,SAGE FROM STUDENT;

2.SELECT * FROM STUDENT;

七、有条件的SELECT语句:

常用的运算:=、<>、>=、<=、AND、OR、NOT、LIKE、IN,between…and… IN、NOT IN运算:SAGE IN (10,20,30) 、SAGE NOT IN (10,20,30)

LIKE、NOT LIKE运算:SNAME LIKE ‘李%’、 SNAME LIKE ‘%庆%’、 SNAME NOT LIKE ‘%华’ //百分号代表任意长度字符串。 //下划线代表任意一个字符。

between…and…运算:sage between 20 and 40;//年龄在20和40之间的,且包括20和40 格式:SELECT列名 [列别名],列名 [列别名],…… 列名 [列别名]

FROM表名 [表别名],表名 [表别名],表名 [表别名] WHERE 条件表达式;

例如:SELECT SNO,SNAME,SAGE FROM STUDENT WHERE ((SAGE>18 OR SAGE <25)AND SSEX=’男’) OR

SSEX=’女’;

//选择年龄大于18或小于25的性别为男的,或者性别为女的记录 SELECT * FROM STUDENT WHERE NOT SSEX=’女’; //选择性别不是女的所有记录(包括男与空)

SELECT * FROM STUDENT WHERE SSEX IS NOT NULL; //选择性别不为空的所有记录

Select sname,sdept,sage from student where sage between 20 and 40;

//查询年龄在20~40岁(包括20和40)之间的学生姓名,系别和年龄。

八、对查询结果进行排序:

用order by子句对查询结果按照一个或多个属性列的升序(ASC)或降序(DESC)排列,缺省值为升序。 格式:SELECT列名 [列别名],列名 [列别名],…… 列名 [列别名]

FROM 表名 [表别名],表名 [表别名],表名 [表别名] WHERE 条件表达式

4

ORDER BY列名、列名、……列名;

例如:SELECT SNO,SNAME,SAGE FROM STUDENT ORDER BY SNO; //选出的记录按SNO排序(升序)

SELECT SNO,SNAME,SAGE FROM STUDENT ORDER BY SSEX,SNO;

//选出的记录先按SSEX排序,再按SNO排序

说明:当有多列值进行排序时,先按第一列排序,在第一列值相同的情况下,再按第二列值进行排序,当第二列值相同时安第三列值排序,以此类推。。。。。。 九、剔除重复语句DISTINCT:

如查询系统表中电能表作用类别//select distinct(dnbzylb) from kh_cbkp; 历史数据移植问题

例如:SELECT DISTINCT SAGE FROM STUDENT;

如果有100名18岁的学生,不加DISTINCT 18在结果返回100行18,加DISTINCT 18返回1行18。 SELECT DISTINCT SSEX FROM STUDENT;//返回男、女或null

SELECT COUNT(DISTINCT SAGE) FROM STUDENT;//返回所有年龄种类的数量 十、集合函数:

MAX([distinct|all]<列名>)求一列值中的最大值 MIN([distinct|all]<列名>)求一列值中的最小值

SUM([distinct|all]<列名>)求一列值的总和(数值型的) COUNT([distinct|all]<列名>)统计一列中值的个数 AVG([distinct|all]<列名>)计算一列值的平均值 ★其中all为缺省值。

注意:如果用distinct短语,则表示在计算时要去掉此列中重复的值,即每个值只被记录一遍 例如:1。SELECT MAX(SAGE) FROM STUDENT;

//选择最大年龄。

2.SELECT COUNT(*) FROM STUDENT;

//选择student表中学生的总人数。 3.Select count(distinct sno )

From sc;

//查询选修了课程的学生人数 特别注意:

4.Select count(ssex) from student;

//选择student表中学生性别不为空的总人数。

十一、 对查询结果分组GROUP BY

Group by 子句将查询结果表的某一列或多列值分组,值相等的为一组,当在表列中不使用group by子句,实际上是告诉数据库把表中所有的行看作一个组。

格式:SELECT列名 [列别名],列名 [列别名],…… 集合函数(列名 [列别名] )

FROM表名 [表别名],表名 [表别名],表名 [表别名] WHERE 条件表达式

GROUP BY 列名、列名、……列名;

特别说明:当使用group by时,未在group by部分用到的表列在select部分出现时必须使用分组函数(max(),min(),sum(),avg(),count());如对于指定的表列找不到想使用的合适的分组函数,那么就将该表移到group by子句中。

Sno,sname,grade,cname 有数据

01 john 20 pascal 01 john 30 c

5


ORACLE数据库sql语言、函数及常用命令444.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:超星泛雅文化地理答案(DOC)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: