→SQL 支持下列类别的命令: 数据定义语言(DDL)、数据操纵语言(DML)、事务控制语言(TCL)、数据控制语言(DCL)。
→DDL:数据定义语言用于改变数据库结构,包括创建、更改和删除数据库对象
→DML:数据操纵语言用于检索、插入和修改数据
→TCL:事务是最小的工作单元,作为一个整体进行工作,保证事务的整体成功或失败,称为事务控制(COMMIT、ROLLBACK、SAVEPOINT)
→DCL:数据控制语言为用户提供权限控制命令(GRANT、REVOKE)
·····································
→集合操作符:
→集合操作符将两个查询的结果组合成一个结果
→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 操作符:
·····································
→字符数据类型: