2024年4月10日发(作者:)

第1章、简单查询语句

一、基本查询语句

1、基本的语法格式:

【select(SQL关键字)[distinct(滤除重复记录)] * /列名称„„ 别名 from table;】

2、书写SQL语句遵循的基本原则:①不区分大小写,除非特别指定;②可以写成一行或多行;③关键字不能简

写或分割于多行;④子句通常单独行书写,便于编辑和提高可读性;⑤使用Tab和缩进提高程序可读性;⑥关键

字最好使用大写,其他使用小写;⑦在SQL*Plus中,SQL语句是在SQL prompt状态下输入,并且每行都有编

号。是SQL的缓冲区,任何时候在缓冲区中只会存放当前一条语句。

3、| | 表示列与列、列与算术表达式、列与常量之间的合成。

第2章、限定查询和排序语句

1、限定数据行的查询语法格式:

【select [distinct] */ 列名称„„ 别名 from table where(限定条件)列名/表达式/常量/比较运算符;】

(其中比较运算符包括:=:等于、>:大于、>=:大于等于、<:小于、<=:小于等于、<>.!=.^=:不等于。

(要查询的列)between(下限)and(上限):两个值之间包括边界范围比较。 (要查询的列)in (集合,

用逗号隔开):和多个值中任意一个匹配,相当于多个or并列在一起。 (要查询的列)like+‘通配符和查询

的内容’:模糊查询、is null:是否是空值)

1.1、where子句中,字符串和日期数值必须用单引号引起来,数值型常量则不需要,字符型数据区分大小写,默

认的日期形式是:DD-MON-YY。

1.2、like(模糊查询):把握不准查询确切的值,通过字形匹配来查询。可以使用通配符:%:表示0或更多任意

的字符;_:代表一个字符。可以同时使用。当查询的内容包括%或_时,可以使用escape,即“/”转义符。

1.3、逻辑运算符:

and

True

Flase

Null

True

T

F

N

Flase

F

F

F

Null

N

F

N

or

True

Flase

null

true

T

T

T

False

F

F

N

Null

T

N

N

Not::如果条件为假则返回真值。

在where子句中。通过使用and和or在where中使用多个条件。

1.4运算符优先规则:算数运算符>连接符>比较运算符>not>and>or。

2、order by 子句:查询结果按照某种顺序排列显示。

order by 子句语法格式:

【select [distinct] */ 列名称„„ 别名 from table

where(限定条件)列名/表达式/常量/比较运算符

Order by (要查询的列) asc(生序排列)/desc(降序排序);】

注意:order by子句必须放在select语句的最后,并且可以指定一个参与排序的表达式或别名。可使用别名进行

排序。Select语句中只能有一个order by 子句。

2.1、默认的排序方式是升序,不同类型数据的升序排列原则:

☆ 数值型数据按照从小到大的顺序排列的;

☆ 日期型数据按照时间从早到晚的顺序排列的;

☆ 字符型数据按照字母顺序排列的;

☆ 空值在升序排列方式下排在最后,降序排列排在最前。

SQL运行过程:from首先运行,where其次运行,select再运行,order by 最后运行。对查询结果进行排序。

1

第3章、单行函数查询

1、单行函数的特点:

☆ 对查询返回的每一行都起作用。 ☆ 可以返回一个数据值或相对于原类型不同类型的数据值。

☆ 可以有一个或多个参数,参数可以是一列或一个表达式。 ☆ 每行返回一个结果。

☆ 可以用于select、where、order by子句,并且可以相互嵌套。 ☆ 只对一行进行操作。

2、单行查询语法格式:

【function_name(函数名称) column(列名)/ expression(字符串或计算表达式) [arg1(参数),arg2„„]】

3、字符函数:接受字符输入并且返回字符或数值。

① 大小写转换函数:lower(需转换的内容):将字符串转换成小写。Upper(需转换的内容):将字符串转换

成大写。initcap(需转换的内容):将每个单词的第一个字母转换成大写,其余字母转换成小写。

②字符处理函数:concat:将字符串连接在一起。substr:提取字符串的某一特定部分;参数:(字符串,截取起

始点[负数:从右往前数,然后从前往后截取],截取个数[省略表示截取到最后])。 length:获得字符串的个数。

instr:在字符串中查找某个字串的位置;参数(字符串,要查找的字符,从那个位置开始查找[默认值为1,负数:

一直从右往左数],第几次出现的位置)。lpad:以右对齐的方式填充字符型数据;参数:(字符串,填充长度,填

充内容)。rpad:以左对齐的方式填充字符型数据(参数同上)。trim:去掉字符串头部或尾部,如果被去除的字符

串和被处理的字符串是原义字符串则必须使用单引号引起来;参数:(去掉的字符串 from 被去掉的字符串)。

replase:替换;参数(字符串,被替换字符,替换的字符)。

4、数值函数:接受数值输入并返回数值。包括:round:四舍五入;参数:(数字,四舍五入后的小数点后位数[默

认值为0,负数为从小数点往左边数])。trunc:截取;参数:(数字,截取后小数点后面的位数[同上,但无四舍

五入功能])。mod:求余,多用于判断奇数偶数;参数:(被除数,除数)。

5、日期函数:对日期型进行操作,所有的日期函数都返回一个日期型数据,除了months_between函数,返回一

个数值。

Oracel9i默认的显示和输入形式是DD-MON-RR。Oracel有效的日期范围是公元前4712年1月1日到公元9999

年12月31日。日期的运算如下表:

操作

日期+数字

结果

日期

描述

在某日期的基础上加上一定

的天数

日期-数字 日期 在某日期的基础上减去一定

的天数

日期-日期 天数 一个日期减去另一个日期

(相差天数)

在某日期的基础上加上小时

YY与RR的比较:

转换的时间

系统当前时间

0-49

0-49 50-99 0-49 50-99

YY RR

本世

本世

本世

本世

下个

世纪

上个

世纪

本世

50-99

本世

纪 日期+数字

/24

日期

◇ Sysdate:当前系统时间。

◇ day:对星期的计算。

5.1常用日期函数:

日期函数

months_between

(date1,date2)

add_months

(date,n)

next_day

(date,‘char’)

last_day

(date)

参数

date1、date2为

两个日期

date为一个日期

n为月数

char:星期几或字符串

date:某日期

2

含义

两个日期相差的月份数量

结果可正可负

向指定日期加上若干月数

n是整数。负数为累减

date之后一周内的星期几或字符串

求date所在月的最后一天