sqlplus / as sysdba
startup
sqlplus scott/tiger
vi .bash_profile
容宽不够 set lines 200
set pages 200
确定数据量:
select count(*) from emp; (1)
select count(1) from emp; (2)
确定表结构
desc emp;
看两行
select empno,ename from emp;
可以进行数学运算
select empno,ename,sal+300 from emp;
给每一个人加工资
(1)的优先级高
select * from emp;
语言:{
一 机器语言
二汇编
三C-(c c++ java c#)
四SQL
}
SQL基本语法:
select 标识 选择那些列
from标识从哪个表选择
sql select 语句的功能
列 关系型数据库
起别名:
select empno as id from emp; # as加和不加都可以 加是老标准
连接符 ||
select 'alter user '||ename||' account unlock;' from emp;
过滤和排序数据
在查询中过滤 where
select * from emp where ename = 'KING';
字符中大小写敏感
筛选出
select * from emp where deptno !=30;
查询 是否为空
select * from emp where comm is null;
去重 distinct
select distinct deptno from emp;
多重逻辑:
select * from emp where job='SALESMAN' or job='CLERK' and sal>1500;
升序排列:
select * from emp order by sal;
降序排列:
select * from emp order by sal desc;
也可以 跟序号
select * from emp order by 6 desc;
多表查询:
select a.ename,b.loc from emp a,dept b where a.deptno=b.deptno;(1)
select emp.ename,dept.loc from emp , dept where emp.deptno=dept.deptno;(2)
(1)有表别名,一般都用第一种
去重:
select a.ename ,b.loc,a.sal from emp a,dept b where a.sal between 1500 and 2000;
外连接
select a.ename ,b.loc from emp a left join dept b on a.deptno=b.deptno
驱动表和匹配表
两张表都有空值,但是你只想显式一张表里的所有制,包括空值,那么就用这张表做匹配表,另外的那张表做驱动表。在left join 中驱动表在左,在right join 中的驱动表在右,而与之相反的一侧为匹配表。
满外连接
数据关系 集合 线型 树 图
oracle 大小写不明感
隐式转换 系统协助转换的
显式转换 自己写的
定义空值 空值是无效的,未指定的
alter user hr account unlock;
alter user hr identified by hr;
grant connect to hr;
grant resource to hr;
推荐书《oracle开发指南》