oracle基础_字符_数字_日期_转换-函数

Oracle 基础

关键字: orcale基础

一、关系数据库的一些概念

1、主键的值一般不可以改变

2、外键:指向另一个表或本表的主键或唯一键的字段。外键的值一定要和某一主键相同,或者为空。

3、数据库对像:表,视图,序列,索引,同义词,程序(进程,函数,sql和pl/sql数据)4、sql command 类别

data retrieval数据检索:select

data manipulationlanguage (DML)数据操作语言:insert,update,delete

data definition language (DDL)数据定义语言:create,alter,drop,rename,truncate

transaction control事务控制:commit,rollback,savepoint

data control language(DCL)数据控制语言:grant,revoke

DCL 和DDL命令的执行会导致一次隐式提交,之前未提交的操作(包括DML

命令)都会提交写入日志文件,并在适当地时候写入数据文件。

二、SQL的语法

1) 连接号:||

2) 把两个字符连接起来

eg:select game_card_type_id||name from game_card_type;

3) select distinct dept_id,title from emp: 对多个字段的唯一

4) order by desc(降序)

order by asc(升序)

5) where column is (not) null

6) like ‘_a%’ _表示一个字符。%表示多少字符

like ‘%x\_y%’ escape ‘\’:显示包括x_y的字符

7) where table1.column(+)=table2.column

place the operator on the side of the join where there is no value

to join to.

把(+)放在可能没有值的位置.

8) 联接类型:

equijoin:等式查询

non_equijoin:不等式查询

self:自己和自己建立关联

out join:where a.column=b.column(+)

可以用的操作符是:’=’,’and’,不可以用’or’,’in’

9) COUNT 函数所用的列包含空值时,空值行被忽略。

10) where 后的in | any | all 的区别

in : 等于子查询的任何一个数

any : 与子查询的每一个值相比,只要比其中一个大(小)就可以了

all : 与子查询的所有值相比要比所有的的都大(小)

!=ALL作用跟NOT IN 一样

三、SQL*PLUS的环境(可以在glogin.sql中定义初始参数)

1) START 命令用以执行一个已储存的文件,等同于@

2) SAVE命令用以创建一个文件

3) EDIT命令用以调用编辑器编辑已存文件的内容

4) CHANGE 是SQL*Plus的编辑命令,用于在当前一行把旧文段转换为新文段

5) DEL 命令用以删除文本中一行或多行文字

6) SPOOL命令用以把查询结果储存在一个已有文件中,注意与SAVE区别

7) GET命令用以一个文件的内容写进一个SQL块中

8) SPOOL OUT命令用以把文件的结果发送到系统打印机。

9) set pause off/on:设置页面的滚动。按enter看下一页。

10) PAGESIZE:指定每页显示的行的数值,

11) LONG:设置LONG类型数据显示的最大宽度

12) FEEDBACK:设置查询返回记录的最大值

13) DESCRIBE :用于显示表和视图的结构,同义词,或指定函数和过程的详述。

14) Timing:可以看到语句执行的时间

15) Autotrace:可以看到sql的执行计划,sysdba执行/home/oracle/product/9.2.0/sqlplus/admin/plustrce.sql脚本,而且必须把plustrace角色赋给执行用户。执行用户必须运行/home/oracle/product/9.2.0/rdbms/admin/utlxplan.sql

16) 在各种数据类型中,只有NUMBER数据类型的默认显示是靠右对齐的,而CHAR, DATE和VARCHAR2是靠左对齐的

17) QUIT 是SQL*PLUS命令,用以结束一个SQL*PLUS的对话。

18) ttitle:

ttitle ‘selina’ 设select 的结果的抬头为selina

tti :显示ttitle的状态

tti off/on

btitle ‘end’ 设结果的尾部

19) Column:

a) column name heading ‘名字’format a15

b) column id justify left format 999999

c) column start_date format a9 null ‘not hired’//当字段为空的时候则显示成not hired

d) column :显示所有的column设置

e) column columnname:显示某一个字段的设置

f) clear column :清除所有column设置

