登录oracle用户: sqlplus 用户名/密码
创建用户:create user 要创建的用户名 identified by 当前用户名;
授权:grant resource,connect to 要授权的用户名;
删除用户:drop user 用户名
创建表:
create table student(
id number(6), //。。。字段
name varchar2(25) default 'kb', //设置默认值
age number(3)
);
删表:drop table 表名
1,查询行:
列的别名
(1)可以给列名取别名
(2)as关键字可以省略
(3)别名中有空格、特殊字符、大小写敏感,需要用双引号
例如:
select last_name,(salary+500)*12 as total
from s_emp;
select last_name,(salary+500)*12 total
from s_emp;
select last_name,(salary+500)*12 "total salary"
from s_emp;
select last_name,(salary+500)*12 "total"
from s_emp;
字段中出现了表达式,则查询出来的该字段会用表达式代替列名,所以一般要写别名
多列连接:
(1)可以通过||将多个列或字符串常量连接在一起
空值:
(1)nvl函数可以将空值用指定值来替代
(2)nvl两个参数的数据类型必须匹配
select firstname ,nvl(id,0) from test;
@功能同start:
执行(导入)sql脚本,并将内容写入缓冲区
2,排序、限制查询行
1.order by排序规则
(1)asc,升序排列,默认取值
(2)desc,降序排列
(3)order by是select命令的最后一个子句
select last_name,salary,dept_id
from s_emp
order by salary asc;
2.order by中null值处理
(1)升序中,放最后
(2)降序中,放最前
限制取出记录数:
(1)between...and...:闭区间;先跟小值,再跟大值
(2)in:从给定的列表范围内匹配值
(3)like:模糊查询
escape自定义转义字符,可以让统配符失去特殊意义,变成普通字符
查出名字以_a开始的?
select last_name,salary
from s_emp
where last_name like '\_a%' escape '\';
3,单行函数
1.lower:字符串转换成小写
select lower(last_name)
from s_emp;
2.round(1,2):对数值进行四舍五入
3.trunc(1,2):对数值进行截断,不会进位
组函数:
1.avg:求平均值,操作数值类型
2.count:统计记录条数
select count(*)
from test;
伪列:
1,像sysdate,实际上是一个没有参数的函数
2,rownum:行号
查询表中前十行数据?
select last_name,salary
from s_emp
where rownum<=10;
rownum使用注意:
<、<=无限制
=、>=只对1有意义
>无意义
3,rowid:行地址