【Oracle】SQL语句与SQL函数(笔记一)

本文介绍了SQL语言的基础概念,包括数据定义语言(DDL)、数据操纵语言(DML)、事务控制语言(TCL)和数据控制语言(DCL)。此外还详细解释了SQL中的各种操作符、函数、数据类型以及如何进行数据管理和权限控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL 支持下列类别的命令: 数据定义语言(DDL)、数据操纵语言(DML)、事务控制语言(TCL)、数据控制语言(DCL)。

DDL:数据定义语言用于改变数据库结构,包括创建、更改和删除数据库对象

DML:数据操纵语言用于检索、插入和修改数据

TCL:事务是最小的工作单元,作为一个整体进行工作,保证事务的整体成功或失败,称为事务控制(COMMITROLLBACKSAVEPOINT)

DCL:数据控制语言为用户提供权限控制命令(GRANTREVOKE)

 

·····································

→集合操作符: 

 

 

 

→集合操作符将两个查询的结果组合成一个结果

INTERSECT 操作符只返回两个查询的公共行。

MINUS 操作符返回从第一个查询结果中排除第二个查询中出现的行。

·····································

→连接操作符用于将多个字符串或数据值合并成一个字符串

·····································

SQL函数:

 

 

→单行函数对于从表中查询的每一行只返回一个值,又叫标量函数

→转换函数隶属于单行函数,分为:TO_CHAR:把日期或数值转换成字符串;TO_DATE:把字符串转换成日期;TO_NUMBER:把字符串转换成数字

·····································

→分组函数基于一组行来返回结果,为每一组行返回一个值

  

 

 

→分析函数根据一组行来计算聚合值

 

 

 

 

ROW_NUMBER 返回连续的排位,不论值是否相等;

RANK 具有相等值的行排位相同,序数随后跳跃;

DENSE_RANK 具有相等值的行排位相同,序号是连续的。

·····································

CREATE TABLE dept_cp AS SELECT * FROM dept WHERE rownum<3; --根据dept表创建一个部门表,只包含两列

·····································

GRANT SELECT ON vendor_master

     TO accounts WITH GRANT OPTION;

-----授予权限

REVOKE SELECT, UPDATE ON order_master

     FROM MARTIN;

-----撤销已授予的权限

·····································

→数据类型:

 

 

 

CHAR :固定长度的字符串,CHAR类型在定义时不指明大小,默认占用一个字节。

VARCHAR2:支持可变长度字符串,定义该类型的数据时必须指定其大小

LONG:存储可变长度字符数据,一个表中只能有一列LONG类型的数据,不能在LONG列上创建索引、唯一约束和主键约束

·····································

数值数据类型:

可以存储整数、浮点数和实数

声明语法:NUMBER [( p[, s])] (P表示精度,S表示小数点的位数)

如:NUMBER:之后什么也不跟,小数点可以浮动到任何位置;

NUMBER(10,2):保留小数点后两位;

NUMBER(10) :相当于NUMBER(10,0),小数点后的数将被4舍5入;

    NUMBER(10,-2):保留到百位。

···································                                                      

→日期时间数据类型:

DATE - 存储日期和时间部分,精确到整个的秒,SYSDATE函数返回当前时间和日期

如:“29-2 -08”。

TIMESTAMP - 存储日期、时间和时区信息,秒值精确到小数点后6位,SYSTIMESTAMP函数返回当前日期、时间和时区

如:“29-2月-08 10.58.22.125000 下午 +08:00”

日期数据类型的默认格式为“DD-MON-YY”,可使用使用TO_DATE函数转换。

·····································

RAW 数据类型

用于存储二进制数据

·····································

LOB大对象数据类型

可以存储多达 4GB 的非结构化信息,例如声音剪辑和视频文件等

·····································

→伪列:

q      Oracle 中伪列就像一个表列,但是它并没有存储在表中

q      伪列可以从表中查询,但不能插入、更新和删除它们的值

q      常用的伪列有ROWID和ROWNUM

ROWID 是表中行的存储地址,该地址可以唯一地标识数据库中的一行,可以使用 ROWID 伪列快速地定位表中的一行

ROWNUM 是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数

·····································

→删除表中的数据:

delete from emp;  --可以回滚

Truncate table emp;  --不能回滚,但效率高

·····································

复制表的结构:

CREATE TABLE newitemfile2

     AS SELECT * FROM itemfile

     WHERE 1 = 2;  ----只复制表的结构

·····································

→使用列别名:

SELECT itemcode,itemdesc, max_level,

       max_level* 2 [AS] “New Maximum Level” 

     FROM itemfile;

·····································

SQL 操作符:

 

·····································

→字符数据类型:

 

 

 

列举了SQL语句中大部分常用的函数 Abs(number) 取得数值的绝对值。 Asc(String) 取得字符串表达式的第个字符ASCII 码。 Atn(number) 取得个角度的反正切值。 CallByName (object, procname, usecalltype,[args()]) 执行个对象的方法、设定或传回对象的属性。 CBool(expression) 转换表达式为Boolean 型态。 CByte(expression) 转换表达式为Byte 型态。 CChar(expression) 转换表达式为字符型态。 CDate(expression) 转换表达式为Date 型态。 CDbl(expression) 转换表达式为Double 型态。 CDec(expression) 转换表达式为Decimal 型态。 CInt(expression) 转换表达式为Integer 型态。 CLng(expression) 转换表达式为Long 型态。 CObj(expression) 转换表达式为Object 型态。 CShort(expression) 转换表达式为Short 型态。 CSng(expression) 转换表达式为Single 型态。 CStr(expression) 转换表达式为String 型态。 Choose (index, choice-1[, choice-2, ... [, choice-n]]) 以索引值来选择并传回所设定的参数。 Chr(charcode) 以ASCII 码来取得字符内容。 Close(filenumberlist) 结束使用Open 开启的档案。 Cos(number) 取得个角度的余弦值。 Ctype(expression, typename) 转换表达式的型态。 DateAdd(dateinterval, number, datetime) 对日期或时间作加减。 DateDiff(dateinterval, date1, date2) 计算两个日期或时间间的差值。 DatePart (dateinterval, date) 依接收的日期或时间参数传回年、月、日或时间。 DateSerial(year, month, day) 将接收的参数合并为个只有日期的Date 型态的数据。 DateValue(datetime) 取得符合国别设定样式的日期值,并包含时间。 Day(datetime) 依接收的日期参数传回日 ....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值