g) column columnname clear:清除某一字段的设置

h) 以上的column可用col代替.clear可以用cle代替

13)定义变量

用&:由用户输入变量值,此变量可以存在于where后,做为整个查询语句的变量。也可以在order by 后。做为字段的变量。也可以放在select 后,做为字段或表达式的变量。

用&&:如果多个地方引用此变量。。只用输入一次

SQL> SELECT empno, ename, job, &&column_name

FROM emp

ORDER BY &column_name;

accept:由用户输入变量值

accept 变量名 datatype prompt ‘告诉用户需要输入的信息:’ hide

引用的时候:&变名

define(undefined):一开始就定义变量值

四、函数:

1、字符函数

.lower:把字符转成小写

.upper:把字符转成大写

.initcap:把单词的第一个字母变成大写

.concat:连接字符 concat(‘good’,’morning’)=goodmoring

.SUBSTR (column\expression, m[,n]) 用于对字符串进行截取操作,从第m个位置开始,把其后的连续n个字符的部分截取下来,如果m位负值,则从末尾开始计算。

eg:substr(‘string’,1,3) =str

substr(‘string’-3,3)=ing

.INSTR('String', 'r')=3 返回子字符串所在的位置.

.LPAD(sal,10,'*') =*******sal 函数将左边的字符串填充一些特定的字符

.length: 用于返回表达式中的字符数,注意返回的是NUMBER。

.NVL(expression1, expression2)

NVL 函数用以把一个空值转换为一个实值,如:

NVL(100/quantity, 0) ,要是quantity为空值,该函数返回一个0。

如果两个字段类型不同必须进行转换。

.Min():返回最小值。。如果是字符。。A

2、数学函数

.round:四舍五入

round(2.566,2)=2.27

round(45,-1)=50

.trunc: 截断

trunc(2.566,2)=2.56

trunc(45,-1)=40

.mod:

mod(m,n):m-n*flood(m/n) file://flood是取整数

3、日期函数:

a) months_between(date1,date2):算date1和date2之间的月的数量,可以是小数可以是负数

months_between(’01-sep-95’,’11-jan-94’)=1.9774194

b) add_months(date,n):为date加上N个月,N只可以是整数

c) next_date(date,’char’):查找date的下一个星期N

next_date(’01-sep-95’,’FRIDAY’)=08-SEP-95

d) last_day(date):查找date月的最后一天。

e) rount(date):把日期四舍五入

rount(25-MAY-95’,’MONTH’)=01-JUN-95

rount(25-MAY-95’,’YEAR’)=01-JAN-95

f) trunc(date):把日期截断

trunc (25-MAY-95’,’MONTH’)=01-MAY-95

trunc (25-MAY-95’,’YEAR’)=01-JAN-95

g) 日期中RR与YY的区别,RR格式对日期作类似于舍入的操作,YY格式对日期作类似于截取的操作

RR YY

1995 27-oct-95 1995 1995

1995 27-oct-17 2017 1917

2001 27-oct-17 2017 2017

2001 27-oct-95 1995 2095

用法:select to_char(sysdate, 'YY') from dual;

select to_char(to_date('95-11-27', 'RR-MM-DD'), 'YYYY-MM-DD') from

dual;

select to_char(to_date('95-11-27', 'YY-MM-DD'), 'YYYY-MM-DD') from

dual;

4、转换函数

1)TO_CHAR:

TO_CHAR(date,’fmt’):fm前缀用来去除首尾的空字符或0

TO_CHAR(total,’fm$999999’)

如果想转成$0.25,那就要写成fm$9999990.99

合集下载

Oracle 日期时间函数的用法

Oracle 日期时间函数的用法

Oracle 日期时间函数的用法

在oracle中处理日期大全 TO_DATE格式 Day: dd number 12 dy abbreviated fri

day spelled out friday ddspth spelled out, ordinal twelfth Month: mm

number 03 mon abbreviated mar month spelled out march Year: yy two digits

98 yyyy four digits 1998

在oracle中处理日期大全

TO_DATE格式

Day:

