DDL:数据定义 Create Table,Alter Table,Drop Table, Craete/Drop Index等
DML:数据操作 Select ,insert,update,delete,
DCL:数据控制 grant,revoke
完整性约束:实体完整性、参照完整性、用户定义完整性
事务:原子性,一致性,隔离性,持久性
查看表结构:
数据库解锁:
1.sqlplus /nolog
2.conn / as sysdba --以sys身份进入
3.show user
4.alter user scott account unlock;
5.alter user scott identified by tiger;--修改密码
6.conn scott/tiger
7.show user
8.select * from tab;--查询数据库表
9.desc emp --查看表结构
10.select * from emp;
dual表是一个一行一列的表
查系统时间
select sysdate
from dual;
nvl(comm,0)--comm为null时把comm赋予0
有组函数,且还有其他字段就应该有group by
select deptno,max(sal)
from emp
group by deptno
group by 出现的字段可以不在select里出现
select max(sal)
from emp ;--求最大工资 对的,若select出现其他字段,后一定有group by
左连接,右连接
看连接字段那边多就以那边为主。
where e.deptno(+)=d.deptno 右连接
添加
1.insert into <表名>(列名)values(列值)
INSERT INTO copy_emp (empno,ename,hiredate,sal,deptno)
VALUES (5456,‘hahah‘,TO_DATE(‘2000-01-01‘,‘yyyy-mm-dd‘),NULL,10);
2、insert into <已有的新表> <列名> select <原表列名> from <原表名>
删除
delete from <表名> [where <删除条件>]
例:delete from emp where ename=‘王伟华‘
注意:删除整行不是删除单个字段,所以在delete后面不能出现字段名
更新
update <表名> set <列名=更新值> [where <更新条件>]
例:update addressList
set 年龄=18
where 姓名=‘王伟华‘
查询
简单查询
select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列 >
可以查询前6行的数据
select * from emp where rownum<6
查询不在该范围内的数据:
SELECT empno ,ename
FROM emp
WHERE empno NOT IN(3214,7369,7499) ;
查询在范围内的数据:
SELECT empno ,ename
FROM emp
WHERE empno IN(3214,7369,7499) ;
原文:http://www.cnblogs.com/bill-yxh/p/4872654.html