SELECT列中没有的列可以在group by中出现
SELECT 中除分组函数列,必须在group by中出现
执行顺序
3 SELECT
1 FROM
2 WHERE 主函数之外的判断
4 HAVING 对主函数进行判断,必须放在having子句
5 GROUP BY
6 ORDER BY
SELECT job_id,SUM(salary) PAYROLL
FROM employees
WHERE job_id NOT LIKE '%REP'
GROUP BY job_id
HAVING
变量的定义,在语句中的作用范围是当前语句
define 是seesion
DML 语言
Data Manipulation Language
数据操作语言
A transaction 事务
事务是系列DML语言的逻辑工作单元
都成功或都失败。
一个事务是由 一系列DML语言构成
4个特性,一致性,完整性,立即执行,原子性
插入:主表存在记录,从表才可以插入
更新:主表存在的值,从表才可以更新。
删除:从表中无关联记录时,主表才可以删除
merge 关键字,oracle9i的特性;
SELECT 查询语句
DDL 数据设计语言
DCL 数据控制语言
transaction事务以第一个DML语句开始
1,提交或回滚语句 commit ; rollback;rollback to savapotint;
2,DDL DCL语句执行 提交
3,用户退出
4,系统崩溃
事务里的savepoint 可以作为rollback的断点
用户提交之后才会对数据库作出更新或者
DDL DCL执行,用户注销,隐性提交。否则会rollback
rollback;语句可以回滚,使DML语句失效;
oracle会在每条DML语句之后会隐性保存一个savapoint
养成使用显式的提交和回滚
oracle的读一致性,所有用户在同一时间看到的数据是一样的
DDL语言
数据库对象
1,table对象
2,view 视图,虚表
3.Sequence 自动增长的编号
4,Index 索引,增强查询速度
5,Synonym 同义词 对象别名
对象命名原则
1.字母开头
2,长度30个字符之内
3,字符A-Z,a-z,0-9,_,$ #
4,名字唯一
5,不能使用保留字
建表权限:
有create table权限,有存储区域权限
CREATE TABLE [方案名]. 表名
(列名 数据类型,[DEFAULT 默认值][,..])
TABLESPACE data01;
如果没有写表空间名,在当前用户的默认表空间里创建;
默认表空间由创建用户时指定;
oracle访问对象是基于用户的
如果没有方案名,则在本用户下查找。
对data01空间有使用权限;
(数据字典)SELECT table_name FROM user_tables;(当前用户里的表)
用户是管理权限的,方案是管理对象的
通常情况下 名字一样;
文字串,表达式,函数可以是默认值
列名不可以做默认值
oracle中的表
1,用户表
2,数据字典(系统维护)
(对象类型查询)SELECT DISTINCT object_type FROM user_objects ;
(所有对象)SELECT * FROM user_catalog ;
oracle中的数据类型
VARCHAR2 最多存储4000字节
char 2000字节
ROWID A 64 base number system representing the unique address of a row in its table.(rowid) 64字节存储,唯一标志一行,用于快速访问
记录空间,块,第几行
ALTER TABLE table
ADD (column datatype [DEFAULT expr]
[, column datatype]...);
ALTER TABLE table
MODIFY (column datatype [DEFAULT expr]
[, column datatype]...);
ALTER TABLE table
DROP (column);
DROP 列时,很影响性能,影响到所有行
建议使用:
ALTER TABLE table
SET UNUSED (column);
ALTER TABLE table
SET UNUSED COLUMN column;
删除表:
DROP TABLE 表名;
改名
RENAME tablename TO tablename2
TRUNCATE TABLE 表名;
速度快,不可恢复,性能好。
DELETE table ,速度慢,可恢复,慢。。 数据量大的时候,别用,回滚段可能满,oracle报错。
COMMENT ON TABLE 表明
IS ‘’;单引号内注释;
约束 constrain
1,非空
2,主键
3,外键
4,唯一
5,check
主键和unique键生成时,自动生成索引
非空约束用modify来修改
ALTER TABLE 表名
MODIFY (列名 约束条件)
别的约束条件是用add来做
cascade 级联删除,修改。主外键关系