dd number 12

dy abbreviated fri

day spelled out friday

ddspth spelled out, ordinal twelfth

Month:

mm number 03

mon abbreviated mar

month spelled out march

Year:

yy two digits 98

yyyy four digits 1998

24小时格式下时间范围为: 0:00:00 - 23:59:59....

12小时格式下时间范围为: 1:00:00 - 12:59:59 ....

1.

日期和字符转换函数用法(to_date,to_char)

2.

select to_char( to_date(222,'J'),'Jsp') from dual

显示Two Hundred Twenty-Two

3.

求某天是星期几

select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;

星期一

select

to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE =

oraclecast函数用法

oraclecast函数用法

oraclecast函数用法

Oracle的CAST函数是用来将一个表达式转换为指定的数据类型。它可以在SELECT、INSERT、UPDATE和DELETE语句中使用。语法如下:

```

CAST (expression AS data_type)

```

expression是需要转换的表达式,data_type是转换的目标数据类型。

Oracle中支持的数据类型包括数字类型、字符类型、日期类型等。下面详细介绍一些常见的使用情况。

1.数字类型转换:

-将字符类型转换为数字类型:

```

SELECTCAST('123'ASNUMBER)FROMDUAL;

```

结果为:123

-将日期类型转换为数字类型:

```

SELECTCAST(SYSDATEASNUMBER)FROMDUAL;

``` 结果为:转换为对应的数值类型,时间戳在Oracle中是以1970年1月1日午夜(GMT)以来的秒数表示的。

2.字符类型转换:

-将数字类型转换为字符类型:

```

SELECTCAST(123ASVARCHAR2(10))FROMDUAL;

```

结果为:'123'

-将日期类型转换为字符类型:

```

SELECTCAST(SYSDATEASVARCHAR2(10))FROMDUAL;

```

结果为:转换为指定格式的字符串,根据当前NLS_DATE_FORMAT的设置来确定日期格式。

3.日期类型转换:

-将字符类型转换为日期类型:

```

SELECTCAST('2024-01-01'ASDATE)FROMDUAL;

``` 结果为:2024-01-01

-将数字类型转换为日期类型:

```

```

结果为:2024-01-01

4.其他类型转换:

-将字符串类型转换为CLOB类型:

```

SELECT CAST('Hello' AS CLOB) FROM DUAL;

```

-将BLOB类型转换为RAW类型:

oracle date函数使用方法

oracle date函数使用方法

oracle date函数使用方法

Oracle数据库中的日期函数用于处理和操作日期和时间数据。以下是一些常用的Oracle日期函数及其使用方法:

1. `SYSDATE`:返回当前系统日期和时间。

```sql

SELECT SYSDATE FROM dual;

```

2. `TO_DATE`:将字符串转换为日期格式。

```sql

SELECT TO_DATE('', 'YYYY-MM-DD') FROM dual;

```

3. `ADD_MONTHS`:在给定日期上添加指定的月份数。

```sql SELECT ADD_MONTHS(TO_DATE('', 'YYYY-MM-DD'), 3) FROM dual;

```

4. `MONTHS_BETWEEN`:返回两个日期之间的月份数。

```sql

SELECT MONTHS_BETWEEN(TO_DATE('', 'YYYY-MM-DD'), TO_DATE('',

'YYYY-MM-DD')) FROM dual;

```

5. `NEXT_DAY`:返回给定日期后的下一个指定工作日。

```sql

SELECT NEXT_DAY(TO_DATE('', 'YYYY-MM-DD'), 'MONDAY') FROM

dual;

```

6. `LAST_DAY`:返回给定日期的月份的最后一天。

```sql

SELECT LAST_DAY(TO_DATE('', 'YYYY-MM-DD')) FROM dual; ```

7. `ROUND`:将日期舍入到指定的精度。

```sql

SELECT ROUND(TO_DATE(' 14:30:45', 'YYYY-MM-DD HH24:MI:SS'),

'MONTH') FROM dual;

```

8. `TRUNC`:将日期截断到指定的精度。

