总结:
sql的语言分类 (struct query language)
1.数据检索 select 语句 select
2.数据操作 dml语句
insert delete update
3.数据定义 ddl语句
create drop alter
4.事务操作 tcl语句
commit rollback savepoint
5.数据控制 dcl语句
grant revoke
--------------------------------------------------------------------------------------------
预备知识:
1. Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql语句。
我们通常所说的DML、DDL、DCL语句都是sql语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。
除了sql语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。
2. 远程登录数据库
telnet ip
sqlplus (然后根据提示输入账号和密码)
3. oracle中的数据类型:
number ------数字类型
number(7,2) ------ 总长度7位小数占2位
varchar2(n) ------字符串类型
date -------日期类型
4. 查看表
desc 表名
――――――――――――――――――――
一:数据检索语句 select
1.Select 字段表达式 from 表名 where 条件表达式
2.模糊查询 like
通配符:‘_’ 代表一个任意字符
‘%’ 代表0到无穷多个任意字符
eg:查找 姓王 的人的名字
select name from stuent where name=’王%’;
3. 空值处理
… Where字段 is nul;
Nvl(n1,n2); --如果n1为空值,就替换成n2.
Null 值不能比较,在排序的时候按照最大值处理。
组函数对 null值忽略
4. 数据排序 : order by 字段 desc(asc);出现在sql语句最后
5. 函数
1)单行函数 :
字符串处理函数upper initcap concat length substr
数字处理函数 round trunc
2)组函数 max min avg count sum
3) 格式显示函数
to_char(data,fmt) --data 要显示的数据 fmt 显示的格式
fm 格式字符串开始 可以省略
9 任意的数字
但在小数点后只能代表1-9
(整数就不显示小数位)
0 强制显示前导零
12345 012,345.00
$ 美元符号
L 本地货币符号
¥ RMB
, 分隔符号
. 小数点
eg:
select salary,to_char(salary,
'fm$099,999.99')from s_emp;
to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’);
6. 分组 group by
对组数据进行过滤having
Eg: select dept_id,avg(salary) from s_empgroup by dept_id having avg(salary)>2000; --列出平均工资大于两千的部门。
7. 子查询
8. 多表查询
等值链接非等值连接
自连接
外连接
左外连接:列出左边关系中所有的元祖
右外连接:列出右边关系中所有的元祖
(+)-------把(+) 对面表的数据
全部匹配出来。
Eg:(左外连接)
select distinct m.id,m.first_name
from s_emp e,s_emp m
where m.id=e.manager_id(+);
sql99的连接标准
内连接的标准
from a表 join b表 on 连接条件;
from a表 inner join b表 on 连接条件;
SQL99中规定的外连接
a表 leftouter join b表 on 连接条件;
a表 right outerjoin b表 on 连接条件;
a表 full outer join b表 on 连接条件;
9. sql 的执行顺序
select from where group by having order by
from--->where---->group----->having------>select----->orderby
二.数据操作 dml语句 , 需 commit 将数据提交
insert delete update
1. Insert into 表 values(字段列表);
2. delete from 表名 where 条件
3. update表 set 字段=新值 where 条件
三.数据定义 ddl语句
create drop alter
1.建表语句
creat table 表名(
字段名 类型,
字段名 类型,
....
)
2、删除表
droptable 表名 [restrict |cascade ]
3 alter 表名 [add 新列名]
4.事务操作 tcl语句
commit rollback savepoint
5.数据控制 dcl语句
授权: grant 回收: revoke