1. 五种语言
–1.Oracle SQL语句由如下命令组成:
–数据定义语言(DDL),包括CREATE(创建)命令、ALTER(修改)命令、DROP(删除)命令、TRUNCATE命令等。
–数据操纵语言(DML),包括INSERT(插入)命令、UPDATE(更新)命令、DELETE(删除)命令等。
–数据查询语言(DQL),包括基本查询语句、Order By子句、Group By子句等。
–事务控制语言(TCL),包括COMMIT(提交)命令、ROLLBACK(回滚)命令。
–数据控制语言(DCL),GRANT(授权)命令、REVOKE(撤销)命令。
2.约束
按用途分类
1)PRIMARY KEY 主键约束(可以没有主键,但主键是非空且唯一)(查看–键)
创建主动约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY(列名1,列名2.。。)
eg给EMP_TOTAL 增加一个主键
ALTER TABLE EMP_TOTAL ADD CONSTRAINT PK_EMPNO PRIMARY KEY(EMPNO)
2)foreign key 外键
INSERT INTO EMP(EMPNO,DEPTNO) VALUES(1234,50)
会报错,因为dept表内没有deptno=50这个数据,
3)CHECK 检查约束
SELECT * FROM STUDENT1;
4)UNIQUE 唯一约束
5)NOT NULL 非空约束
3.EXISTS: 存在
EXISTS(查询结果集):查询结果集有记录则成立,否则不成立
NOT EXISTS : 于EXISTS相反
EG查询DEPT表中哪些部门存在于emp表中
SELECT *
FROM DEPT D
WHERE EXISTS(SELECT * FROM EMP E WHERE D.DEPTNO = E.EMPNO)
(查不出结果)
SELECT *
FROM DEPT D
WHERE EXISTS(SELECT *(*这里写啥都行,1也可以) FROM EMP E WHERE D.DEPTNO = E.deptno)
这样就能够关联,能查出数据
其实这种方式在某些领域的查询速度是很快的
4.序列:Sequence 用来生成连续的整数数据的对象
是序号生成器,可以为表中的行自动生成序号,产生一组等间隔的数值(类型为数字)
徐磊常常用来作为主键的增长列,序列中可以升序生成,也可以降序生成。
创建序列的语法是:
CREATE SEQUENCE 序列名
CREATE SEQUENCE S_TEST;--创建序列 S_TEST;,
SELECT S_TEST.NEXTVAL FROM DUAL; (执行后,每查一次,序列号从1开始逐个增加,即 查询一次增加1)
SELECT S_TEST.currval FROM DUAL;(显示当前序列号,多次执行不会改变)