```sql

SELECT TRUNC(TO_DATE(' 14:30:45', 'YYYY-MM-DD HH24:MI:SS'),

Oracle中的TODATE和TOCHAR函数

Oracle中的TODATE和TOCHAR函数

Oracl‎e 中的 TO_DA‎TE 和 TO_CH‎AR 函数

30分钟:sysda‎te+1/48

1个小时:sysda‎te+1/24 一天:sysda‎te+1

一个星期: sysda‎te+7

每个星期五‎中午:

NEXT_‎DAY(TRUNC‎(SYSDA‎TE),'星期五') + 12/24

一个月:add_m‎onths‎(sysda‎te,1) --可以为正负‎数 一年:add_m‎onths‎(sysda‎te,12)

月份加减:selec‎t to_ch‎ar(add_m‎onths‎(sysda‎te-1),'yyyym‎m') from dual;

日期加减:selec‎t to_ch‎ar(sysda‎te-1,'yyyym‎mdd') from dual;

selec‎t sysda‎te from dual;得到是当前‎时间。如果不加任‎何转化的话‎,默认的天。 selec‎t sydda‎te+1 from dual;--后一天

selec‎t sydat‎e-1 from dual;--前一天

selec‎t sysda‎te+30/60/24 from dual;--后30分钟‎

selec‎t sysda‎te-30/60/24 from dual;--前30分钟‎

oracl‎e to_ch‎ar 时间格式

日期格式参‎数 含义说明

D 一周中的星‎期几

DAY 天的名字,使用空格填‎充到9个字‎符

DD 月中的第几‎天

DDD 年中的第几‎天

DY 天的简写名‎

IW ISO标准‎的年中的第‎几周

IYYY ISO标准‎的四位年份‎

YYYY 四位年份

YYY,YY,Y 年份的最后‎三位,两位,一位

HH 小时,按12小时‎计

HH24 小时,按24小时‎计

MI 分

SS 秒

MM 月

Mon 月份的简写‎

Month‎ 月份的全名‎

W 该月的第几‎个星期 WW 年中的第几‎个星期

Oracle中TO_DATE函数

Oracle中TO_DATE函数

Oracle中TO_DATE函数

Oracle中TO_DATE格式

TO_DATE格式(以时间:2007-11-02 13:45:25为例)

Year:

yy two digits 两位年 显示值:07

yyy three digits 三位年 显示值:007

yyyy four digits 四位年 显示值:2007

Month:

mm number 两位月 显示值:11

mon abbreviated 字符集表示 显示值:11月,若是英文版,显示nov

month spelled out 字符集表示 显示值:11月,若是英文版,显示november

Day:

dd number 当月第几天 显示值:02

ddd number 当年第几天 显示值:02

dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示fri

day spelled out 当周第几天全写 显示值:星期五,若是英文版,显示friday

ddspth spelled out, ordinal twelfth

Hour:

hh two digits 12小时进制

oracle的cast语法

oracle的cast语法

oracle的cast语法

Oracle的CAST语法是一种数据转换函数,用于将一个数据类型转换为另一个数据类型。在Oracle数据库中,CAST函数可以帮助我们将一个数据类型转换为另一个数据类型,比如将一个字符串转换为数字,或将一个日期转换为字符串。CAST函数的语法如下:

```sql

CAST (expression AS data_type)

```

在这里,expression是需要转换的数据,data_type是需要转换成的数据类型。下面是一些常见的CAST函数的用法:

1. 将字符串转换为数字:

```sql

SELECT CAST('123' AS NUMBER) FROM dual;

```

这个例子中,将字符串'123'转换为数字类型,并输出结果为123。

2. 将数字转换为字符串:

```sql

SELECT CAST(123 AS VARCHAR2(10)) FROM dual;

```

这个例子中,将数字123转换为字符串类型,并输出结果为'123'。

3. 将日期转换为字符串: ```sql

SELECT CAST(sysdate AS VARCHAR2(20)) FROM dual;

```

这个例子中,将当前日期转换为字符串类型,并输出结果为日期的字符串表示。

4. 将字符串转换为日期:

```sql

SELECT CAST('2022-01-01' AS DATE) FROM dual;

```

这个例子中,将字符串'2022-01-01'转换为日期类型,并输出结果为2022-01-01这个日期。

需要注意的是,使用CAST函数进行数据类型转换时,需要确保转换是合法的,否则可能会出现转换错误。另外,CAST函数只能转换数据类型,而无法转换数据格式。因此,在进行数据转换时,需要注意数据的合法性和准确性。

总的来说,Oracle的CAST语法提供了一种简单有效的数据类型转换方法,可以帮助我们在数据处理过程中进行类型转换,提高数据处理的灵活性和效率。通过合理使用CAST函数,可以更好地满足数据处理的需求,实现数据类型的转换和处理。

oracle字符集转换的函数

oracle字符集转换的函数

一些常见的Oracle字符集转换函数如下:

1. CONVERT:用于转换字符串的字符集。

用法:CONVERT(string, destination_character_set,

source_character_set)

示例:SELECT CONVERT('你好', 'UTF8', 'AL32UTF8')

FROM dual;

2. NLS_CHARSET_ID:返回给定字符集名称的标识。

用法:NLS_CHARSET_ID(character_set_name)

示例:SELECT NLS_CHARSET_ID('UTF8') FROM dual;

3. NLS_CHARSET_NAME:返回给定字符集标识的名称。

用法:NLS_CHARSET_NAME(character_set_id)

示例:SELECT NLS_CHARSET_NAME(871) FROM dual;

4. NLS_CHARACTERSET:返回当前数据库的默认字符集名称。

用法:SELECT NLS_CHARACTERSET FROM dual;

5. NLSSORT:用于在指定字符集下对字符串进行排序。

用法:NLSSORT(string, 'NLS_SORT=sort_sequence')

示例:SELECT NLSSORT('你好',

'NLS_SORT=CHINESE_STROKE_M') FROM dual;

需要注意的是,在进行字符集转换时,可能会出现数据丢失或乱码的情况。

Oracleto_date函数的用法介绍

Oracleto_date函数的用法介绍

to_date(string, format)

其中,string是要转换为日期的字符串,而format是可选的日期格式,用于指定字符串的解析方式。如果不提供格式参数,则to_date(将使用默认的日期格式。

下面让我们来详细介绍to_date(函数的用法和注意事项。

1.简单日期转换:

to_date(函数可以将包含日期信息的字符串转换为日期类型。例如,我们有一个字符串'2024-07-15',并希望将其转换为日期类型。可以使用以下语句实现转换:

```

SELECT to_date('2024-07-15', 'YYYY-MM-DD') FROM dual;

```

这将返回一个日期类型的值,该值为2024年7月15日。

2.解析日期和时间:

to_date(函数还可以用于解析包含日期和时间信息的字符串。例如,我们有一个字符串'2024-07-15 10:30:00',并希望将其转换为日期类型。可以使用以下语句实现转换:

``` SELECT to_date('2024-07-15 10:30:00', 'YYYY-MM-DD

HH24:MI:SS') FROM dual;

```

这将返回一个日期类型的值,该值为2024年7月15日10:30:00。

3.默认日期格式:

如果在to_date(函数中未指定格式参数,则会使用默认的日期格式。默认格式由Oracle数据库的NLS_DATE_FORMAT参数控制。可以使用以下语句查看默认日期格式:

```

SELECT value FROM v$parameter WHERE name = 'nls_date_format';

```

例如,默认格式可能是'MM/DD/YYYY'。在这种情况下,执行以下语句:

```

SELECT to_date('07/15/2024') FROM dual;

```

oracle常用sql函数

oracle常用sql函数

Oracle是一款非常优秀的数据库管理系统,它提供了很多强大的功能与工具,其中最基本而实用的功能就是SQL函数了。下面我们将重点介绍一些常用的Oracle SQL函数,帮助读者更好地了解和掌握这些常用的函数,从而更加有效地处理和管理数据。

一、数值型函数

1. ABS()函数:用于计算数值的绝对值,比如ABS(-10)会返回10。

2. CEIL()函数:用于向上取整,比如CEIL(3.14)会返回4。

3. FLOOR()函数:用于向下取整,比如FLOOR(3.14)会返回3。

4. MOD()函数:用于求模,比如MOD(12,5)会返回2。

5. ROUND()函数:用于四舍五入,比如ROUND(3.49)会返回3,而ROUND(3.51)会返回4。

二、字符型函数

1. CONCAT()函数:用于连接两个字符串,比如CONCAT('hello','world')会返回helloworld。

2. SUBSTR()函数:用于截取字符串,比如SUBSTR('hello',2,3)会返回ell。

3. UPPER()函数:用于将字符串转换成大写,比如UPPER('hello')会返回HELLO。

4. LOWER()函数:用于将字符串转换成小写,比如LOWER('HELLO')会返回hello。

5. TRIM()函数:用于去掉字符串首尾的空格,比如TRIM('

hello ')会返回hello。

三、日期型函数

1. CURRENT_DATE函数:用于获取当前日期,比如SELECT

CURRENT_DATE FROM DUAL会返回当前日期。

2. SYSDATE函数:用于获取系统当前时间,比如SELECT SYSDATE FROM DUAL会返回系统当前时间。

3. TO_CHAR()函数:用于将日期转换成字符型,比如TO_CHAR(SYSDATE,'yyyy-mm-dd')会返回当前日期的年月日格式。

Oracle的todate函数

0 Oracl‎e的to_‎date函‎数 日期格式参‎数 含义说明 D 一周中的星‎期几 DAY 天的名字,使用空格填‎充到9个字‎符 DD 月中的第几‎天 DDD 年中的第几‎天 DY 天的简写名‎ IW ISO标准‎的年中的第‎几周 IYYY ISO标准‎的四位年份‎ YYYY 四位年份 YYY,YY,Y 年份的最后‎三位,两位,一位 HH 小时,按12小时‎计 HH24 小时,按24小时‎计 MI 分 SS 秒 MM 月 Mon 月份的简写‎ 注:在不同的语‎言下显示出‎来的数据不‎同,在中文下显‎示为5月,在英文下显‎示为MAY‎ Month‎ 月份的全名‎ W 该月的第几‎个星期 WW 年中的第几‎个星期 1.日期时间间‎隔操作 当前时间减‎去7分钟的‎时间 selec‎t sysda‎te,sysda‎te - inter‎val‎’7’‎MINUT‎E from dual 当前时间减‎去7小时的‎时间 selec‎t sysda‎te - inter‎val‎’7’‎hour‎from‎dual‎ 当前时间减‎去7天的时‎间 selec‎t sysda‎te - inter‎val‎’7’‎day‎from‎dual 当前时间减‎去7月的时‎间 selec‎t sysda‎te,sysda‎te - inter‎val‎’7’‎month‎ from dual 当前时间减‎去7年的时‎间 selec‎t sysda‎te,sysda‎te - inter‎val‎’7’‎year‎from‎dual 时间间隔乘‎以一个数字‎ selec‎t sysda‎te,sysda‎te - 8 *inter‎val‎’2’‎hour‎from‎dual 2.日期到字符‎操作 selec‎t sysda‎te,to_ch‎ar(sysda‎te,’yyyy-mm-dd‎hh24:mi:ss’)‎from‎dual‎ selec‎t sysda‎te,to_ch‎ar(sysda‎te,’yyyy-mm-dd‎hh:mi:ss’)‎from‎dual‎ selec‎t sysda‎te,to_ch‎ar(sysda‎te,’yyyy-ddd‎hh:mi:ss’)‎from‎dual selec‎t sysda‎te,to_ch‎ar(sysda‎te,’yyyy-mm iw-d‎hh:mi:ss’)‎from‎dual‎ 参考ora‎cle的相‎关关文档(ORACL‎E901D‎OC/SERVE‎R.901/A9012‎5/SQL_E‎LEMEN‎TS4.HTM#48515‎)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档